arm11編譯器
❶ ttys0超級終端。linux新手,arm11開發板建立交叉編譯環境,那個超級終端是啥,在linux下安裝還是windows下
使用Linux,你可以不支付的牌照費,它是免費軟體。不能使用windows操作系統開發ARM嗎?是的,但你需要購買大量的信息。包括開發軟體API。臂(晶元)和一個用戶的操作系統到底是什麼關系呢?硬體和軟體之間的區別。 P4和XP一樣。我看到深圳市英蓓特做了深圳市英蓓特IDE的使用MCU IDE,安裝在Windows系統中,也可以用來做arm開發,如果這是一個IDE,安裝在您的電腦上,然後雙擊在模擬器上,然後連接到開發板就可以了,為什麼有這么多的人想使用Linux系統嗎?如果有代碼的WINDOS高昂的牌照費和相關故作高深的垃圾,但也是開源和Linux的基本上差不多。這是嵌入式Linux開發人員的原因。 Linux系統的IDE是什麼?一般用vi或emacs更大的日食,Anjuta集成開發環境,kdeveloper ...但是,人們一般不會有大的IDE軟體開發Linux。幾乎是XP的超級小型機下,但方便多了。 「這句話到底是什麼意思?具體怎麼樣?他的說法是不正確,你控制的串列的minicom的功能基本上涵蓋了所有,超級終端是一個孩子的版本只。具體用法之後,你已經安裝的Linux的人看看就可以了本地編譯器工具集編譯的代碼僅適用於機(大多數PC X86)運行ARM開發需要一個本地編譯器,但編譯器運行的代碼來生成ARM的交叉編譯器工具集是一組。
因此,與機床設定的目標名稱,選擇不同的具體含義是非常必要的arm-linux:一個比較流行的名字,支持ELF格式的(ARMLinux標)。除了橡果用戶使用老的a.out格式,臂是linuxaout,選擇a.out格式,ARMLinux基本不支持它。AOUT臂,臂COFF,並推導出ARM-ELF,手臂的經驗:其他格式的名稱,你也可以將版本信息中,例如:armv2: ARMV2支持26位模式。armv3l armv3b:ARMV3核小位元組(l)或位元組(B)模式。armv4l armv4b還支持小字:ARMV4核心,如:StrongARM的,ARM7TDMI,ARM8,ARM9核,也支持小位元組(l)或位元組(B),armv5b模式。armv5l:(ARMV5)核,如:ARM10的XScale核心。節(l)或位元組(B)模式,選擇什麼樣的名字定製ARM交叉編譯器工具集不有太大的影響,但是我們使用的名稱會更好。
❷ ARM9和ARM11用的交叉編譯器是否一樣
arm9-linux-gcc arm11-linux-gccarm9-linux-gcc arm11-linux-gcc啊
❸ 1.ARM編譯器是一款什麼樣的軟體 2.ARM產品線包含哪些產品 3.ARM代理商目前有哪些
ARM處理器是Acorn計算機有限公司面向低預算市場設計的第一款RISC微處理器。1978年12月5日,物理學家赫爾曼·豪澤(Hermann Hauser)和工程師Chris Curry,在英國劍橋創辦了CPU公司(Cambridge Processing Unit),主要業務是為當地市場供應電子設備。1979年,CPU公司改名為Acorn計算機公司。ARM處理器的三大特點是:耗電少功能強、8位/16位/32位雙指令集和市場用戶廣。
ARM開發工具
杭州通格信息技術有限公司是ARM公司官方授權的,浙江區全線開發工具產品代理商,提供ARM公司工具產品在國內的銷售、更新、升級和技術支持等服務。
軟體開發工具:DS-5、RVDS、Keil MDK-ARM、Keil C51、Keil C166、Keil C251。
模擬器:DSTREAM、RVI&RVT2、ULINK2、ULINKpro、ULINK-ME。
ARM內核FPGA開發板:ARM9、ARM11、Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A12、Cortex-A15、Cortex-A53和Cortex-A57開發板。
Keil MCU開發板:基於ARM7、ARM9、Cortex-M0、M3、M4內核的NXP、ST晶元系列開發板。
杭州通格信息技術有限公司是ARM公司在浙江區全線開發工具代理商。上海攝氏度信息科技有限公司做全國的。
❹ x86與ARM架構下的編譯器的區別
ARM是簡單指令集。。。 指令集長度短
❺ ARM11 680MHz 和TI OMAP3630 1GHz兩個CPU誰更強悍一點!
TI OMAP3630強。TI OMAP3630是基於ARM公司的cortext a8架構。cortext a8架構是ARM11升級版本。無論執行效率還是主頻都比ARM11強
❻ ARM7,ARM9,ARM11等有啥區別
簡單點:
arm7沒有保護模式需要MMU單元,功能上來說一般用作實時控制系統。
arm9以上都有MMU單元,功能比arm7有很大提高,採用了偽哈弗結構,指令處理速度快很多。由於有MMU,所以arm9以上就可以運行嵌入式linux和wince等操作系統。
學嵌入式,要學的東西多了,如果你一點單片機和操作系統的概念也沒有,就先惡補這兩個內容先吧。
linux只是一個開源的unix操作系統,與windows不同之處,是開源,誰都可以獲得源代碼,但是免費的東西總是沒那麼好使,所以才有windows的市場,windows功能以及平台支持軟體比linux多多了,但是由於linux是開源的,因此容易被人們修改適合自己特定的需要,因此linux首先就成了嵌入式系統的首選。
arm是一種處理器體系,與語言無關,你用匯編、C、C++都可以開發程序,只要你能找到這樣的編譯器,目前通常是用C語言開發,因為這樣的編譯器多而且好用。而有些直接與硬體交互的編程匯編更加好使。
你一點概念都沒有,還是先學學基本的吧,嵌入式涉及的面太大了,估計需要幾年才能有個概念。
❼ 初學者想學ARM嵌入式,應該選ARM9還是ARM11開發板
對於ARM嵌入式的初學者,建議用ARM9開發板。
首先,從功能上來說,ARM11要比ARM9強一些,但是性能優異並不代表適合初學者。對於初學者來說ARM11的有些功能是冗餘。
其次,學習ARM9或者ARM11就在所難免學習其所支持的操作系統Linux(ARM11可以支持Android)。目前,市面上ARM9的開發版的價格要比ARM11低很多,而兩者都可以運行Linux操作系統。並且ARM9開發板的資料和教學視頻也更多一些。jz2440+韋東山系列教學視頻,mini2440+國嵌視頻都是不錯的選擇。
最後,學習ARM9,可以按Linux應用開發、驅動開發順序學習。如果想學習Android系統開發,可以學完ARM9再學習ARM11開發板下的安卓系統開發。因為安卓系統就是Linux內核+libc庫用Java封裝而成。
❽ ARM11的內核特點
ARM11處理器是為了有效的提供高性能處理能力而設計的。在這里需要強調的是,ARM並不是不能設計出運行在更高頻率的處理器,而是,在處理器能提供超高性能的同時,還要保證功耗、面積的有效性。ARM11優秀的流水線設計是這些功能的重要保證。
ARM11處理器的流水線和以前的ARM內核不同,它由8級流水線組成,可以比5級流水線的ARM9達到更高的運行頻率。
從通常的角度說,過長的流水線往往會削弱指令的執行效率。一方面,如果隨後的指令需要用到前面指令的執行結果作為輸入,它就需要等到前面指令執行完。ARM11處理器通過forwarding來避免這種流水線中的數據沖突,它可以讓指令執行的結果快速進入到後面指令的流水線中。另一方面,如果指令執行的正常順序被打斷(如出現跳轉指令),普通流水線處理器往往要付出更大的代價,ARM11通過實現跳轉預測技術來保持最佳的流水線效率。這些特殊技術的使用,使ARM11處理器優化到更高的流水線吞吐量的同時,還能保持和5級流水線(如ARM9處理器中的流水結構)一樣的有效性。 跳轉指令通常都是條件執行的。問題在於那些決定是否跳轉的條件要在跳轉指令被解碼的後3~4個周期才能就緒。如果不做特殊處理,跳轉指令必須等待,這樣使指令執行效率變得讓人難以忍受。跳轉預測就是用來幫助解決這種延遲的。ARM11處理器提供兩種技術來對跳轉作出預測—動態預測和靜態預測。
動態預測:在ARM11處理器中包含了64個4狀態跳轉地址緩存器(4-state branch target address cache)來保存最近發生的跳轉指令的結果。通過對這些歷史紀錄的查找,處理器可以預測出當前的跳轉指令是否會被執行。
靜態預測:當在動態預測的緩存器中無法查到和當前指令匹配的記錄,ARM11處理器就從跳轉的方式來判斷是否執行。如果是向回跳轉,大多數情況是遇到一個循環,處理器會假設這條指令被執行。如果是向前跳轉,處理器會假設這條指令不被執行。
動態預測和靜態預測的組合使ARM11處理器能達到85%的預測正確性,對於每一個正確的預測,給指令執行帶來的是減少5個時鍾周期的等待時間。 在ARM11處理器中,指令和數據可以更長時間的被保存在Cache中。一方面是由於物理地址Cache的實現,使上下文切換避免了反復重載Cache,另一方面是由於ARM11的Cache還有很多其它新穎的技術特點。
如果數據的訪問引起了CacheMiss,Cache將到存儲器中讀取需要的數據。但是ARM11處理器的流水線並不會停止下來。只要後面的指令沒有用到Cache Miss將讀回來的數據,ARM11處理器就會繼續執行下去。即使下一條指令還是存儲器訪問指令,只要數據存放在Cache中,ARM11也會允許這條指令被執行。只有這條指令又引起一次CacheMiss,處理器才會停止下來。在大多數應用中,經過編譯器調配後,這種情況並不多見。 盡管ARM11是單指令發射處理器,但是在流水線的後半部分允許了極大程度的並行性。一旦指令被解碼,將根據操作類型發射到不同的執行單元中。ARM11的數據通路中包含多個處理單元,允許ALU操作、乘法操作和存儲器訪問操作同時進行。
考慮到不同的指令需要不同的執行時間,當三類指令先後被發射到流水線中,它們就可以同時被執行。而且ARM11處理器允許指令的亂序完成,如果在指令之間沒有數據的相關性,所有指令都可以不必等待前面的指令完成而結束自己的執行。 ARM11處理器將浮點運算當成一個可供用戶選擇的設計。用戶可以在向ARM要求授權的時候選擇是否包括浮點處理器的內核。在流水線上的重要區別不僅是為了達到更高的性能,還是從實現的角度來考慮的。所以,ARM11內核在運行於極高頻率的同時,也能非常容易的被集成在SoC設計中。同時,ARM11處理器提供的向上兼容性,使OEM可以放心的選用任何基於ARM的產品。

❾ arm11開發環境是什麼
我在ubuntu 10的系統下運行vim gcc進行編譯s3c6410
不一定要在ubuntu 只要是linux平台就行 類似的還有小紅帽等等
❿ 交叉編譯器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的區別
自己之前一直沒搞清楚這兩個交叉編譯器到底有什麼問題,特意google一番,總結如下,希望能幫到道上和我有同樣困惑的兄弟…..
一. 什麼是ABI和EABI
1) ABI: 二進制應用程序介面(Application Binary Interface (ABI) for the ARM Architecture)
在計算機中,應用二進制介面描述了應用程序(或者其他類型)和操作系統之間或其他應用程序的低級介面.
ABI涵蓋了各種細節,如:
數據類型的大小、布局和對齊;
調用約定(控制著函數的參數如何傳送以及如何接受返回值),例如,是所有的參數都通過棧傳遞,還是部分參數通過寄存器傳遞;哪個寄存器用於哪個函數參數;通過棧傳遞的第一個函數參數是最先push到棧上還是最後;
系統調用的編碼和一個應用如何向操作系統進行系統調用;
以及在一個完整的操作系統ABI中,目標文件的二進制格式、程序庫等等。
一個完整的ABI,像Intel二進制兼容標准 (iBCS) ,允許支持它的操作系統上的程序不經修改在其他支持此ABI的操作體統上運行。
ABI不同於應用程序介面(API),API定義了源代碼和庫之間的介面,因此同樣的代碼可以在支持這個API的任何系統中編譯,ABI允許編譯好的目標代碼在使用兼容ABI的系統中無需改動就能運行。
2) EABI: 嵌入式ABI
嵌入式應用二進制介面指定了文件格式、數據類型、寄存器使用、堆積組織優化和在一個嵌入式軟體中的參數的標准約定。
開發者使用自己的匯編語言也可以使用EABI作為與兼容的編譯器生成的匯編語言的介面。
支持EABI的編譯器創建的目標文件可以和使用類似編譯器產生的代碼兼容,這樣允許開發者鏈接一個由不同編譯器產生的庫。
EABI與關於通用計算機的ABI的主要區別是應用程序代碼中允許使用特權指令,不需要動態鏈接(有時是禁止的),和更緊湊的堆棧幀組織用來節省內存。廣泛使用EABI的有Power PC和ARM.
二. gnueabi相關的兩個交叉編譯器: gnueabi和gnueabihf
在debian源里這兩個交叉編譯器的定義如下:
gcc-arm-linux-gnueabi – The GNU C compiler for armel architecture
gcc-arm-linux-gnueabihf – The GNU C compiler for armhf architecture
可見這兩個交叉編譯器適用於armel和armhf兩個不同的架構, armel和armhf這兩種架構在對待浮點運算採取了不同的策略(有fpu的arm才能支持這兩種浮點運算策略)
其實這兩個交叉編譯器只不過是gcc的選項-mfloat-abi的默認值不同. gcc的選項-mfloat-abi有三種值soft,softfp,hard(其中後兩者都要求arm里有fpu浮點運算單元,soft與後兩者是兼容的,但softfp和hard兩種模式互不兼容):
soft : 不用fpu進行浮點計算,即使有fpu浮點運算單元也不用,而是使用軟體模式。
softfp : armel架構(對應的編譯器為gcc-arm-linux-gnueabi)採用的默認值,用fpu計算,但是傳參數用普通寄存器傳,這樣中斷的時候,只需要保存普通寄存器,中斷負荷小,但是參數需要轉換成浮點的再計算。
hard : armhf架構(對應的編譯器gcc-arm-linux-gnueabihf)採用的默認值,用fpu計算,傳參數也用fpu中的浮點寄存器傳,省去了轉換, 性能最好,但是中斷負荷高。
把以下測試使用的c文件內容保存成mfloat.c:
#include <stdio.h>
int main(void)
{
double a,b,c;
a = 23.543;
b = 323.234;
c = b/a;
printf(「the 13/2 = %f\n」, c);
printf(「hello world !\n」);
return 0;
}
1)使用arm-linux-gnueabihf-gcc編譯,使用「-v」選項以獲取更詳細的信息:
# arm-linux-gnueabihf-gcc -v mfloat.c
COLLECT_GCC_OPTIONS=』-v』 『-march=armv7-a』 『-mfloat-abi=hard』 『-mfpu=vfpv3-d16′ 『-mthumb』
-mfloat-abi=hard,可看出使用hard硬體浮點模式。
2)使用arm-linux-gnueabi-gcc編譯:
# arm-linux-gnueabi-gcc -v mfloat.c
COLLECT_GCC_OPTIONS=』-v』 『-march=armv7-a』 『-mfloat-abi=softfp』 『-mfpu=vfpv3-d16′ 『-mthumb』
-mfloat-abi=softfp,可看出使用softfp模式。
三. 拓展閱讀
下文闡述了ARM代碼編譯時的軟浮點(soft-float)和硬浮點(hard-float)的編譯以及鏈接實現時的不同。從VFP浮點單元的引入到軟浮點(soft-float)和硬浮點(hard-float)的概念
VFP (vector floating-point)
從ARMv5開始,就有可選的 Vector Floating Point (VFP) 模塊,當然最新的如 Cortex-A8, Cortex-A9 和 Cortex-A5 可以配置成不帶VFP的模式供晶元廠商選擇。
VFP經過若干年的發展,有VFPv2 (一些 ARM9 / ARM11)、 VFPv3-D16(只使用16個浮點寄存器,默認為32個)和VFPv3+NEON (如大多數的Cortex-A8晶元) 。對於包含NEON的ARM晶元,NEON一般和VFP公用寄存器。
硬浮點Hard-float
編譯器將代碼直接編譯成發射給硬體浮點協處理器(浮點運算單元FPU)去執行。FPU通常有一套額外的寄存器來完成浮點參數傳遞和運算。
使用實際的硬體浮點運算單元FPU當然會帶來性能的提升。因為往往一個浮點的函數調用需要幾個或者幾十個時鍾周期。
軟浮點 Soft-float
編譯器把浮點運算轉換成浮點運算的函數調用和庫函數調用,沒有FPU的指令調用,也沒有浮點寄存器的參數傳遞。浮點參數的傳遞也是通過ARM寄存器或者堆棧完成。
現在的Linux系統默認編譯選擇使用hard-float,即使系統沒有任何浮點處理器單元,這就會產生非法指令和異常。因而一般的系統鏡像都採用軟浮點以兼容沒有VFP的處理器。
armel ABI和armhf ABI
在armel中,關於浮點數計算的約定有三種。以gcc為例,對應的-mfloat-abi參數值有三個:soft,softfp,hard。
soft是指所有浮點運算全部在軟體層實現,效率當然不高,會存在不必要的浮點到整數、整數到浮點的轉換,只適合於早期沒有浮點計算單元的ARM處理器;
softfp是目前armel的默認設置,它將浮點計算交給FPU處理,但函數參數的傳遞使用通用的整型寄存器而不是FPU寄存器;
hard則使用FPU浮點寄存器將函數參數傳遞給FPU處理。
需要注意的是,在兼容性上,soft與後兩者是兼容的,但softfp和hard兩種模式不兼容。
默認情況下,armel使用softfp,因此將hard模式的armel單獨作為一個abi,稱之為armhf。
而使用hard模式,在每次浮點相關函數調用時,平均能節省20個CPU周期。對ARM這樣每個周期都很重要的體系結構來說,這樣的提升無疑是巨大的。
在完全不改變源碼和配置的情況下,在一些應用程序上,使用armhf能得到20%——25%的性能提升。對一些嚴重依賴於浮點運算的程序,更是可以達到300%的性能提升。
Soft-float和hard-float的編譯選項
在CodeSourcery gcc的編譯參數上,使用-mfloat-abi=name來指定浮點運算處理方式。-mfpu=name來指定浮點協處理的類型。
可選類型如fpa,fpe2,fpe3,maverick,vfp,vfpv3,vfpv3-fp16,vfpv3-d16,vfpv3-d16-fp16,vfpv3xd,vfpv3xd-fp16,neon,neon-fp16,vfpv4,vfpv4-d16,fpv4-sp-d16,neon-vfpv4等。
使用-mfloat-abi=hard (等價於-mhard-float) -mfpu=vfp來選擇編譯成硬浮點。使用-mfloat-abi=softfp就能兼容帶VFP的硬體以及soft-float的軟體實現,運行時的連接器ld.so會在執行浮點運算時對於運算單元的選擇,
是直接的硬體調用還是庫函數調用,是執行/lib還是/lib/vfp下的libm。-mfloat-abi=soft (等價於-msoft-float)直接調用軟浮點實現庫。
在ARM RVCT工具鏈下,定義fpu模式:
–fpu softvfp
–fpu softvfp+vfpv2
–fpu softvfp+vfpv3
–fpu softvfp+vfpv_fp16
–fpu softvfp+vfpv_d16
–fpu softvfp+vfpv_d16_fp16.
定義浮點運算類型
–fpmode ieee_full : 所有單精度float和雙精度double的精度都要和IEEE標准一致,具體的模式可以在運行時動態指定;
–fpmode ieee_fixed : 舍入到最接近的實現的IEEE標准,不帶不精確的異常;
–fpmode ieee_no_fenv :舍入到最接近的實現的IEEE標准,不帶異常;
–fpmode std :非規格數flush到0、舍入到最接近的實現的IEEE標准,不帶異常;
–fpmode fast : 更積極的優化,可能會有一點精度損失。
