這裡不用ads整合開發環境,因為ads相容性存在問題,而且通過自己手動編譯\鏈結對學習有好處,所以我們下面都在linux環境下進行arm開發。開發環境:linux作業系統(ubuntu)
開發工具:
arm-linux-gdb-7.5
eclipse-cpp-helios-sr2-linux-gtc
arm-linux-gcc-4.3.2
jlink_linux_v434a
dnwdnw_usb.ko
led裸機程式,範例**如下:
[root@localhost lesson]#ls
led.lds led.s makefile
下面是編譯成二進位制檔案步驟:
[root@localhost lesson]# arm-linux-gcc -g -c led.s
[root@localhost lesson]#ls
led.lds led.s makefile led.o
可以看到生成了led.o檔案。(編譯匯程式設計序)
[root@localhost lesson]# arm-linux-ld -tled.lds -o led.elf led.o
[root@localhost lesson]#ls
led.lds led.s makefile led.o led.elf
可以看到生成了 led.elf檔案。(鏈結生成elf,led.lds是鏈結器指令碼)
[root@localhost lesson]# arm-linux-objcopy -o binary led.elf led.o
[root@localhost lesson]#ls
led.lds led.s makefile led.o led.elf led.bin
我們可以發現上面編譯的過程特別繁瑣,假如我們每次修改程式都有把三面三條指令再執行一遍嗎? 答案當然不是。
這就需要我們的makefile上場了。
我們先清除前面手動編譯產生的二進位制檔案:
[root@localhost lesson]#make clean
[root@localhost lesson]#ls
led.lds led.s makefile led.o
可以看到前面產生的檔案清除了。
下面我們嘗試在專案目錄下執行make指令。
[root@localhost lesson]#make
[root@localhost lesson]#ls
led.lds led.s makefile led.o led.elf led.bin
可以看到乙個make指令就搞定了編譯、鏈結、及生成二進位制可執行檔案。一切都是因為有makefile這個檔案。
嵌入式arm開發學習
今天是學習arm的第二天.感覺又懂了一點.記錄下來,以便以後不時之需.今天先是看了一些linux應用開發的東西,由於之前自己對linux程式設計還算是有過了解,這部分看得很快,基本沒有什麼閱讀障礙.個人建議想學嵌入式linux的人,最好先把unix環境高階程式設計看一遍.你會發現一切都會順其自然.之...
嵌入式學習之裸機開發前奏
為裸機開發做鋪墊 我們需 安裝交叉編譯工具鏈 就是在linux下安裝軟體 並且進行相關配置方便裸機開發時使用 熟悉makefile流程 方便裸機開發工程管理 知道各個檔案字尾的作用以及來歷 mkv210 imge.c程式的作用以及內部 區分ubs串列埠燒寫和sd卡燒寫的區別 1 我們使用安裝包的形式...
嵌入式裸機之ADC學習筆記
1 adc analog digital converter,ad轉換,模數轉換 也就是模擬轉數字 2 cpu本身是數字的,而外部世界變數 如電壓 溫度 高度 壓力 都是模擬的,所以需要用cpu來處理這些外部的模擬變數的時候就需要做ad轉換。為了用數字技術來處理外部的模擬物理量。1 模擬的就是連續的...