uCLinux嵌入式系統開發環境建立
1.Linux是一種很受歡迎的操作系統
本文引用地址:http://www.104case.com/article/150327.htm uClinux這個英文單詞u 中的表示小Micro. 小的意思,C表示Control,控制的 意思.所以uClinux就 是Micro-control-Linux,字面上的理解就是針對微控制領域而設計的Linux系統.
uClinux以其優異的性能、免費開放的代碼等優點,博得眾多嵌入式開發者的青睞,和過去基于簡單RTOS甚至沒有使用任何操作系統的嵌入式程序設計相比,基于Linux這樣的成熟的,高效的、健壯的、可靠的、模塊化的、易于配置的操作系統來開發自己的應用程序,無疑能進一提高效率,并具有很好的可移植性。基于UCLINUX的嵌入式系統開發涉及到三個方面:開發環境的建立,配置UCLINUX內核和bootloader以及應用程序的設計,本文將從這幾個方面來闡述的基于UCLINUX的嵌入式系統的設計。
開發環境的建立也就是工具鏈,設置工具鏈在主機機器上創建一個用于編譯將在目標上運行的內核和應用程序的構建環境?這是因為目標硬件可能沒有與主機兼容的二進制執行級別。包括Gcc:編譯器,可以做成交駐編譯的形式,即在宿主機上開發編譯目標上可運行的二進制文件。Binutils:一些畏助工具,包括objdump(可以反編譯二進制文件),as(匯編編譯器),id(連接器)等等。
Gdb:調試器,可使用多種交叉方式,gdb-bdm(背景調試工具),gdbserver(使用以太網絡調試)。Glibc-所有用戶應用程序都將鏈接到的C庫。避免使用任何C庫函數的內核 和其它應用程序可以沒有該庫的情況下進行編譯。
構建在工具鏈建立了一個交叉編譯器環境。本地編譯器編譯與本機同類的處理器的指令。交叉編譯器運行在某一種處理器上。卻可以編譯另一種處理器的指令。重頭設置交叉編譯器工具鏈可不是一項簡單的的任務:它包括下載源代碼、修補補丁,配置、編譯、設置頭文件、安裝以及很多很多的操作。另外,這一個徹底的的構建過內存和硬盤的需求是巨大的。如果沒有足夠的內存和硬盤空間。在構建除段由于相關性、配置或頭文件設置等問題會突然冒出許多問題。
因此能夠從因特網上獲得已預編譯的二進制文件是一件好事但不太好的一點是,目前它們大多 只限于基于ARM的系統。但遲早會改變的)。
3.配置UCLINUX內核和bootloader
配置內核 的命令是make menuconfig,會列出一些選項。根據你的硬件相應選取就行了。然后保存,退出,運行make dep,然后再make一下,會生成四個文件。
1.image.glf:ELF格式含 調 試信息和romfs的uClinux,可以用gdb裝載調試運行
2.romfs.ing:romfs的二進制文件
3.linux.bin:不含romfs的uclinux二進制文件
image.bin:linux.bin和romfs.bin合并而成,并多了4個字的校驗,這個文件的內容拷貝到ram里后就可以直接從入口運行了。
Bootloader的任務是初始化芯片和板子,用得比較多的有Blob、Redboot和Bootldr,如果是買的開發板,開發商會附送bootloader程序,但發如果是自己做的板子就麻煩一些,需要根據硬件修bootloader源碼,然后用前面說的交叉編譯成二進制文件(筆者經常用redboot,就是redboot.bin),用燒寫器燒寫的flash里啟動板子。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)linux相關文章:linux教程
評論