ARM裸機 001匯程式設計序點亮LED1

2021-09-19 13:13:47 字數 1326 閱讀 8622

本人使用的是韋東山老師的jz2440開發板

點亮led1,原理圖如下:

1,看原理圖可知led1對應gpf4;

2, 看上圖可知led1為低電平使能:gpf4 = 0,led1 亮;gpf4 = 1,led1 滅;

3,檢視資料手冊:

設定gpfcon[9:8] = 0b01時,gpf4配置為輸出;(把0x100寫入gpfcon,即寫到位址0x56000050上)

設定gpfdat[4] = 0時,gpf4輸出低電平,led1點亮(把0寫到位址0x56000054上)

彙編源**如下led_on.s:

/*

* 點亮led1: gpf4

*/.text

.global _start

_start:

/* 配置gpf4為輸出引腳

* 把0x100寫到位址0x56000050

*/ ldr r1, =0x56000050

ldr r0, =0x100 /* mov r0, #0x100 */

str r0, [r1]

/* 設定gpf4輸出高電平

* 把0寫到位址0x56000054

*/ ldr r1, =0x56000054

ldr r0, =0 /* mov r0, #0 */

str r0, [r1]

/* 死迴圈 */

halt:

b halt

makefile檔案如下:

all:

arm-linux-gcc -c -o led_on.o led_on.s

arm-linux-ld -ttext 0 led_on.o -o led_on.elf

arm-linux-objcopy -o binary -s led_on.elf led_on.bin

clean:

rm *.bin *.o *.elf

make得到led_on.bin,燒寫到nandflash,led1亮。

ARM匯程式設計序學習

part1 匯程式設計序框架 一 完整框架 section.data 初始化的資料 section.bss 未初始化的資料 section.text global start start 入口 彙編 二 簡化框架 text global start start 彙編 注 以上簡化版為常用框架 par...

ARM學習之ARM匯程式設計序

在arm thumb 組合語言程式中以程式段為單位組織 段可以分為 段 code section 和資料段 data section 乙個匯程式設計序至少應該有乙個 段,當程式較長時,可以分割為多個 段和資料段,多個段在程式編譯鏈結時最終形成乙個可執行的映像檔案。可執行映像檔案的構成 鏈結器根據系統...

ARM匯程式設計序鑑賞 1

area asmembedeedfile code,readonly 定義一段可讀的 區域 export mulcountfunction 輸出函式 mulcountfunction import val 插入變數val mulcountfunction ldr r1,val 取val的暫存器位址,...