原创 linux c函數獲取系統IP地址

通過ioctl()函數 下表列出了網絡相關ioctl請求的request 參數以及arg 地址必須指向的數據類型:    類別 Request 說明 數據類型 套 接 口 SIOCATMARK  SIOCSPGRP 

原创 exit2/ext3文件系統介紹

文件系統的構成引導塊:存儲引導代碼 boot sector超級塊:單塊大小/總塊數;每組塊數;i節點數/每組i節點數;卷名;最後寫入時間/掛載時間/掛載路徑;空閒i節點/塊信息(分配新i節點/塊時使用)組描述符表:每個32字節,描述每組塊

原创 Shell編程之變量賦值和引用

Linux的shell編程是一種非常成熟的編程語言,它支持各種類型的變量。有三種主要的變量類型:環境變量、內部變量/系統變量和用戶變量。 環境變量(environment variable)是系統環境的一部分,不必去定義它們。可以在she

原创 Linux下 fseek() ftell() rewind() lseek() fstat() 的使用方法

fseek(移動文件流的讀寫位置) 相關函數 rewind,ftell,fgetpos,fsetpos,lseek 表頭文件 #include 定義函數 int fseek(FILE * stream,long offset,int wh

原创 linux i2c子系統代碼分析7 ---i2c適配器註冊時機、方法以及例程

i2c適配器註冊時機: 1、在paltform驅動中註冊,在板級初始化時註冊一個platform設備,然後在註冊platform驅動時將i2c適配器註冊。 這種方法屬於適配器靜態註冊,是soc中i2c適配器通用註冊方法,因爲這樣保證後續的

原创 linux內核編譯Kconfig總結

linux內核make menuconfig生成.config時,會調用GUI配置工具,這個GUI配置工具具體調用的就是內核各目錄下的Kconfig文件,Kconfig文件層次結構和各內核目錄中層次相似,最終形成GUI的各級配置菜單。 m

原创 pl330 dmac驅動分析1--數據結構

       pl330 dmac是基於arm amba的dma控制器,最多有8個操作通道,32個事件處理,並且有多個外設接口,有自己的命令集,詳細信息看pl330 datesheet。 pl330驅動程序:       pl330驅動

原创 linux rculist代碼分析

  此博客寫的匆忙併且全爲個人見解,錯誤之處請大家趕快指出。   linux內核rcu機制,是在多讀線程和一個寫線程併發情況下對指針的保戶機制,多寫併發需要加鎖。 常應用於鏈表的數據操作中。 linux內核rculist.h是對鏈表帶rc

原创 linux i2c子系統代碼分析3 ---操作函數i2c_add_adapter i2c_add_numbered_adapter介紹

二.i2c子系統操作函數,i2c-core.c 1. kernel/driver/linux/i2c/i2c-core.c /**  * i2c_add_adapter - declare i2c adapter, use dynamic

原创 linux i2c子系統代碼分析2 ---操作函數i2c_init介紹

二.i2c子系統操作函數,i2c-core.c 上面介紹了i2c子系統重要的數據結構,下面介紹i2c子系統的適配器、算法、設備、設備驅動註冊、註銷以及重要的數據處理函數 在kernel/driver/linux/i2c/i2c-core

原创 linux i2c子系統代碼分析6 ---操作函數i2c數據處理函數

下面介紹i2c的數據處理函數 1、 i2c_master_send         在主模式下發送一個信息 kernel/driver/linux/i2c/i2c-core.c /**  * i2c_master_send - issue

原创 linux i2c子系統代碼分析9---i2c設備的註冊方法

i2c設備註冊方法有:1、板級代碼初始化時i2c board info註冊進鏈表,後面i2c適配器註冊時掃描鏈表,將i2c設備註冊到總線。 2、i2c內核模塊動態加載,在內核模塊中用i2c_new_device和 i2c_new_prob

原创 linux i2c子系統代碼分析5 ---操作函數i2c_new_device i2c_new_probed_device i2c_register_board_info介紹

下面介紹i2c設備操作相關函數 1、 kernel/driver/linux/i2c/i2c-core.c struct i2c_client * i2c_new_device(struct i2c_adapter *adap, stru

原创 linux i2c子系統代碼分析4 ---操作函數i2c_add_driver i2c_register_driver介紹

下面介紹 i2c 驅動相關操作函數 i2c_add_driver kernel/include/linux/i2c.h static inline int i2c_add_driver(struct i2c_driver *driver)

原创 linux i2c子系統代碼分析8 ---i2c子系統內核目錄介紹

i2c子系統核心目錄在kernel/driver/linux/i2c,i2c核心頭文件在kernel/include/linux/i2c.h 在kernel/driver/linux/i2c中:i2c-core.c是包含i2c適配器、i2