(RV32IMAC) GD32VF103 (Sipeed Longan Nano) >> Assembly

LED


參考資料:
1. ds
2. pm

LED_R腳位(PC13)


PCEN


PORT C



Output


main.s

  .global _start

  .equiv RCU_BASE,   0x40021000
  .equiv RCU_CFG0,   0x04
  .equiv RCU_APB2EN, 0x18
  .equiv GPIOC_BASE, 0x40011000
  .equiv GPIO_CTL0,  0x00
  .equiv GPIO_CTL1,  0x04
  .equiv GPIO_OCTL,  0x0c

  .text
  .org 0x0000
_vector:
  j _start

  .org 0x0200
_start:
  li t0, 0x10
  li a0, RCU_BASE
  sw t0, RCU_APB2EN(a0)

  li t0, 0x300000
  li a0, GPIOC_BASE
  sw t0, GPIO_CTL1(a0)

  li t1, 0x2000
  li t2, 0x0000
  li a0, GPIOC_BASE
0:
  xor t2, t2, t1
  sw t2, GPIO_OCTL(a0)

  lui t0, 100
1:
  nop
  addi t0, t0, -1
  bgtz t0, 1b
  j 0b
  .end

main.ld

MEMORY {
    FLASH : ORIGIN = 0x08000000, LENGTH = 0x20000
}

SECTIONS {
    .text : { *(.text*) } > FLASH
    .rodata : { *(.rodata*) } > FLASH
    .bss : { *(.bss*) } > FLASH
}

Makefile

all:
	riscv-nuclei-elf-as -o main.o main.s
	riscv-nuclei-elf-ld -T main.ld -o main.elf main.o
	riscv-nuclei-elf-objcopy -O binary main.elf main.bin

clean:
	rm -rf main.bin main.o main.elf

編譯

$ make
  riscv-nuclei-elf-as -o main.o main.s
  riscv-nuclei-elf-ld -T main.ld -o main.elf main.o
  riscv-nuclei-elf-objcopy -O binary main.elf main.bin

燒錄
1. 按住BOOT0
2. 連接USB到PC

3. 載入main.bin
4. 按下OK燒錄


按下RESET按鍵


返回上一頁