这是我的链接脚本
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
STACK_FIQ_SIZE = 1K;
STACK_IRQ_SIZE = 1K;
STACK_SVC_SIZE = 1K;
STACK_ABT_SIZE = 1K;
STACK_UDF_SIZE = 1K;
STACK_SYS_SIZE = 1K;
MEMORY
{
sram_stack_fiq : org = 40K-1K, len = 1K
sram_stack_irq : org = 40K-2K, len = 1K
sram_stack_svc : org = 40K-3K, len = 1K
sram_stack_abt : org = 40K-4K, len = 1K
sram_stack_udf : org = 40K-5K, len = 1K
sram_stack_sys : org = 40K-6K, len = 1K
sram : org = 0x00000000, len = 40K-6K
}
SECTIONS
{
.text : {
* (.vector)
jin_boot0_start.o (.text)
* (.text)
} > sram
. = ALIGN(4);
.data : {
* (.data)
} > sram
. = ALIGN(4);
.bss : {
* (.bss)
} > sram
. = ALIGN(4);
.sram_stack_fiq : {
. += STACK_FIQ_SIZE;
PROVIDE(stack_fiq_start = .);
} > sram_stack_fiq
. = ALIGN(4);
.sram_stack_irq : {
. += STACK_IRQ_SIZE;
PROVIDE(stack_irq_start = .);
} > sram_stack_irq
. = ALIGN(4);
.sram_stack_svc : {
. += STACK_SVC_SIZE;
PROVIDE(stack_svc_start = .);
} > sram_stack_svc
. = ALIGN(4);
.sram_stack_abt : {
. += STACK_ABT_SIZE;
PROVIDE(stack_abt_start = .);
} > sram_stack_abt
. = ALIGN(4);
.sram_stack_udf : {
. += STACK_UDF_SIZE;
PROVIDE(stack_udf_start = .);
} > sram_stack_udf
. = ALIGN(4);
.sram_stack_sys : {
. += STACK_SYS_SIZE;
PROVIDE(stack_sys_start = .);
} > sram_stack_sys
}
利用下面fel命令或者jlink加载到sram正常运行:
sudo sunxi-fel -p write 0 jin_boot0.bin
sudo sunxi-fel exec 0x00000000
loadbin jin_boot0.bin,0
setpc 0
然后利用mksunxi加入全志头部
mksunxi/mksunxi jin_boot0.bin
bootloader size= e59ff200
The bootloader head has been fixed
烧写到flash
sunxi-fel -p spiflash-write 0 jin_boot0.bin
100% [================================================] 6 kB, 77.5 kB/s
重启brom跑到fel模式了
离线
应该是brom代码检测flash里面内容的校验没通过吧
最近编辑记录 Jin劲 (2019-06-12 00:01:26)
离线
看起来是有点像校验没通过
离线
Bootloader size这么大,肯定有点问题
离线
Bootloader size这么大,肯定有点问题
uboot的spl好像有24K这么大[捂脸]
离线
问题在这里,导致了spl size的异常。
* (.vector)
jin_boot0_start.o (.text)
vector好像没必要放在这里吧
jin_boot0_start.o放在最前面
最近编辑记录 duckduckgo (2019-06-19 11:14:22)
离线
我的也是这样操作的,不过我的boot0只有2k,烧录重启后直接没反应了。而且fel也连不上了。
这个程序在IAR调试仿真是通过的。
离线
写了,iar的,jtag调试正常,写flash就死机。
离线
这是我TF卡版本的spl: f1c100s_uboot_spl.7z
这是 u-boot 里面的 spl, 我手动用这个命令行生成的 带魔术头文件和u-boot自己生成的一模一样:
tools/mksunxiboot --default-dt suniv-f1c100s-licheepi-nano spl/u-boot-spl.bin spl/x.bin
源码: https://github.com/u-boot/u-boot/blob/master/tools/mksunxiboot.c
离线
这是我TF卡版本的spl: f1c100s_uboot_spl.7z
这是 u-boot 里面的 spl, 我手动用这个命令行生成的 带魔术头文件和u-boot自己生成的一模一样:
tools/mksunxiboot --default-dt suniv-f1c100s-licheepi-nano spl/u-boot-spl.bin spl/x.bin
源码: https://github.com/u-boot/u-boot/blob/master/tools/mksunxiboot.c
哇!谢谢晕哥,正需要。
离线