裸机点亮LED(运行在片内RAM中)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了裸机点亮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文件如下:
- 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中)的主要内容,如果未能解决你的问题,请参考以下文章