u-boot-2014.10移植第16天----Nor flash启动

在尝试将u-boot-2014.10移植到2440 ARM平台时,遇到Nor Flash无法启动的问题。通过调整CONFIG_SYS_TEXT_BASE值和排查CONFIG_SKIP_LOWLEVEL_INIT宏,发现由于跳过了sys-critical初始化导致启动失败。修改start.S文件中的刷新频率设置,并解决J-Flash ARM软件连接问题后,成功实现从Norflash启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第15天时将u-boot.bin文件烧录到Norflash上没有正常启动,考虑到tq2440.h文件中的CONFIG_SYS_TEXT_BASE 值时0x33FC0000,我们将其修改为0,毕竟这个是绝对地址。

#define CONFIG_SYS_TEXT_BASE 0

修改、编译、烧录后运行:

结果还是不能运行,这是什么原因呢?

将bootstrap.bin文件重新烧录到Norflash中,将u-boot.bin烧录到SDRAM的0x33fc0000位置,运行也不成功。

将CONFIG_SYS_TEXT_BASE 恢复为0x33fc0000

#define CONFIG_SYS_TEXT_BASE 0x33FC0000
修改、编译、烧录后运行是可以的。这就很奇怪了,为什么讲u-boot.bin烧录到Norflash上为什么不能运行呢?

原来是前面定义了CONFIG_SKIP_LOWLEVEL_INIT宏,跳过了cpu_init_crit,在arch/arm/cpu/arm920t/start.S 文件中如下部分,注释说明仅仅是在reboot是才会进行sys-critical初始化,当从RAM中启动时,不进行sys-critical初始化。

    /*
     * we do sys-critical inits only at r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fulinux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值