Linux驅動移植(四)——Linux內核移植

Linux設備驅動移植(四)——Linux內核移植

Linux內核的移植含義爲將Linux內核運行一個新的SoC芯片或新的電路板之上,其實質含義爲:建立Linux的板級支持包(BSP),BSP板級支持包的作用:1)爲內核提供必要的硬件支撐;2)屏蔽與板相關的硬件細節。

        對於Arm,BSP的源碼位置:/arch/arm下的相關plat和mach文件下,如下:

plat-xxx

linux-2.6/arch/arm/

plat-omap/

plat-pxa/

plat-s3c/

plat-s3c24xx/

plat-s3c64xx/

plat-stmp3xxx/

mach-xxx

linux-2.6/arch/arm/

mach-s3c2400/

mach-s3c2410/

mach-s3c2412/

mach-s3c2440/

mach-s3c2442/

mach-s3c2443/

mach-s3c24a0/

mach-s3c6400/

mach-s3c6410/

所有的板文件都位於相關芯片的目錄下。

上述目錄中的代碼完成的主要工作如下:

1. 始終tick(Hz)的產生
2. 系統中斷控制的方法
3. GPIO、DMA、時鐘資源的統一管理
4. 靜態映射的IO內存
5. 設備的IO、中斷、DMA等資源封裝平臺數據

Linux驅動板級移植的原則:切忌直接修改現有電路板的代碼作爲自身電路板的代碼,正確的方法是新建自己的板文件,將本身的設備和資源填寫在新的板文件裏面。
除了SoC芯片級和板級Linux移植外,移植工作量最大的是體系結構相關的Linux移植,例如將Linux移植到以個全新的CPU體系機構,如TI的DSP芯片。相關工作還會涉及到內存管理、進程調度、異常和陷阱等。

參考文獻:
1. Linux設備驅動開發詳解 宋寶華著


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章