新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ADSP―BF533的μClinux嵌入式系統(tǒng)移植與開發(fā)

基于ADSP―BF533的μClinux嵌入式系統(tǒng)移植與開發(fā)

作者: 時間:2009-04-07 來源:網(wǎng)絡(luò) 收藏

U―Boot具有源碼公開的特點,人員可根據(jù)自身需要進(jìn)行裁減;支持多種處理器和操作內(nèi)核;具有多種設(shè)備驅(qū)動源碼:支持種引導(dǎo)方式;具有功能強(qiáng)大且成熟、穩(wěn)定等諸多優(yōu)點,故本文采用U―Boot引導(dǎo)μ內(nèi)核。U―Boot嚴(yán)重依賴于底層硬件,不同的CPU或板極設(shè)備需要不同的U―Boot,不過因為本文的重點是μ,所以這里不再詳述U―Boot的具體實現(xiàn)過程。
當(dāng)上電后,U―Boot從地址OxO開始執(zhí)行,將存儲器映射重新配置,如圖1所示,并會執(zhí)行μ的固化內(nèi)核。

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

U一Boot可以使用ADI的仿真軟件Visual DSP++通過仿真器或JTAG口下載到目標(biāo)板上。


4 μClinux內(nèi)核的編譯和
作為操作的核心,μClinux內(nèi)核負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動程序、文件系統(tǒng)和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的各種性能。μClinux內(nèi)核采用模塊化的組織結(jié)構(gòu),通過增減內(nèi)核模塊的方式來增減系統(tǒng)的功能。
4.1 內(nèi)核配置
雖然μClinux的內(nèi)核代碼大部分獨(dú)立于處理器和其體系結(jié)構(gòu),但是最底層的代碼還是特定系統(tǒng)的。雖然各個系統(tǒng)存在相同之處,但是它們的中斷處理上下文、內(nèi)存映射的維護(hù)、任務(wù)上下文和初始化過程是獨(dú)特的。這些例行程序放置在μClinux代碼樹的aroh/目錄下。這里需要根據(jù)自己的硬件平臺來配置內(nèi)核代碼。配置過程如下:
可以從官方網(wǎng)站http://blackfin.μClinux.org處下載μClinux―list的內(nèi)核源代碼。運(yùn)行解壓命令:將tar― xvfμClinux―dist.tar.gz解壓完畢后,就會生成/μClinux―dist目錄,加入該目錄后按如下順序編譯內(nèi)核:
(1)make menuconfig;進(jìn)入菜單方式配置指令;
(2)選擇所使用的平臺類型和所使用的庫
本文設(shè)計的目標(biāo)板選擇:AnalogDevices/一EZ―KIT和μC―libc庫。在配置欄中,選擇Load an AlternateConfiguration File,按確認(rèn),退出配置欄;
(3)make dep;尋找依存關(guān)系;
(4)make clean;清除以前構(gòu)造內(nèi)核時生成的所有目標(biāo)文件、模塊文件和一些臨時文件;
(5)make lib_only;編譯庫文件;
(6)make user_only;編譯用戶應(yīng)用程序文件;
(7)make tomfs;生成romfs文件系統(tǒng);
(8)make image;生成鏡像文件然后通過Jtag口輸入到目標(biāo)板;
(9)make;通過各個目錄的makefile文件進(jìn)行,會在各目錄下生成一大堆目標(biāo)文件。
在上述步驟完成后,就完成了對μClinux源碼的編譯工作。最后會在/μClinux―dist/images目錄下看到3個內(nèi)核文件:linux.dxe,linux.bin和zlmage.bin。如果編譯不成功,需要根據(jù)編譯過程的提示信息找到錯誤并重新編譯,直到成功為止。
4.2 修改配置內(nèi)核代碼
直接由源代碼編譯生成的內(nèi)核映像文件一般不會啟動成功,需要根據(jù)自己的目標(biāo)板進(jìn)行配置。需要修改系統(tǒng)啟動初始化文件crt0_ram.s,sysinit.c和ram.1d。
在crt0_ram.s中需要根據(jù)自己的目標(biāo)板修改基地址、存儲器大小和起始地址。在sysinit.c中需要修改片選設(shè)置,分別對FLASH和 SDRAM進(jìn)行片選設(shè)置。在ram.1d中修改內(nèi)核連接加載地址。做完上面的修改,重新編譯生成linux.dxe等文件。
4.3 μClinux內(nèi)核的下載與執(zhí)行
μClinux內(nèi)核有2種可選的運(yùn)行方式:一種是在FLASH上直接運(yùn)行;另一種是加載到內(nèi)存中運(yùn)行,系統(tǒng)啟動時從FLASH中讀取壓縮的內(nèi)核代碼(存儲器空間有限,所以一般需要壓縮內(nèi)核代碼)到內(nèi)存中解壓,然后開始執(zhí)行,這種方法比第一種的速度更快(RAM的存取速度比FLASH的快)。所以選取第二種方法。
編譯好的內(nèi)核文件可以由Visual DSP++裝置,通過網(wǎng)口或串口把linux.dxe下載到目標(biāo)板的FLASH中,從設(shè)定的入口地址(一般為Oxl000)執(zhí)行即可啟動內(nèi)核。
啟動μClinux就可以在超級終端看到μClinux的歡迎信息和簡單的shell提示符,界面如圖3所示。

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


評論


相關(guān)推薦

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

關(guān)閉