原创 Uboot引導內核之前的應該確保的幾個點

Uboot 引導內核需要保證幾點: 1.CPU寄存器設置 .R0=0 .R1=機器類型ID .R2=啓動參數標記列表在RAM中起始基地址 2.CPU

原创 linux驅動開發:IIC協議的瞭解

IIC協議介紹: 作爲一種應用很廣的串行總線協議,這個是需要我們很認真去了解的。絕大多數的驅動開發中均少不了IIC驅動. 我手上的板子有一個eeprom和touch screen都是IIC接口。現在我們先來研究IIC協議以及a

原创 linux內核札記

1)內核的主要組成:進程調度,內存管理,虛擬文件系統,網絡接口,進程間通信. 進程調度(SCHED):控制進程對CPU的訪問。當需要選擇下一個進程運行時,由調度程序選擇最值得運行的進程. 內存管理單元(MMU):允許多個進程安全的共享主

原创 wm8960驅動:裸機代碼研讀

網上已經有基本的wm8960驅動的demo。可以播放特定頻率的wav文件。這個程序很具有參考性。 我們知道,初始化wm8960,需要大概的步驟如下: 1.初始化I2C總線,通過I2C接口給wm8960下配置命令。 2.將聲音文件加載

原创 內核資料:ALSA資料

內核資料好多好多,一個人摸索真的很難。 最近又卡住了,沒辦法向前進了。聲卡,資料真的好多。沒有一個系統的視頻或者學習資料真的感覺無從下手。 只能用時間耗了,先堆一些枯燥的資料。等我哪天茅塞頓開了,再來寫心得吧! Master clock

原创 linux驅動開發:mma7660 sensor的配置

上一章節有介紹過這顆IC,是freescale的一個低精度的重力傳感器吧。我認爲,可以區分8個方向。x,y,z三軸。精度6bit,採樣值範圍[-32,+32].還有測量shake和tap等數據。 這邊的驅動沒有自己寫.只是有看懂它原先的

原创 mmap函數分析使用實例

mmap將一個文件或者其它對象映射進內存。文件被映射到多個頁上,如果文件的大小不是所有頁的大小之和,最後一個頁不被使用的空間將會清零。mmap在用戶空間映射調用系統中作用很大。 gcc man中的描述 mmap() creates

原创 linux驅動開發:ft5x06的touch screen的IIC驅動程序編寫

觸摸屏屬於一個標準的input dev.所以我們按照輸入子系統的流程來實現驅動開發。 實際板子與CTPM的通訊連接基於IIC總線,所以我們需要把驅動掛載到IIC總線下面去,也就是註冊IIC驅動到iic_core.c中去。 實例化一個I

原创 linux驅動開發: wm8960 codec代碼分析

關於alsa架構已經啃了好久好久,但是也卡了好久好久。難說皮毛到底有看懂多少,不管,我們先來啃wm8960 codec的驅動代碼: 必要相關函數說明: //////////////////////////////////////////

原创 linux內核學習:內核鏈表

數據結構是編程中很重要的一部分.鏈表是一種數據結構,編程中,我們爲了實現鏈表這種數據結構,常常需要完成他的初始化,添加,遍歷,添加,刪除等功能.針對n多種鏈表來講,除了內容不同外,但這些 添加,刪除,遍歷操作其實都是可以寫成公共代碼的,不

原创 linux驅動開發:重力傳感器的瞭解

板子上有一顆IC:MMA7660FC,我們來試着讀一下它的芯片手冊,當然讀的目的是爲了驅動它。這也是我們驅動開發的目的:拿過來一塊未知的IC,去讀它的芯片手冊,支持那種通訊協議,然後編碼讓它動起來。 he sensor has thre

原创 linux驅動開發:串口協議

串口的重要性不言而喻。我們可以通過串口來打印 debug的信息,以此來定位代碼的錯誤位置。 我們也可以通過串口來向內核傳入命令,可以說它是開發人員常用的一個交互終端。當進行驅動開發時,總是需要用到串口來顯示內核的打印信息。對於開發來說,

原创 linux驅動開發:用戶空間操作LCD顯示簡單的圖片

上一章我們簡單介紹了LCD的一些基本原理。當然更深奧的還有,比如gamma,dither,HUE,satuation.OSD等等. 我們知道我們是用framebuffer來實現顯示的. 顯存:framebuffer.由DDRAM中劃去一部

原创 linux驅動開發:觸摸屏的認識(FT5x06 IC的分析)

我們板子上的觸摸屏是電容屏,當然也有電阻屏。不過目前絕大多數是電容屏。 原理:按下某個位置,得到某個位置的特定電阻/電容值,電阻屏(可能通過好幾個adc去捕獲這些電阻值),因爲平面上一個點至少需要a(x,y)表示. 拆開LCD屏的板子,

原创 ubuntu下開發環境配置:tftp服務器的搭建

電腦重裝了,因爲是雙系統,非虛擬機開發,所以以前的開發環境丟失了。重新配置時還是百度,既然又重新開始了,那就記錄下來. 1.apt-get install tftp-hpa tftpd-hpa 前者是客戶端,後者是服務器端。 2.安