Tiny6410 裸机开发--裸机点亮LED

  • 环境搭建

由于我不喜欢使用虚拟机,双系统无法同时烧程序。最近才折腾好Windows10下编译和下载程序,使用的是韦东山做的easy open jtag,资料十分齐全,之前使用jlink搭建环境碰到了一些坑,还是使用一些现成 的环境好。

  • 点亮LED

我使用的IDE是eclipse,但是无法调试,这个没有仔细设置

start.S

// 启动代码
.global _start
.global delay

_start:

    // 把外设的基地址告诉CPU
    ldr r0, =0x70000000
    orr r0, r0, #0x13
    mcr p15,0,r0,c15,c2,4

    // 关看门狗
    ldr r0, =1024*4
    mov r1, #0
    str r1, [r0]

    // 设置栈
    ldr sp, =0X0C002000

    // 调用C函数点灯
    bl main
halt_loop:
    b halt_loop

led.c

#define gpkcon0 (*(volatile unsigned long *)0x7F008800)
#define gpkdat (*(volatile unsigned long *)0x7F008808)

int main()
{
    gpkcon0 = 0x11110000;
    gpkdat = 0x00;
    return 0;
}

    Makefile

all : led.bin
led.bin : start.o led.o
    arm-elf-ld -Ttext 0 -o led.elf start.o led.o
    arm-elf-objcopy -O binary led.elf led.bin
        
start.o : start.S
    arm-elf-gcc -o start.o start.S -c 

led.o : led.c
    arm-elf-gcc -o led.o led.c -c
clean:
    rm *.o led.elf led.bin led.dis

猜你喜欢

转载自www.cnblogs.com/destiny-arm/p/10662174.html