歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

eCos 3.0 版本和cvs版本的 arm-eabi toolchains的編譯方法

最近因為要整理eCos的編譯系統,為了具體的項目做准備,稍微了解了ecos toolchain的特殊性。

在網絡上搜索了很多相關的內容,最後發現說的都不太准確,而且按照錯誤的方法編譯出來的編譯器可能本來就是不對的。

最要命的是,可能基本功能還可以用,但是如果用到C++工具就可能不行了。

好在eCos可以在編譯好default的配置以後執行

make tests

這樣以來,首先可以看看我們的編譯器是否完整,還可以通過qemu來驗證一下編譯出來的內容是否正確。

好了閒話短說步入正題

eCos操作系統除了OS本身,還有一部分就是libc。也就是說,eCos本身帶有libc,所以他不會用到gnu的newlib作為libc庫。

但是作為gnu的toochain,要包含有必要的頭文件來引用eCos內部的libc,因此在為eCos編譯toolchain的時候需要一些特別的注意。

  • 環境准備

1. GNU組件:

編譯eCos操作系統及其應用程序需要一下幾個gnu組件

gnu源碼包

作用

eCos3.0采用的版本

binutils 二進制代碼工具 2.18.50.20080513 gcc-core gnu c 編譯器核心模塊 4.3.2 gcc-g++ gnu c++ 編譯器擴展模塊 4.3.2 gdb gnu 調試器 6.8.50.20080706

 

2. eCos提供的補丁:

ecoscentric-gnutools-20090121-sw-patches.tar.bz2

以上軟件包可以從 http://sourceware.mirrors.tds.net/pub/sourceware.org/ecos/gnutools/src/ 下載

3. 解決C++依賴頭文件補丁

emboslab-gnutools-20090121-sw-patches.tar.bz2

從emoslab下載補丁https://sourceforge.net/projects/emboslab/files/emboslab-gnutools-20090121-sw-patches.tar.bz2/download

4. 獲取必要的ecos頭文件

ecosconfig new mini2440

ecosconfig add fileio

make

重命名install/include 目錄為 sys-include目錄備用

  • 編譯

這裡以emoslab的ecos為例,逐步說明如何在自己主機上編譯arm-eabi工具鏈

設置環境變量

export TARGET=arm-eabi

export PATH=$PATH:/opt/ecos/gnutools/arm-eabi/bin

解壓源代碼

tar -jxf binutils-2.18.50.20080513.tar.bz2

tar -jxf ecoscentric-gnutools-20090121-sw-patches.tar.bz2

tar -jxf emboslab-gnutools-20090121-sw-patches.tar.bz2

tar -jxf gcc-core-4.3.2.tar.bz2

tar -jxf gcc-g++-4.3.2.tar.bz2

tar -jxf gdb-6.8.50.20080706.tar.bz2


為gcc 4.3.3打補丁

cd gcc-4.3.2

patch -p1 < ../patches/gcc-4.3.2.patch

patch -p1 < ../patches/gcc-4.3.2-arm.patch

patch -p1 < ../gcc-4.3.2-arm-ricky.patch

cd ..


為gdb 6.8.50.20080706打補丁

cd gdb-6.8.50.20080706

patch -p1 < ../patches/gdb-6.8.50.20080706.patch

patch -p1 < ../patches/gdb-6.8.50.20080706-arm.patch

cd ..

Copyright © Linux教程網 All Rights Reserved