linux IIC驅動學習
這兩天學習linux的iic驅動,使用的晶片是FM24C02A,參考周立功老師的書和從他那買的287A套件做實驗,昨天寫了驅動程式和應用程式,發現一個問題:應用程式如果一次寫入8個位元組,然後一次讀出8個位元組,則讀出的第8個位元組和寫入的第8個位元組不一樣,原因還在查詢中。
資料傳送函式我用的 int i2c_master_send(const struct i2c_client *client, const char *buf, int count);這個函式會首先將buff的資料封裝成struct i2c_msg 格式的,然後呼叫i2c_transfer(adap, &msg, 1);完成最終的傳送。
相關推薦
linux IIC驅動學習
這兩天學習linux的iic驅動,使用的晶片是FM24C02A,參考周立功老師的書和從他那買的287A套件做實驗,昨天寫了驅動程式和應用程式,發現一個問題:應用程式如果一次寫入8個位元組,然後一次讀出8個位元組,則讀出的第8個位元組和寫入的第8個位元組不一樣,原因還在查詢中
使用Buildroot與Qemu學習ARM linux IIC驅動
Buildroot配置 下載最新的buildroot,然後進入 buildroot中進行配置 make mini2440_defconfig make xconfig 進入到Ker
Linux核心驅動學習(二)----根檔案系統的構成 (root filesystem)
1、建立根檔案系統目錄和檔案 1.1建立目錄 1.2建立裝置檔案(命令mknod);必須建立裝置檔案---consle\null 1.3建立配置檔案---複製已有的/etc目錄下的檔案
嵌入式Linux——IIC驅動(2):i2c驅動框架分析
簡介: 本文主要介紹i2c匯流排框架,即對i2c的各個層次(i2c匯流排,i2c核心,i2c裝置)進行分析。同時我也會結合程式對框架進行說明。所以本文將分為兩部分,第一部分對i2c的框架進行介紹,而第二部分就是結合程式碼分析。 核心:linux-2.6.2
linux裝置驅動學習筆記--核心除錯方法之printk
1,printk類似於使用者態的printf函式,但是比printf函式多了一個日誌級別,核心中最常見的日誌輸出都是通過呼叫printk來實現的,其列印級別有8種可能的記錄字串, 在標頭檔案 <linux/kernel.h> 裡定義: KERN_EMERG
Arm+Linux核心驅動學習筆記
韋東山老師幫我們把框架搭建起來了,我們先來看一下: 框架: app: open,read,write "1.txt" --------------------------------------------- 檔案的讀寫 檔案系統: vfat, ext2,
linux裝置驅動學習筆記--核心除錯方法之proc(補充seq_file)
上一節中的proc實現對於開關檔案,控制檔案,以及顯示很少資訊的檔案來說還是比較簡單的,但是對於需要輸出大量資訊像meminfo,或者結構化的資訊像cpuinfo等時就會顯得很笨拙,並且程式碼也很不好理解與維護。核心為了簡化這種proc檔案的實現提供了另外一種方案----s
Linux核心驅動學習(四)----記憶體管理子系統
kmalloc()和vmalloc()介紹 kmalloc() 用於申請較小的、連續的實體記憶體 1. 以位元組為單位進行分配,在<linux/slab.h>中 2. void *kmalloc(size_t size, int flags) 分配的記憶體實體地址上連續,虛擬地址上自然
linux裝置驅動學習(6) 高階字元驅動學習--阻塞型I/0
提出問題:若驅動程式無法立即滿足請求,該如何響應? 比如:當資料不可用時呼叫read,或是在緩衝區已滿時,呼叫write 解決問題:驅動程式應該(預設)該阻塞程序,將其置入休眠狀態直到請求可繼續。 休眠: 當一個程序被置入休眠時,它會被標記為一種特殊狀態並從排程器執行佇列
Linux-IIC驅動(1)-IIC匯流排介紹
IIC我在很久之前就接觸並使用過了,現在來回顧一下它的硬體結構和時序 硬體結構 I2C(Inter-Integrated Circuit)匯流排是由PHILIPS公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。硬體結構如下: I2C匯流排只有兩根雙向訊號線。
linux裝置驅動學習筆記--核心除錯方法之proc
/proc 檔案系統是 GNU/Linux 特有的。它是一個虛擬的檔案系統,因此在該目錄中的所有檔案都不會消耗磁碟空間。通過它能夠非常簡便地瞭解系統資訊,尤其是其中的大部分檔案是人類可閱讀的(不過還是需要一些幫助)。許多程式實際上只是從 /proc 的檔案中收集資訊,然後按
IIC驅動學習筆記,簡單的TSC2007的IIC驅動編寫,測試
IIC驅動學習筆記,簡單的TSC2007的IIC驅動編寫,測試 目的不是為了編寫TSC2007驅動,是為了學習IIC驅動的編寫,讀一下TSC2007的ADC資料進行練習,, Linux主機驅動和外設驅動分離思想 外設驅動→API→主機驅動→板級邏輯--具體的i2c裝置(camera,ts,eeprom等
Linux驅動學習筆記----------IIC框架與流程(一)
歷時一個月期末課程設計終於結束了!發現好多東西忘記了,iic流程也有些淡忘,有點慌,夜深人靜的時候就整理下吧!還有,杭州最近熱的我腦袋都不好用了! 關於iic: 1.是一種資料傳輸協議(spi,usb,sdio,uart…)
Linux 網卡驅動學習(二)(網絡驅動接口小結)
-a key 頻率 網絡 上網 ren 網絡設備 ews 入口 【摘要】前文我們分析了一個虛擬硬件的網絡驅動樣例。從中我們看到了網絡設備的一些接口。事實上網絡設備驅動和塊設備驅動的功能比較相似,都是發送和接收數據包(數據請求)。當然它們實際是有非常多不同
Linux 網卡驅動學習(六)(應用層、tcp 層、ip 層、設備層和驅動層作用解析)
local acc 每次 letter auto sizeof style article inode 本文將介紹網絡連接建立的過程、收發包流程,以及當中應用層、tcp層、ip層、設備層和驅動層各層發揮的作用。 1、應用層 對於使用socket進行網絡連接的serv
Linux下驅動模塊學習
14. 移除 return 加載 控制器 就是 偏移地址 模塊插入 出現 1.modutils中提供了相關的insmod,rmmod,modinfo工具2.modprobe在識別出目標模塊所依賴模塊後也是調用insmod.3.從外部看模塊只是普通可重定位的目標文件。可重定位
linux裝置驅動開發學習--記憶體和IO訪問
一 I/O 埠 1. 讀寫位元組埠(8 位寬) unsigned inb(unsigned port); void outb(unsigned char byte, unsigned port); 2. 讀寫字埠(16 位寬) unsigned inw(unsigne
Linux裝置驅動開發學習筆記
2016.6.25 這部門主要是之前學習linux裝置驅動開發時候的一些筆記,主要學習的參考書是《Linux裝置驅動開發詳解第2版》 書連結:http://note.youdao.com/noteshare?id=bbf134da309035b2093c5abcd5c7c8ac&
Linux驅動--IIC驅動框架以及底層收發API函式核心分析
IIC驅動框架: 在Linux平臺外設中有不少的IIC外設,例如基於Linux系統的Android觸控式螢幕獲取觸控座標、內部陀螺儀等等外設都是在IIC總線上工作,如果需要新增自己的IIC外設那必不可少需要了解IIC框架的運用。 開發環境: PC :VMworkstat
Linux下SPI和IIC驅動免在裝置樹上新增裝置資訊的編寫方法
編寫i2c或spi驅動時,一般需要往裝置樹上(或者板級檔案)新增節點資訊,這裡提供一種直接在驅動中新增裝置資訊的方法,使驅動更方便移植。 i2c的驅動模板如下 #include <linux/module.h> #include <linux