<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)DSP―BF533的μClinux嵌入式系統移植與開(kāi)發(fā)

基于A(yíng)DSP―BF533的μClinux嵌入式系統移植與開(kāi)發(fā)

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

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

本文引用地址:http://dyxdggzs.com/article/152551.htm

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


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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>