ARM嵌入式裸機程式學習(一)

2021-09-27 09:34:59 字數 1497 閱讀 5006

這裡不用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 模擬的就是連續的...