@linux# 嵌入式
總結談及到嵌入式linux,就不得不了解交叉編譯的相關問題。本文章中記錄了一下嵌入式linux所使用的交叉編譯工具鏈的相關基礎說明,幫助回顧一些基礎知識。
交叉編譯:是a機器上編譯生成,執行在b機器上。兩個機子有不同的機器指令。
工具鏈:一般由編譯器、聯結器、直譯器和偵錯程式組成。比如arm、mips、risc-v等等指令集的工具鏈。
本文主要介紹一下arm的交叉編譯工具鏈。
工具鏈由很多程式組成,大致有:
gcc、addr2line、objcopy、readelf、ar、ld、objdump、size、nm、strip、cc、gprof、c++filt、as、cpp、gccbug、ldd、populate、strings、c++、g++、gcov、ranlib
arm的交叉編譯工具鏈有:
arm-linux-gcc
arm-linux-addr2line
arm-linux-objcopy
arm-linux-readelf
arm-linux-ar
arm-linux-ld
arm-linux-objdump
arm-linux-size
arm-linux-nm
arm-linux-strip
arm-linux-cc
arm-linux-gprof
arm-linux-c++filt
arm-linux-as
arm-linux-cpp
arm-linux-gccbug
arm-linux-ldd
arm-linux-populate
arm-linux-strings
arm-linux-c++
arm-linux-g++
arm-linux-gcov
arm-linux-ranlib 例項
1、arm-none-eabi-gcc
2、arm-none-linux-gnueabi-gcc
(arm architecture, no vendor, creates binaries that run on the linux operating system, and uses the gnu eabi)
主要用於基於arm架構的linux系統,可用於編譯 arm 架構的 u-boot、linux核心、linux應用等。arm-none-linux-gnueabi基於gcc,使用glibc庫,經過 codesourcery 公司優化過推出的編譯器。arm-none-linux-gnueabi-*** 交叉編譯工具的浮點運算非常優秀。一般arm9、arm11、cortex-a 核心,帶有 linux 作業系統的會用到。
3、arm-eabi-gcc
android arm 編譯器。
4、armcc
arm 公司推出的編譯工具,功能和 arm-none-eabi 類似,可以編譯裸機程式(u-boot、kernel),但是不能編譯 linux 應用程式。armcc一般和arm開發工具一起,keil mdk、ads、rvds和ds-5中的編譯器都是armcc,所以 armcc 編譯器都是收費的(愛國版除外,呵呵~~)。
5、arm-none-uclinuxeabi-gcc 和 arm-none-symbianelf-gcc
arm-none-uclinuxeabi 用於uclinux,使用glibc。
arm-none-symbianelf 用於symbian,沒用過,不知道c庫是什麼 。
兩者主要區別是,abi是計算機上的,eabi是嵌入式平台上(如arm,mips等)
本文參考如下:
[1]:
[2]:
嵌入式基礎知識
嵌入式處理器的分類包括三種,分別是 嵌入式微控制器 嵌入式微處理器 數字訊號處理器 安裝linux系統對硬碟分割槽時,必須有兩種分割槽型別 檔案系統分割槽 和交換分割槽 在vivi狀態下,顯示系統的分割槽命令是 part show。鏈結分為 符號鏈結 和硬鏈結 當gcc僅對原始檔進行編譯而不鏈結生成...
20180615 嵌入式linux基礎知識
嵌入式計算機是整個嵌入式系統的核心,主要包括應用軟體層 系統軟體層 硬體抽象層 硬體層。執行部件是控制物件,接受來自嵌入式計算機系統發出的指令,執行相應的操作。figure1 嵌入式系統組成 硬體抽象層 主要包括對底層硬體進行初始化與對硬體裝置進行配置等 硬體裝置的驅動實現 硬體層 微控制器,裝置輸...
嵌入式Linux系統 基礎知識
1 計算機系統 運算器 控制器 儲存器 輸入裝置 輸出裝置 cpu 處理器 運算器 控制器 暫存器 內部匯流排 mpu 微處理器 cpu mcu 微控制器 cpu 儲存器 外圍電路 mpu 通常代表乙個 cpu 處理器 而 mcu 則強調把 處理器 儲存器和外圍電路整合在乙個晶元中。早期,微控制器被...