u-boot-2014.10移植第16天----Nor flash启动
来源:互联网 发布:f调8孔洞箫制作数据 编辑:程序博客网 时间:2024/04/24 00:13
第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 reboot, * not when booting from ram! */#ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_crit#endif
所以,这里我们将tq2440.h文件中CONFIG_SKIP_LOWLEVEL_INIT宏注释掉。问题来了我们注释掉这个宏之后,编译出现了这样的问题:
arm-linux-ld.bfd:u-boot.lds:1: ignoring invalid character `#' in expressionarm-linux-ld.bfd:u-boot.lds:1: syntax errormake: *** [u-boot] 错误 1找到原因是上面一条宏影响的结果:
#define CONFIG_BOARD_EARLY_INIT_F//#define CONFIG_SKIP_LOWLEVEL_INIT正常的宏定义都是
#define xxx 1
我们可以删除这个宏也可以这样注释:
#define CONFIG_BOARD_EARLY_INIT_F/* #define CONFIG_SKIP_LOWLEVEL_INIT */
#define CONFIG_SYS_TEXT_BASE 0
修改一下SDRAM的刷新频率,在文件:board/samsung/tq2440/lowlevel_init.S中修改REFCNT的值:
#define REFCNT 0x4f4
S3C2440手册知,计算公式:Refresh period = (2^11-refresh_count+1)/HCLK
SDRAM手册知:Refresh period =8192/64ms
下面start.S设置FCLK为405MHZ,分频系数 FCLK:HCLK:PCLK = 1:4:8 ,HCLK=100MHZ
于是编译,用J-Flash ARM烧录到Norflash上,记得烧录完将软件J-Flash ARM软件断开连接。复位开发板既可以实现从Norflash启动了。
明天继续!
- u-boot-2014.10移植第16天----Nor flash启动
- u-boot-2014.10移植第15天----nor flash操作
- U-Boot移植FL2440--2--支持从Nor FLASH启动
- U-Boot移植——Nor Flash
- U-boot-2014.04移植到MINI2440(9) nor flash启动和nand flash 启动
- u-boot-2014.10移植第23天----nand flash启动(一)
- u-boot-2014.10移植第24天----nand flash启动(二)
- u-boot-2014.10移植第25天----nand flash启动(三)
- u-boot-2014.10移植第26天----nand flash启动(四)
- u-boot-2014.10移植第27天----nand flash启动(五)
- u-boot-2014.10移植第28天----nand flash启动(六)
- u-boot-2014.10移植第29天----nand flash的SPL启动(一)
- u-boot-2014.10移植第30天----nand flash的SPL启动(二)
- u-boot:从NOR FLASH启动并支持NAND FLASH读写的移植
- U-boot(NOR Flash)
- u-boot移植--2、EN29LV160AB Nor Flash移植
- fl2440的U-boot-2010.09移植(四) 添加NOR Flash启动支持
- TQ2440 u-boot-2012.04.01移植三支持NOR Flash
- 从Objective-C到Swift,你必须会的(一)#pragma mark
- Qt5支持中文
- Markov chain的基本知识
- NYOJ746——整数划分(四)
- java高并发,如何解决,什么方式解决
- u-boot-2014.10移植第16天----Nor flash启动
- 从Objective-C到Swift,你必须会的(二)组合options
- 第十一周项目6 (4)输出1000以内的所有回文数
- javascript函数调用call和apply
- iOS 修改 TableView 的 delete 按钮
- bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队
- JAVA读取.RSA密钥信息及获取KEYSTORE指纹信息
- OLED液晶屏操作记录
- 如何创建回收站