WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-06-11 23:58:53

Jin劲
会员
注册时间: 2018-04-06
累计积分: 213

100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

这是我的链接脚本

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

2019-06-11-23-55-26.png

然后利用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模式了

离线

#2 2019-06-12 00:01:05

Jin劲
会员
注册时间: 2018-04-06
累计积分: 213

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

应该是brom代码检测flash里面内容的校验没通过吧

最近编辑记录 Jin劲 (2019-06-12 00:01:26)

离线

#3 2019-06-12 08:13:17

smartcar
会员
注册时间: 2018-02-19
累计积分: 385

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

看起来是有点像校验没通过

离线

#4 2019-06-12 09:09:34

达克罗德
会员
注册时间: 2018-04-10
累计积分: 558

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

Bootloader size这么大,肯定有点问题

离线

#5 2019-06-12 10:01:00

Jin劲
会员
注册时间: 2018-04-06
累计积分: 213

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

达克罗德 说:

Bootloader size这么大,肯定有点问题

uboot的spl好像有24K这么大[捂脸]

离线

#6 2019-06-12 10:06:24

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,827

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

http://linux-sunxi.org/BROM

spl(boot0) 上限应该可以 24k

离线

#7 2019-06-19 11:07:45

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

问题在这里,导致了spl size的异常。
* (.vector)
jin_boot0_start.o (.text)

vector好像没必要放在这里吧
jin_boot0_start.o放在最前面

最近编辑记录 duckduckgo (2019-06-19 11:14:22)

离线

#8 2019-08-27 14:53:43

wangzhg1
会员
注册时间: 2019-08-24
累计积分: 20

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

我的也是这样操作的,不过我的boot0只有2k,烧录重启后直接没反应了。而且fel也连不上了。
这个程序在IAR调试仿真是通过的。

离线

#9 2019-08-27 15:15:21

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,827

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

写一个最简单的程序, 只控制 IO (LED), 看他有没有跑起来.

离线

#10 2019-08-28 12:25:33

wangzhg1
会员
注册时间: 2019-08-24
累计积分: 20

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到flash不正常

写了,iar的,jtag调试正常,写flash就死机。

离线

#11 2019-08-28 13:52:00

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,827

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到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

离线

#12 2019-08-28 20:30:00

达克罗德
会员
注册时间: 2018-04-10
累计积分: 558

Re: 100s自己写的boot程序fel加载到sram正常运行,烧到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

哇!谢谢晕哥,正需要。

离线

页脚