Ⅰ arm 定義寄存器 地址 頭文件 S3C2440 C語言
1,volatile 指示編譯器不要優化編譯。 平時,編譯器把變數從內存 ldr 到寄存器,之後再對這個變數操作就直接對寄存器操作, 而加上volatile 後, 每次操作都需要再把變數重讀一次,這是因為雖然我們的程序沒有修改GPBCON 的值,但是這個值可能因硬體原因已經變化了,所以每次操作前,都要重讀一次哇。
2,
(*(volatile unsigned long *)0x56000010)根據運算順序,先是強制類型轉化:
a, (volatile unsigned long *)0x56000010 就是把 0x56000010 轉化為一個無符號long型的指針
我們可以把它看作一個指針p。
b, *p 就是訪問指針的內容了。
Ⅱ 我在ubuntu9。04下,用arm-linux-gcc 交叉編譯了一個led驅動程序。引用的內核源碼放在/usr/src/linux2.6
如果你要編譯一個 驅動 首先你那個 linux內核事編譯好的。makefile 裡面耀指向你的linux內核目錄
你在試試
Ⅲ 基於S3C2440的ucgui圖形界面開發
uC/GUI移植主要集中在修改源碼下的三個頭文件GUICon,GUITouchConf.h(不用到觸摸屏可以忽略),LCDConf.h和兩個C文件GUI_X.c、LCDWin.c。。。
這個網上移植的教程很多,隨便搜一下吧,不是很難。移植完之後可以有一個Demo程序直接運行,挺炫的。
還有不建議裸機,最起碼上個uC/OS吧,uC/GUI和uc/OSii一齊搭配才最經典。
Ⅳ 嵌入式linux問題
s3c2410.h是三星2410使用的。你的cpu是什麼?應該用你的cpu的型號的目錄下面的。
你到kernel的源代碼arch目錄下,根據你的cpu架構和廠商及cpu型號來找。