新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 嵌入式Linux: uClinux操作系統(tǒng)移植

嵌入式Linux: uClinux操作系統(tǒng)移植

作者: 時間:2012-05-11 來源:網(wǎng)絡(luò) 收藏

fork_init(mempages);

本文引用地址:http://www.butianyuan.cn/article/149092.htm

proc_caches_init();

vfs_caches_init(mempages);

buffer_init(mempages);

page_cache_init(mempages);

#ifdefined(CONFIG_ARCH_S390)

ccwcache_init();

#endif

signals_init();

#ifdefCONFIG_PROC_FS

proc_root_init();

#endif

#ifdefined(CONFIG_SYSVIPC)

ipc_init();

#endif

check_bugs();

printk(POSIXconformancetestingbyUNIFIXn);

/*

*Wecountontheinitialthreadgoingok

*Likeidlersinitisanunlockedkernelthread,whichwill

*makesyscalls(andthusbelocked)。

*/

smp_init();

rest_init();

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

5.系統(tǒng)源碼的修改

一個到新的硬件平臺,比較好的辦法是尋找一個架構(gòu)相近并且已經(jīng)做好的硬件平臺。然后,對原先的做一定修改。系統(tǒng)源碼修改的工作量取決于自行設(shè)計的硬件平臺與現(xiàn)有的硬件平臺之間差異程度。此設(shè)計中的硬件平臺與三星4510芯片較為接近,并且也可以下載到針對4510b的uclinux系統(tǒng)源碼。所以可以從此源碼入手,根據(jù)我們的硬件平臺與4510b的不同之處,在源碼中找到相應的文件并加以修改。下面介紹如何修改系統(tǒng)源碼。

需要修改的系統(tǒng)源碼主要有如下幾處:

(1)bootloader相關(guān)代碼。此代碼位于linux-2.4.xarcharmnommubootcompressed目錄下名為head.s的文件中。此處程序用匯編語言實現(xiàn),需要修改的地方主要是設(shè)置memorymap的代碼,與memorycontroller的硬件實現(xiàn)相關(guān)。

(2)UART相關(guān)代碼。UART相關(guān)代碼位于linux-2.4.xdriverschar目錄下的serial.c

(3)定時器相關(guān)代碼。中有如下函數(shù)調(diào)用star_kernel()->time_init()->setup_timer(),需要修改setup_timer()函數(shù)中的相關(guān)代碼。

(4)中斷控制器相關(guān)。uClinuxlinux-2.4.xarcharmnommuirq.c

除了上述的代碼,還有其他多處需要修改。在修改源代碼時,可按照uclinux啟動和執(zhí)行順序依次修改整個平臺。熟悉linux內(nèi)核源碼結(jié)構(gòu)對操作系統(tǒng)有很大幫助。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉