说明:本套笔记是基于S3C2440开发板学习过程的记录,有意学习嵌入式的朋友可多多关照。
目录• 硬件关系
• 汇编知识
• 编写程序
1. 硬件关系• 硬件连接


• 相关引脚定义



2.汇编知识
• 基本汇编指令:
– LDR r0,[r1] 假设r1的值为x,则将x的地址存入r0
– str r0,[r1] 假设r1的值为x,则将r0写入到x地址上
– B 跳转
– mov r0,r1 把r1赋值给r0,也就是r0=r1
– ldr r0,=0x12345678 伪指令,在编译工具编译下会被拆分为arm指令。相当于r0=0x12345678 而mov指令赋值只能是简单值,而ldr伪指令可以任意值
• 汇编基本格式
.text
.global _start
_start:
#你的代码
.global _start
_start:
#你的代码
编写程序
.text
.global _start
_start:
/*配置GPFCON寄存器,将GPF4设置为输出
*地址为:0x56000050
*/
ldrr0,=0x56000050
ldrr1,=0x100
strr1,[r0]
/*配置GPFDAT寄存器,将GPF4输出0
*地址为:0x56000054
*/
ldrr0,=0x56000054
ldrr1,=0
strr1,[r0]
halt:
B halt/*循环*/
编译得到bin文件(指令说明等后续说明).global _start
_start:
/*配置GPFCON寄存器,将GPF4设置为输出
*地址为:0x56000050
*/
ldrr0,=0x56000050
ldrr1,=0x100
strr1,[r0]
/*配置GPFDAT寄存器,将GPF4输出0
*地址为:0x56000054
*/
ldrr0,=0x56000054
ldrr1,=0
strr1,[r0]
halt:
B halt/*循环*/
arm-linux-gcc -c -o led_on.oled_on.S
arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
arm-linux-objcopy -O binary -S led_on.elfled_on.bin
arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
arm-linux-objcopy -O binary -S led_on.elfled_on.bin