<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/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ū)動(dòng)程序、文件系統(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)的。雖然各個(gè)系統(tǒng)存在相同之處,但是它們的中斷處理上下文、內(nèi)存映射的維護(hù)、任務(wù)上下文和初始化過程是獨(dú)特的。這些例行程序放置在μClinux代碼樹的aroh/目錄下。這里需要根據(jù)自己的硬件平臺(tái)來配置內(nèi)核代碼。配置過程如下:
          可以從官方網(wǎng)站http://blackfin.μClinux.org處下載μClinux―list的內(nèi)核源代碼。運(yùn)行解壓命令:將tar― xvfμClinux―dist.tar.gz解壓完畢后,就會(huì)生成/μClinux―dist目錄,加入該目錄后按如下順序編譯內(nèi)核:
          (1)make menuconfig;進(jìn)入菜單方式配置指令;
          (2)選擇所使用的平臺(tái)類型和所使用的庫
          本文設(shè)計(jì)的目標(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)核時(shí)生成的所有目標(biāo)文件、模塊文件和一些臨時(shí)文件;
          (5)make lib_only;編譯庫文件;
          (6)make user_only;編譯用戶應(yīng)用程序文件;
          (7)make tomfs;生成romfs文件系統(tǒng);
          (8)make image;生成鏡像文件然后通過Jtag口輸入到目標(biāo)板;
          (9)make;通過各個(gè)目錄的makefile文件進(jìn)行,會(huì)在各目錄下生成一大堆目標(biāo)文件。
          在上述步驟完成后,就完成了對(duì)μClinux源碼的編譯工作。最后會(huì)在/μClinux―dist/images目錄下看到3個(gè)內(nèi)核文件:linux.dxe,linux.bin和zlmage.bin。如果編譯不成功,需要根據(jù)編譯過程的提示信息找到錯(cuò)誤并重新編譯,直到成功為止。
          4.2 修改配置內(nèi)核代碼
          直接由源代碼編譯生成的內(nèi)核映像文件一般不會(huì)啟動(dòng)成功,需要根據(jù)自己的目標(biāo)板進(jìn)行配置。需要修改系統(tǒng)啟動(dòng)初始化文件crt0_ram.s,sysinit.c和ram.1d。
          在crt0_ram.s中需要根據(jù)自己的目標(biāo)板修改基地址、存儲(chǔ)器大小和起始地址。在sysinit.c中需要修改片選設(shè)置,分別對(duì)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)啟動(dòng)時(shí)從FLASH中讀取壓縮的內(nèi)核代碼(存儲(chǔ)器空間有限,所以一般需要壓縮內(nèi)核代碼)到內(nèi)存中解壓,然后開始執(zhí)行,這種方法比第一種的速度更快(RAM的存取速度比FLASH的快)。所以選取第二種方法。
          編譯好的內(nèi)核文件可以由Visual DSP++裝置,通過網(wǎng)口或串口把linux.dxe下載到目標(biāo)板的FLASH中,從設(shè)定的入口地址(一般為Oxl000)執(zhí)行即可啟動(dòng)內(nèi)核。
          啟動(dòng)μClinux就可以在超級(jí)終端看到μClinux的歡迎信息和簡單的shell提示符,界面如圖3所示。

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


          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();