实现LicheePi Zero点亮RGE LED的裸板程序
代码如下:
led.S
.text
.global _start
_start:
LDR R0,=0x01C208D8 //PG control register
MOV R1,#0x00000110 //Set GPIOG1,GPIO2 output mode
STR R1,[R0]
LDR R0,=0x01C208E8 //PG data register
MOV R1,#0x00000000 //Set low level
STR R1,[R0]
loop:
B loop
Makefile
CC := arm-linux-gnueabihf-
AS := $(CC)gcc -x assembler-with-cpp
LD := $(CC)ld
ASFLAGS := -g -Wall -O3 -ffreestanding -std=gnu99
MCFLAGS := -march=armv7-a -mtune=cortex-a7 -mfloat-abi=hard -marm -mno-thumb-interwork
led.bin:led.S
$(AS) $(ASFLAGS) $(MCFLAGS) -c -o led.o led.S
$(LD) -Ttext 0x00002000 led.o -o led.bin
clean:
rm -f *.o *.bin
烧录TF卡的命令
$ sudo dd if=/dev/zero of=/dev/sdb bs=1M count=1
$ sudo dd if=led.bin of=/dev/sdb bs=1024 seek=8
通过dd命令将led.bin文件烧录到TF卡8k偏移位置,插在LicheePi Zero上上电后没有反应,不知道问题出在哪里?
最近编辑记录 a1326268019 (2019-12-18 10:18:06)
离线
谢谢晕哥,我想知道的我写的Makefile有没有什么问题,像编译选项、链接地址、下载到TF卡的地址是否有误。我手边暂时还没有Jlink不能立刻调试验证。
离线
这是不依赖linux的程序吗?可以从tf卡加载启动?
在线
你的程序前要放个boot信息的头,否则CPU启动时怎么知道TF卡的程序是非法的还是有效的
有个mksunxitool可以给你的bin加头
离线
对对对, 就是这个
tools/mksunxiboot --default-dt suniv-f1c100s-licheepi-nano spl/u-boot-spl.bin spl/x.bin
这条命令的参数各指代什么,LicheePi Zero V3s需要怎么修改,哪边说明呢?
离线
离线
$ tools/mksunxiboot This program makes an input bin file to sun4i bootable image. Usage: tools/mksunxiboot input_file out_putfile
tools/mksunxiboot 输入文件 输出文件
程序可以执行了,谢谢两位大神指导
离线
好贴,关注。
离线
最近尝试LicheePi_Zero裸板程序,实现汇编调用C语言的功能,没有能实现,过程中遇到一下一些问题,希望大神能给我解惑,感谢感谢!
1、LicheePi_Zero编写的裸板程序为什么要烧写到TF卡的8K地址偏移出,V3S用户手册上没有看到相关的说明?
2、编写裸板程序用arm-linux-gnueabihf-ld链接时,链接地址应该是多少?是8K吗(8K=0x2000)?
3、汇编调用C语言时,需要初始化栈,SP指针应该指向哪片可用的内存空间呢?
4、V3S的BROM 0xffff0000-0xffff7fff 32K 这32K是不是被完全使用了?
5、SRAM A1 0x00000000-0x00003fff 16K 和SRAM C 0x00004000-0x0000EFFF 44K是用来做什么的
离线
1. 8k偏移地址是BROM固化的,没办法修改。
其他不会呢。
离线
$ tools/mksunxiboot This program makes an input bin file to sun4i bootable image. Usage: tools/mksunxiboot input_file out_putfile
tools/mksunxiboot 输入文件 输出文件
麻烦晕哥帮我提点提点这些问题,感谢感谢
最近尝试LicheePi_Zero裸板程序,实现汇编调用C语言的功能,没有能实现,过程中遇到以下一些问题
1、LicheePi_Zero编写的裸板程序为什么要烧写到TF卡的8K地址偏移出,V3S用户手册上没有看到相关的说明?
2、编写裸板程序用arm-linux-gnueabihf-ld链接时,链接地址应该是多少?是8K吗(8K=0x2000)?
3、汇编调用C语言时,需要初始化栈,SP指针应该指向哪片可用的内存空间呢?
4、V3S的BROM 0xffff0000-0xffff7fff 32K 这32K是不是被完全使用了?
5、SRAM A1 0x00000000-0x00003fff 16K 和SRAM C 0x00004000-0x0000EFFF 44K是用来做什么的
最近编辑记录 a1326268019 (2020-01-16 11:18:31)
离线
大神在哪里?裸机开发搞起来。。
离线