新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > μClinux在S3C4510B上的移植

        μClinux在S3C4510B上的移植

        作者: 時間:2012-05-11 來源:網絡 收藏

        內核的編譯和

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

        內核配置,在產品列表中選擇Samsung/4510B。在庫的選擇上選uC-libc。

        (2)makedep

        尋找依存關系。

        (3)makeclean

        清除以前構造內核時生成的所有目標文件、模塊文件和一些臨時文件。

        (4)makelib_only

        編譯庫文件。

        (5)makeuser_only

        編譯用戶應用程序文件。

        (6)makeromfs

        生成romfs文件系統。

        (7)makeimage

        (8)make

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

        上述步驟完成后,就完成了對μClinux源碼的編譯工作。我們可以在/μClinuxSamsung/images目錄下看到2個內核文件:image.ram和image.rom。

        其中iamge.rom可以直接燒寫入Flash存儲器中,當系統復位或上電時,內核自解壓到SDRAM運行。Image.ram可以通過SDT載入到SDRAM中直接運行。

        μCLinux的內核有2種可選的運行方式:可以在Flash上直接運行,也可以加載到RAM中運行。

        Flash運行方式:把內核的可執行映像文件燒到Flash上,系統啟動時從Flash的某個地址開始逐句執行。這種方法實際上是很多嵌入式系統采用的方法。

        內核加載RAM方式:把內核的壓縮文件存放在Flash上,系統啟動時讀取壓縮文件在內存里解壓,然后開始執行,這種方式相對復雜一些,但是運行速度可能更快。同時這也是標準Linux系統采用的啟動方式。

        6應用程序在μClinux上的開發

        下面將介紹如何把一個應用程序(例如examplec)添加到μClinux上的過程。

        首先進入μClinux-Samsung/user目錄并建立一個自己的子目錄,如myproject。將examplec復制到myproject目錄下,并編寫相應的makefile文件。接著進入user目錄,增加一行語句到該目錄下的makefile文件:

        dir_$(CONFIG_USER_MAAPP_LEDNXY)+=myapp

        切換到目錄μClinuxSamsung/config下,打開configin這個文件,并在最后增加類似下面的語句:

        mainmenu_optionnext_comment

        comment'MyApplication'

        bool'example'CONFIG_USER_MYPROJECT_

        EXAMPLE

        comment'MyApplication

        endmenu

        此后,在編譯內核的makemenuconfig時就可以在CustomizeVendor/UserSetting(NEW)這一項的子菜單中選中自己的應用程序example,然后按第5節中相同的辦法進行編譯即可。

        但是,如果我們每修改一次應用程序,就要把他加入到內核中重新編譯,顯然效率太低,也不可行。那么有什么方法來節省調試時間呢?

        在上面的章節中曾提到Bootloader可以擔當與主機端通信的任務,在這里我們就可以通過他把應用程序快速下載到目標板上。

        首先通過elf2flt這個工具交叉編譯example.c生成在μClinux下的可執行文件example(flat格式),命令如下:

        arm-elf-gcc-Wall-o2-wl,elf2flt-oexampleexample.c

        接著將宿主機與目標板通過串口線連接,并在宿主機上啟動一個超級終端,例如minicom,選擇好一個COM口(通常是串口1),設置波特率為19200,8個數據位、1個停止位,無校驗。然后選擇傳輸協議Zmodom,最后選定需要傳輸的文件example并發送。傳輸結束后可以通過超級終端在目標板的目錄中發現example,這說明傳輸成功。

        在目標板上將example加上x屬性(可執行屬性),然后輸入命令/example就可以運行此程序了。顯然,通過這種方法可以很方便快捷的調試應用程序,等調試結束,再把他加入到內核中一起編譯即可。

        7結語

        討論了如何將μClinux到ARM7體系微處理器上的基本流程,同時也簡要的介紹了Bootloader以及應用程序的加載和調試方法。在不同的宿主機和目標板環境下,具體過程中可能會出現各種不同的錯誤或問題,可以充分利用GCC這個強大的工具,根據他的錯誤提示來一步步的進行修正,最終成功的移植μClinux。


        上一頁 1 2 下一頁

        關鍵詞: 移植 S3C4510B Clinux

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广西| 惠安县| 福州市| 大名县| 靖宇县| 防城港市| 海兴县| 平南县| 双柏县| 桃园县| 南丰县| 海丰县| 灵川县| 泰安市| 黔江区| 高要市| 临颍县| 朝阳县| 五原县| 温宿县| 建水县| 团风县| 卓资县| 陕西省| 宁陵县| 体育| 井研县| 东丰县| 恩平市| 托克逊县| 泸定县| 文水县| 于都县| 壤塘县| 太保市| 容城县| 迁安市| 徐水县| 乌海市| 元江| 洛隆县|