參考資訊:
https://github.com/xboot/xrock
https://github.com/trebisky/Rockchip
https://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO4
https://courses.cs.washington.edu/courses/cse469/19wi/arm64.pdf
https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf
LED腳位
GPIO Register
Data、Direction
main.s
.global _start .equ GPIO0_BASE, 0xff720000 .equ PA_DAT, (GPIO0_BASE + 0x00) .equ PA_DIR, (GPIO0_BASE + 0x04) .text _start: b reset .org 0x100 reset: ldr x0, =PA_DIR ldr w1, =0xffffffff str w1, [x0] ldr x0, =PA_DAT ldr w1, =0xffffffff 0: eor w2, w2, w1 str w2, [x0] ldr w3, =1000000 1: subs w3, w3, #1 bne 1b b 0b .end
main.ld
MEMORY { RAM : ORIGIN = 0, LENGTH = 64K } SECTIONS { .text : { *(.text*) } > RAM .data : { *(.data*) } > RAM .bss : { *(.bss*) } > RAM }
Makefile
all: aarch64-linux-gnu-as -mcpu=cortex-a53 -o main.o main.s aarch64-linux-gnu-ld -T main.ld -o main.elf main.o aarch64-linux-gnu-objcopy -O binary main.elf main.bin run: xrock extra maskrom --rc4 on --sram main.bin clean: rm -rf main.bin main.o main.elf
編譯、執行
$ make aarch64-linux-gnu-as -mcpu=cortex-a53 -o main.o main.s aarch64-linux-gnu-ld -T main.ld -o main.elf main.o aarch64-linux-gnu-objcopy -O binary main.elf main.bin $ make run xrock extra maskrom --rc4 on --sram main.bin
完成