導航:首頁 > 源碼編譯 > c程序arm編譯

c程序arm編譯

發布時間:2023-08-14 07:30:20

㈠ arm編程與C語言的編程區別和方法

ARM公司賣的arm
cpu內核給許多公司,那些公司生產出眾多的ARM處理器。ARM編程實際上指的是應用ARM公司自己出產的IDE(集成開發環境)所開發進行的編程,比如現在業界常用的ADS1.2,MDK3.5等等IDE。主要進行ARM匯編和與c混合編程。

ARM公司自己規定了一套ARM指令集,也規定了一套匯編指令集。當然,我們覺得匯編編程生產效率低下,不易編寫大規模程序,那麼我們就可以用高級語言,比如c語言,面向對象的語言在操作系統上運行。

㈡ ARM編程只用C語言不要匯編可以嗎

ARM編程必須用C語言的,用匯編實在是太難寫了,在網上可以找到支持ARM的操作系統代碼的,完成是C語言寫,這不可能用匯編來寫操作系統的。

㈢ 如何利用Eclipse C/C++搭建嵌入式ARM開發環境

由於覺得在linux下不方便編寫代碼,所以准備在windows上搭建開發環境,其實在Linux上也搭建好了,但是使用起來不是很人性化,尤其是文件比較多的時候就很麻煩。下面就選擇在windows上用Eclipse做開發。【後來發現還是需要在Linux下編程,因為Windows下沒法包含Linux下的一些頭文件,所以下面也介紹Linux環境下的Eclipse搭建】。

Windows下的Eclipse環境搭建:

1. 下載並安裝Eclipse C/C++

2. 下載交叉編譯器,之前在Linux都用的arm-linux-gcc,後來使用TI的ti-sdk-am335x-evm-08開發包,裡面安裝的編譯器是arm-none-linux-gnueabi-gcc,都是能用的,所以我也選擇了arm-none-linux-gnueabi-gcc作為交叉編譯器,下載windows平台的編譯器,然後安裝。

下載地址:http://www.veryarm.com/arm-none-linux-gnueabi-gcc

3. 開啟Eclipse的ssh遠程登錄功能,我分別開啟了Beaglebone Black和Linux的ssh terminal,操作起來很是方便。

4. 新建C項目工程「hello」,編寫簡單的hello代碼,注意選擇交叉編譯選項,交叉編譯器前綴「arm-none-linux-gnueabi-」交叉編譯器路徑選擇arm-none-linux-gnueabi-gcc安裝的路徑「…Linuxin」,在此文件夾下有arm-none-linux-gnueabi-gcc.exe、arm-none-linux-gnueabi-gdb.exe等,還有cs-make.exe,這里需要把「cs-make.exe」改成「make.exe」,因為Eclipse不認cs-make.exe編譯的時候會報錯的。

圖文安裝參考:http://www.linuxidc.com/Linux/2016-03/129577.htm

5. 調試(構建Ctrl+B)的時候會自動生成makefile,生成編譯結果,放到ARM嵌入式平台運行就可以了,成功執行並輸出「hello」。

Linux下的Eclipse環境搭建:

官網下載http://www.eclipse.org/downloads/

發下是收費的

sudo apt-get install eclipse直接就安裝了

然後sudo eclipse –s啟動後發現「窗口->打開視圖」裡面沒有ssh遠程登錄的選項,網路一下發現它是Eclipse的插件,查詢下這個軟體:sudo apt-cache search Remote System Explorer,發現一個eclipse-rse,就是它了,然後直接安裝:sudo apt-get install eclipse-rse

重啟eclipse

新建工程時發現沒有C/C++工程,只有Java工程,再次搜索sudo apt-cache search eclipse C/C++

發現其中一條:

eclipse-cdt - C/C++ Development Tools for Eclipse

繼續安裝:

sudo apt-get install eclipse-cdt

再次重啟eclipse,就有了C/C++項目,高興ing。

新建C工程,添加編譯器:

arm-none-linux-gnueabi-

/opt/toolschain/4.4.3/bin

編寫hello程序,編譯OK,在BBB上執行,成功!

㈣ arm編程與C語言的編程區別和方法

匯編主要是要了解CPU指令及用法,常說的是PC機的x86匯編,指令是x86的復雜指令集。
arm匯編是arm的精簡指令集,比x86容易學,程序格式倒是和x86匯編差不多。
C語言ARM的和x86的差不多,除了對硬體寄存器操作不同,其它語法和流程都一樣。
arm匯編程序每一行是指定arm core執行一條指令,每條指令都是硬體相關。
如:LDR R3, #1 ;用LDR指令將數值1放入R3寄存器准備參與運算
C語言與arm指令無關,只與邏輯運算有關,指定硬體地址的操作才與硬體相關;
如果用arm編譯器來編譯,每行可能編譯出1到多條arm指令。
如:i++; //變數 i 遞增1等效於LDR R3,#1 ;
用LDR指令將數值1放入R3寄存器准備參與運算ADD R2, R2, R3 ;
用ADD指令將R2、R3寄存器里的數值相加後放回R2寄存器以上等效匯編的R2、R3寄存器只是為了舉例,C語言不像匯編,不需要由程序員指定用哪個寄存器參與運算,編譯器編譯時會根據程序結構自動判斷選擇。
無論是c語言還是匯編語言,編譯器編譯後的結果是機器執行碼,很多人因為匯編語言比較難懂及指令相關,所以以為它就是機器語言,其實它仍是人類設計的編寫程序的語言,仍需要編譯器編譯成機器碼才能執行,它只是比C語言更接近硬體而已。

閱讀全文

與c程序arm編譯相關的資料

熱點內容
linux的命令提示符 瀏覽:979
機器人焊接手柄編程入門教程 瀏覽:652
方舟怎麼進入之前進去的伺服器 瀏覽:809
家有萌寶解壓 瀏覽:929
linuxc一站式學習pdf 瀏覽:20
奇思妙想pdf 瀏覽:991
租用裸金屬伺服器需要什麼資質 瀏覽:635
程序員熬夜習慣 瀏覽:203
劍網三文件夾越來越大怎麼辦 瀏覽:413
提示沒有ads編譯器 瀏覽:375
androidgson工具類 瀏覽:14
爬取文件夾內多個excel表格 瀏覽:341
牙齒分割演算法創新點 瀏覽:813
liunix編譯 瀏覽:833
安卓rsa介面參數加密 瀏覽:272
三星伺服器停止運行是怎麼回事 瀏覽:58
phpmysqli刪除數據 瀏覽:59
安卓虛擬機黑屏什麼原因 瀏覽:767
linuxstrace命令 瀏覽:697
58app怎麼掃碼認證 瀏覽:860