【OK6410裸机程序】点亮LED

来源:互联网 发布:奔跑吧linux内核 豆瓣 编辑:程序博客网 时间:2024/04/30 06:21

.globl _start_start:/* 硬件相关的设置 */    /* Peri port setup */    ldr r0, =0x70000000    orr r0, r0, #0x13    mcr p15,0,r0,c15,c2,4       @ 256M(0x70000000-0x7fffffff) /* 关看门狗 *//* 往WTCON(0x7E004000)写0 */ldr r0, =0x7E004000mov r1, #0str r1, [r0]/* 设置GPMCON让GPM3作为输出引脚 */ldr r1, =0x7F008820mov r0, #0x1000str r0, [r1]/* 设置GPMDAT让GPM3输出0 */ldr r1, =0x7F008824mov r0, #0str r0, [r1]halt:b halt 

1. 把外设基地址告诉CPU.

因为CPU访问某个地址时不知道访问的是外设地址还是内存地址,需要协处理指令设置外设地址范围。

S3C6410外设地址范围256M(0x70000000-0x7fffffff) ,如代码所设置。

协处理器访问指令参见我的另一篇博文  CP15协处理器访问指令MCR/MRC解析

For example:

MRC p15, 0, <Rd>, c15, c2, 4 ; Read Peripheral Port Memory Remap Register
MCR p15, 0, <Rd>, c15, c2, 4 ; Write Peripheral Port Memory Remap Register



2.关闭看门狗

3. IO口操作

OK6410开发板IO口资源如下图所示:


IO口主要以下几点用途:输出,输入,外部触发中断,复用功能;只要配置相应的寄存器即可。LED操作需要配置为输出口。

代码设置GPM3为输出,其余位输入,再向GPMDAT写入0,结果是点亮LED4。



0 0
原创粉丝点击