修改redboot代码

calex2007 2010-03-27 08:23:04
学习redboot对于flash初始化的时候,对于fis_addr,也就是FIS dir的address的确定是根据redboot.cdl中CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK这个宏的值是负值还是正值而决定。因此做了尝试,改变CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK这个宏的值,重新编译redboot_RAM,load进RAM中执行得到结果:
RedBoot> fis list
Name FLASH addr Mem addr Length Entry point
发现img list并没有正确识别,然后init一下,其结果是:
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
Warning: device contents not erased, some blocks may not be usable
... Unlock from 0x50060000-0x50080000: .
... Erase from 0x50060000-0x50080000: .
... Program from 0x0ffdf000-0x0ffff000 at 0x50060000: .
... Lock from 0x50060000-0x50080000: .
RedBoot> fis list
Name FLASH addr Mem addr Length Entry point
RedBoot 0x50000000 0x50000000 0x00060000 0x00000000
RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000
Config backup 0x50FC1000 0x50FC1000 0x00001000 0x00000000
FIS directory 0x50060000 0x50060000 0x00020000 0x00000000
这个时候,所有的img都正确识别了,这是什么原因?flash的初始化不是在do_flash_init()这个函数中吗?为什么只是改变FIS dir的地址,一开始并不能得到img list呢?而需要重新fis init?
...全文
128 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2012-05-13
  • 打赏
  • 举报
回复
我也遇到过类似问题

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧