新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ADSP-BF533的μClinux嵌入式系統移植與開發

        基于ADSP-BF533的μClinux嵌入式系統移植與開發

        作者: 時間:2011-09-06 來源:網絡 收藏
        3 利用U—Boot引導內核

        本文引用地址:http://www.104case.com/article/150264.htm

          U—Boot(Universal Boot Loader)是當前比較流行的遵循GPL條件的開放源碼項目。也是是Linux常用的Boot Loader之一。其完成的功能是初始化硬件設備、改變處理器運行模式、重組中斷向量和建立內存空間映射圖,從而將的軟硬件帶到一個合適的狀態或者用戶定制的特定狀態,以便為最終加載操作內核準備好正確的環境。

          U—Boot具有源碼公開的特點,人員可根據自身需要進行裁減;支持多種處理器和操作系統內核;具有多種設備驅動源碼:支持種引導方式;具有功能強大且成熟、穩定等諸多優點,故本文采用U—Boot引導μ內核。U—Boot嚴重依賴于底層硬件,不同的CPU或板極設備需要不同的U—Boot,不過因為本文的重點是μ,所以這里不再詳述U—Boot的具體實現過程。

          當系統上電后,U—Boot從地址OxO開始執行,將存儲器映射重新配置,如圖1所示,并會執行μ的固化內核。

          

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

          4 μClinux內核的編譯和

          作為操作系統的核心,μClinux內核負責管理系統的進程、內存、設備驅動程序、文件系統和網絡系統,決定著系統的各種性能。μClinux內核采用模塊化的組織結構,通過增減內核模塊的方式來增減系統的功能。

          4.1 內核配置

          雖然μClinux的內核代碼大部分獨立于處理器和其體系結構,但是最底層的代碼還是特定系統的。雖然各個系統存在相同之處,但是它們的中斷處理上下文、內存映射的維護、任務上下文和初始化過程是獨特的。這些例行程序放置在μClinux代碼樹的aroh/目錄下。這里需要根據自己的硬件平臺來配置內核代碼。配置過程如下:

          可以從官方網站http://blackfin.μClinux.org處下載μClinux—list的內核源代碼。運行解壓命令:將tar— xvfμClinux—dist.tar.gz解壓完畢后,就會生成/μClinux—dist目錄,加入該目錄后按如下順序編譯內核:

          (1)make menuconfig;進入菜單方式配置指令;

          (2)選擇所使用的平臺類型和所使用的庫

          本文設計的目標板選擇:AnalogDevices/BF533一EZ—KIT和μC—libc庫。在配置欄中,選擇Load an AlternateConfiguration File,按確認,退出配置欄;

          (3)make dep;尋找依存關系;

          (4)make clean;清除以前構造內核時生成的所有目標文件、模塊文件和一些臨時文件;

          (5)make lib_only;編譯庫文件;

          (6)make user_only;編譯用戶應用程序文件;

          (7)make tomfs;生成romfs文件系統;

          (8)make image;生成鏡像文件然后通過Jtag口輸入到目標板;

          (9)make;通過各個目錄的makefile文件進行,會在各目錄下生成一大堆目標文件。

          在上述步驟完成后,就完成了對μClinux源碼的編譯工作。最后會在/μClinux—dist/images目錄下看到3個內核文件:linux.dxe,linux.bin和zlmage.bin。如果編譯不成功,需要根據編譯過程的提示信息找到錯誤并重新編譯,直到成功為止。

          4.2 修改配置內核代碼

          直接由源代碼編譯生成的內核映像文件一般不會啟動成功,需要根據自己的目標板進行配置。需要修改系統啟動初始化文件crt0_ram.s,sysinit.c和ram.1d。

          在crt0_ram.s中需要根據自己的目標板修改基地址、存儲器大小和起始地址。在sysinit.c中需要修改片選設置,分別對FLASH和 SDRAM進行片選設置。在ram.1d中修改內核連接加載地址。做完上面的修改,重新編譯生成linux.dxe等文件。

          4.3 μClinux內核的下載與執行

          μClinux內核有2種可選的運行方式:一種是在FLASH上直接運行;另一種是加載到內存中運行,系統啟動時從FLASH中讀取壓縮的內核代碼(存儲器空間有限,所以一般需要壓縮內核代碼)到內存中解壓,然后開始執行,這種方法比第一種的速度更快(RAM的存取速度比FLASH的快)。所以選取第二種方法。

          編譯好的內核文件可以由Visual DSP++裝置,通過網口或串口把linux.dxe下載到目標板的FLASH中,從設定的入口地址(一般為Oxl000)執行即可啟動內核。

          啟動μClinux就可以在超級終端看到μClinux的歡迎信息和簡單的shell提示符,界面如圖3所示。

          

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 尼木县| 凭祥市| 嘉义县| 鄂温| 来宾市| 娄烦县| 双牌县| 松原市| 磐安县| 定日县| 昌都县| 鹿泉市| 靖江市| 临清市| 宁都县| 富锦市| 孙吴县| 法库县| 关岭| 潼南县| 长宁县| 贺州市| 阿尔山市| 黔西| 东莞市| 三河市| 崇左市| 朔州市| 镇雄县| 承德市| 丹巴县| 阳曲县| 鹿邑县| 江川县| 和顺县| 德清县| 秭归县| 青铜峡市| 内乡县| 衡山县| 贺州市|