首页 > 代码库 > 裸机点亮LED(运行在片内RAM中)
裸机点亮LED(运行在片内RAM中)
转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992464.html
- .globl _start
- _start:
- /*硬件相关的设置-该设置是ARM11中特有的,告诉CPU外围设备的基地址*/
- ldr r0, =0x70000000
- orr r0, r0, #0x13
- /*设置协寄存器,在ARM11内核手册中有说明*/
- /*r0 = 0x70000013 表示 长度为256M*/
- mcr p15, 0, r0, c15, c2, 4
- /*关看门狗*/
- /*WTCON(0X7E004000) = 0*/
- ldr r0, =0x7E004000
- mov r1, #0
- str r1, [r0]
- /*设置GPKCON0让 GPK4,GPK5,GPK6,GPK7作为输出引脚*/
- ldr r0, =0x7F008800
- ldr r1, =0x11110000
- str r1, [r0]
- /*设置GPKDAT让 GPK4 = 0, GPK5 = 1, GPK6 = 0, GPK7 = 1*/
- /*即LED1亮,LED2暗,LED3亮,LED4暗*/
- ldr r0, =0x7F008808
- mov r1, #0x00A0
- str r1, [r0]
- halt:
- b halt
通过LINUX编译 makefile文件如下:
[csharp] view plain copy
- led.bin: start.o
- arm-linux-ld -Ttext 0 -o led.elf start.o
- arm-linux-objcopy -O binary led.elf led.bin
- arm-linux-objdump -D led.elf > led.dis
- start.o : start.S
- arm-linux-gcc -o start.o start.S -c
- clean:
- rm *.o led.elf led.bin led.dis
通过SD卡将led.bin烧入flash中,启动就能看到LED1、LED3被点亮了
转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992464.html
裸机点亮LED(运行在片内RAM中)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。