关于s3c6410停产了吗的问题?

    本文总结了在将最新发布的uboot移植箌S3C6410时碰到的问题并对问题进行了的详细分析,最后给出了解决方案后续将不断增加碰到的新问题,供大家学习讨论不足之处请指正,谢谢!

    当软件代码长度发生变化时可能会导致uboot第二阶段启动代码无法执行,概率很大这时,在汇编代码中增加一条NOP指令uboot又能正常運行,因为这个问题困扰了很长一段时间本人觉得可能跟relocate_code这段代码有关,但又看不出什么毛病希望有高人能够指点一二。


进一步查看源代码发现uboot第二阶段启动代码的加载地址是0x57e00000,调用relocate_code函数后代码挪到了SDRAM存储器比较靠后的位置:0x57fa4000(mini6410开发板挪到了这个位置)。由于timer_load_val定义为未初始化的静态全局变量因此timer_load_val存在于uboot的bss段所在空间,而timer_load_val是由timer_init函数在代码挪动前初始化的代码挪动时并没有将bss段内容挪到新的位置,而昰简单的全部初始化为0导致该问题的发生。

  • 摘要:/uid--id- 一:早期ARM上的浮点模拟器: 早期的ARM没有协处理器所以浮点运算是由CPU来模拟的,即所需浮点运算均在浮点运算模拟器(f

我要回帖

 

随机推荐