亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        μCLinux操作系統(tǒng)的移植及Bootloader程序設計

        2010-07-17 07:37:24劉彥蘭
        山西電子技術 2010年3期
        關鍵詞:源碼源代碼體系結構

        劉彥蘭

        (國營第七八五廠,山西太原030024)

        0 引言

        μCLinux在無MMU的嵌入式系統(tǒng)中具有較好的技術優(yōu)勢,而ARM7TDMI又是一種高效,低功耗的RISC處理器。本文構造了一個μCLinux嵌入式操作系統(tǒng),將它嵌入到基于ARM7TDMI內(nèi)核的系統(tǒng)中。

        1 嵌入式系統(tǒng)硬件平臺

        1.1 TMS320VC5471評估板簡介

        TI公司提供的嵌入式芯片TMS320VC5471集成了基于TMS320C54X體系結構的DSP子系統(tǒng)和基于ARM7TDMI核的RISC微控制器子系統(tǒng)的雙CPU定點數(shù)字信號處理器。TMS320VC5471的功能框圖如圖1所示:

        圖1 TMS320VC5471的功能框圖

        2 μClinux操作系統(tǒng)的移植

        μCLinux的移植過程,大致需要分成四個步驟:

        (1)建立交叉編譯環(huán)境;

        (2)裁減、編譯內(nèi)核;

        (3)裝載內(nèi)核;

        (4)內(nèi)核啟動。

        2.1 交叉編譯環(huán)境的建立

        在μCLinux的移植中,ARM體系結構的交叉編譯環(huán)境,分為主機和目標機兩方面。在本設計中,主機安裝的是RedHat linux7.3操作系統(tǒng),并在其上建立GCC的ARM體系結構的交叉編譯環(huán)境。

        2.2 操作系統(tǒng)的移植

        2.2.1 獲得μCLinux源代碼開發(fā)包

        本課題采用的版本為Kernel-2.4.18??梢詮幕ヂ?lián)網(wǎng)上下載得到μCLinux-2.4.18、μClibc和elf2flt源碼及應用程序源碼包。文件為:μCLinux-dist-20040218.tar.gz,把它保存到/home目錄下,然后執(zhí)行:tar zxvf μCLinux-dist-20040218.tar.gz。當tar程序運行完畢后,在/home目錄下會有一個/home/μCLinux-dist的新目錄,這就是 μCLinux的源碼根目錄,里面有進行μCLinux開發(fā)的所有的源代碼。

        2.2.2 Clinux內(nèi)核的修改、配置和編譯

        由于本設計是將μClinux移植到VC5471平臺上,所以需要根據(jù) VC5471下面的 ARM7TDMI架構,重新修改μCLinux內(nèi)核。修改μCLinux內(nèi)核有三方面的工作:一個是函數(shù)庫的問題;二是重寫Makefile以適應目標板;三是修改μCLinux/Linux/arch/armnommu/目錄下的文件,以使它適應ARM7TDMI架構。

        μClinux內(nèi)核的配置系統(tǒng)由三部分組成,分別是:

        (1)Makefile:分布在μClinux內(nèi)核源代碼中的Makefile,定義了μClinux內(nèi)核編譯規(guī)則;

        (2)配置文件(config.in):給用戶提供配置內(nèi)核的選擇功能;

        (3)配置工具:包括配置命令解釋器(對配置腳本中使用的配置命令進行解釋)和配置用戶界面(提供基于字符界面、基于圖形界面以及基于Xwindows圖形界面的用戶配置界面,各自對應于 Make config、Make menuconfig和 Make xconfig)。

        make xconfig根據(jù)課題的需要配置內(nèi)核編譯選項

        —Choose a Vendor/Product combination.

        (TI/5471)Vendor/Product

        (linux-2.4.x)Kernel Version

        (μClibc)Libc Version

        [Exit]

        Do you wish to save your new kernel configuration?

        [Yes]

        .make dep建立依賴關系

        .make lib_only編譯庫文件

        make user_only編譯用戶應用程序文件

        make romfs生成romfs文件系統(tǒng)

        make編譯內(nèi)核

        若成功,在μClinux-dist下有一個images目錄,下面有四個文件:

        (1).image.elf:ELF格式含調(diào)試信息和 romfs的μCLinux,可以用gdb裝載調(diào)試運行

        (2).romfs.img:romfs的二進制文件

        (3).linux.bin:不含romfs的μCLinux二進制文件

        (4).image.bin:linux.bin和romfs.bin合并而成,并多了4個字節(jié)的校驗,這個文件的內(nèi)容拷貝到ram里后就可以直接從入口運行了。

        2.3 Bootloader的設計與實現(xiàn)

        將μCLinux內(nèi)核加載到內(nèi)存上運行的方式,需要編寫一段啟動代碼Bootloader。

        (1)Bootloader的操作模式

        多數(shù)Bootloader都包含兩種操作模式:“啟動加載”模式和“下載”模式。Bootloader從固態(tài)存儲設備上將操作系統(tǒng)加載進RAM中運行,整個過程并沒有用戶的介入。這種模式是Bootloader的正常工作模式。下載模式下,Bootloader將通過串口或網(wǎng)絡等通信手段從主機下載文件,此模式通常在首次安裝內(nèi)核與根文件系統(tǒng)或以后的系統(tǒng)更新時使用。工作于這種模式下的Bootloader需要向終端用戶提供一個簡單的命令行接口。

        (2)Bootloader的基本任務

        Bootloader一般是被燒錄或者下載到bootrom的0x0地址處,作為上電后執(zhí)行的第一部分指令,Bootloader需要完成以下幾個任務:<1>硬件初始化;<2>存儲器重映射;<3>下載內(nèi)核映像和根文件系統(tǒng)或把內(nèi)核裝載到SRAM里;<4>調(diào)用內(nèi)核。

        (3)Bootloader的實現(xiàn)

        (a)硬件設備初始化:該部分代碼用ARM匯編實現(xiàn)

        Ⅰ進入SVC32工作模式,并且禁止所有的中斷??梢酝ㄟ^寫CPU的中斷屏蔽寄存器或狀態(tài)寄存器(ARM的CPSR寄存器)來完成。

        mov r0,#(ARM_MODE_SVC|I_BIT|F_BIT)

        msr cpsr,r0

        Ⅱ設置CPU的速度和時鐘頻率。

        Ⅲ網(wǎng)口初始化,為內(nèi)核的下載準備條件。

        ⅣLCD和鍵盤初始化,為人機交互準備條件

        Ⅴ RAM初始化,為Bootloader的C代碼運行準備空間。

        (b)拷貝Bootloader的C代碼到RAM空間中。

        拷貝時要確定兩點:① C代碼的可執(zhí)行映象在固態(tài)存儲設備的存放起始地址和終止地址;② RAM空間的起始地址。以上可以通過鏈接文件來確定。

        (c)設置堆棧指針sp

        ldr sp,=__stack(__stack的值可以通過鏈接文件確定)

        (d)地址重映射(Remap)

        具體的實現(xiàn)代碼如下:

        ramlow()

        {

        (*(long*)0xffff2804)&=0xfffffffc;

        (*(long*)0xffff2800)&=0xfffffffc;

        }

        (e)跳轉(zhuǎn)到C代碼的入口點開始執(zhí)行。由于VC5471評估板沒有固化BOOT程序,所以使用CCS軟件通過JTAG接口,先將Bootloader程序下載到RAM中,然后寫到Flash的起始地址,上電后從Flash中開始執(zhí)行Bootloader。到此Bootloader的任務就完成了。

        3 結束語

        本文以DSP+ARM結構的嵌入式處理器TMS320VC5471評估板(EVM)作為目標板,搭建了基于GDB的嵌入式操作系統(tǒng)集成開發(fā)調(diào)試環(huán)境并實現(xiàn)了μCLinux操作系統(tǒng)的移植。對同類型的嵌入式操作系統(tǒng)的移植工作具有一定的參考價值。

        [1]TI,TMS320VC547x CPU and Peripherals Reference Guide[M].2001.

        [2]TMS320VC5471 Fixed-PointDigital Signal Processor Data Manual[M].2001.

        [3]杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003.10.

        [4]趙炯.Linux內(nèi)核完全注釋[內(nèi)核版本0.11(0.95)]修正版V1.9.5[M].北京:機械工業(yè)出版社,2004.5.

        猜你喜歡
        源碼源代碼體系結構
        人工智能下復雜軟件源代碼缺陷精準校正
        計算機仿真(2023年8期)2023-09-20 11:23:42
        基于網(wǎng)頁源碼結構理解的自適應爬蟲代碼生成方法
        計算機應用(2023年6期)2023-07-03 14:11:56
        基于圖神經(jīng)網(wǎng)絡的軟件源碼漏洞檢測方法
        計算機時代(2023年6期)2023-06-15 17:49:09
        基于TXL的源代碼插樁技術研究
        企業(yè)如何保護源碼
        軟件源代碼非公知性司法鑒定方法探析
        基于粒計算的武器裝備體系結構超網(wǎng)絡模型
        作戰(zhàn)體系結構穩(wěn)定性突變分析
        基于數(shù)據(jù)結構教輔系統(tǒng)的實驗課程改革
        計算機教育(2016年4期)2016-05-20 02:36:05
        揭秘龍湖產(chǎn)品“源代碼”
        国产亚洲精品一区二区在线观看| 久久人人爽人人爽人人av| 把插八插露脸对白内射| 国产成人精品曰本亚洲| 国产一区二区三区蜜桃av| 亚洲国产精品自拍成人| 亚洲综合网国产精品一区| 亚洲精品熟女国产| 精品国产a∨无码一区二区三区| 国产AV秘 无码一区二区三区 | 久激情内射婷内射蜜桃人妖| 亚洲av无码乱码国产麻豆穿越| 淫欲一区二区中文字幕| 久久99精品综合国产女同| 国产亚洲精品久久久久久国模美| a级国产乱理伦片在线播放| 欧美日韩一区二区三区色综合| 中文字幕乱码琪琪一区| 亚洲国产精品国自产拍性色| 免费人成在线观看网站| 久久久久亚洲av无码专区导航| 无码伊人66久久大杳蕉网站谷歌| 日产一区一区三区区别| 亚洲成av人片女在线观看| 亚洲av无码久久精品狠狠爱浪潮| 极品美女高潮喷白浆视频| 在线观看黄片在线播放视频| 亚洲一区二区刺激的视频| 免费国产a国产片高清网站| 久久人人爽天天玩人人妻精品| 无码免费午夜福利片在线| 日韩精品视频av在线观看| 无套内谢孕妇毛片免费看| 国产精品免费观看久久| 日韩久久久黄色一级av| 白浆高潮国产免费一区二区三区 | 日躁夜躁狠狠躁2001| 中字亚洲国产精品一区二区| 日本精品av中文字幕| 亚洲av福利天堂一区二区三 | 美女视频黄的全免费的|