ok210汇编点亮LED灯

四个LED灯分别对应XM0ADDR4~XM0ADDR7 ,与SDRMA的XM1、XM2不冲突


查询s5pv210的datasheet知道其对应着MP0_4[4]~MP0_4[7]

补充

BIC指令
BIC指令的格式为:
BIC{条件}{S} 目的寄存器,操作数1,操作数2
BIC指令用亍清除操作数1的某些位,幵把结果放置到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,戒一个立即数。操作数2为32位的掩码,如果在掩码中设置了某一位,则清除返一位。未设置的掩码位保持丌变。”

ORR指令
ORR指令的格式为:
ORR{条件}{S} 目的寄存器,操作数1,操作数2
ORR指令用亍在两个操作数上迕行逻辑戒运算,幵把结果放置到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,戒一个立即数。该指令常用亍设置操作数1的某些位。


/**************************************代码分割线*********************************************/

/* led_on.S */
/*MP0_4CON寄存器 0000 = Input 0001 = Output 0010 = EBI_ADDR[0] 0011 ~ 1110 = Reserved 1111 = Reserved*/


.global _start /* 声明一个全局的标号 */
_start:
ldr r0, =0xE0200340/* MP0_4CON寄存器地址赋给r0 */
ldr r1, 0xE0200340   /* E0200340中的值赋给r1 */
bic r1, r1, #0xFFFF0000/* 不干扰0~3的输出控制,原样复制,4~7的全部遮蔽为0 */
orr r1, r1, #0x11110000 /* 4~7设置为输出 */
str r1, [r0]


ldr r0, =0xE0200064/* MP0_4DAT寄存器 */
ldr r1, 0xE0200344
bic r1, r1, #0x000000F0/* 不干扰0~3的输出控制,原样复制,4~7的全部遮蔽为0 */ 
orr r1, r1, #0x000000F0 /* 4~7设置为输出 */
str r1, [r0] /* 设置GPC0_3为高电平 */


halt:
b halt /* 死循环 */

/********************************************代码分割线**********************************/

makefile

/********************************************代码分割线**********************************/

led_on.bin: led_on.o 
arm-linux-ld -Ttext 0xc0008000 -o led_on.elf $^
arm-linux-objcopy -O binary led_on.elf $@
arm-linux-objdump -D led_on.elf > led_on.dis

led_on.o : led_on.S
arm-linux-gcc -c $< -o $@


clean:
rm *.o *.elf *.bin *.dis

/********************************************代码分割线**********************************/

生成的led_on.bin使用tftp c0008000 tftp/led_on.bin下载至c0008000

go c0008000执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值