新聞中心

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

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

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

fork_init(mempages);

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

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

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

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

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

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

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

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

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉