3080|3

54

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于RESERVED_BOOT_BLOCKS的问题,eboot大小256K ,为何只占10块? [复制链接]

问题是这样的,eboot运行起来之后我使用 F) Low-level format the Smart Media card
这时候可以看到DNW打印如下信息
Enter your selection: f
Reserving Blocks [0x0 - 0x11] ...
...reserve complete.
Low-level format Blocks [0x12 - 0xfff] ...
...erase complete.
Reserving Blocks [0x0 - 0x11] 我不理解为什么只保留了前12块。
在代码中追踪,从功能F看起   ,
  1. ...\r\n"), 0, IMAGE_START_BLOCK-1));
  2.                 for (i = 0; i < IMAGE_START_SECTOR; i++) {
  3.                     FMD_WriteSector(i, NULL, &si, 1);
  4.                 }
  5.                 OALMSG(TRUE, (TEXT("...reserve complete.\r\n")));
复制代码

可以看到是IMAGE_START_BLOCK-1 ,继续往下看  
loader.h中
  1. #define RESERVED_BOOT_BLOCKS        (NBOOT_BLOCK_SIZE + TOC_BLOCK_SIZE + EBOOT_BLOCK_SIZE)

  2. // Images start after OEM Reserved Blocks
  3. #define IMAGE_START_BLOCK           RESERVED_BOOT_BLOCKS
复制代码

RESERVED_BOOT_BLOCKS就是nboot占块+TOC块+eboot占的块  
前面两个好说 , 都是1
  1. #define NBOOT_BLOCK                 0
  2. #define NBOOT_BLOCK_SIZE            1
  3. #define NBOOT_SECTOR                BLOCK_TO_SECTOR(NBOOT_BLOCK)

  4. // TOC @ Block 1
  5. #define TOC_BLOCK                   1
  6. #define TOC_BLOCK_SIZE              1
  7. #define TOC_SECTOR                  BLOCK_TO_SECTOR(TOC_BLOCK)

  8. // Eboot @ Block 2
  9. #define EBOOT_BLOCK                 2
  10. #define EBOOT_SECTOR_SIZE           FILE_TO_SECTOR_SIZE(EBOOT_RAM_IMAGE_SIZE)
  11. #define EBOOT_BLOCK_SIZE            SECTOR_TO_BLOCK(EBOOT_SECTOR_SIZE)
  12. #define EBOOT_SECTOR                BLOCK_TO_SECTOR(EBOOT_BLOCK)
复制代码

eboot占的块是根据eboot大小得来的  EBOOT_RAM_IMAGE_SIZE
这个在上面有定义的   ,一起贴出来
  1. #define EBOOT_RAM_IMAGE_BASE        0x80038000
  2. #define EBOOT_RAM_IMAGE_SIZE        0x00040000

  3. #define EBOOT_STORE_OFFSET          0
  4. #define EBOOT_STORE_ADDRESS         (EBOOT_RAM_IMAGE_BASE + EBOOT_STORE_OFFSET)
  5. #define EBOOT_STORE_MAX_LENGTH      EBOOT_RAM_IMAGE_SIZE

  6. // BinFS work area defined in boot.bib
  7. #define BINFS_RAM_START             (0x80021000 | CACHED_TO_UNCACHED_OFFSET)   // uncached
  8. #define BINFS_RAM_LENGTH            0x5000

  9. //
  10. // Nk Memory reigions defined in config.bib...
  11. //
  12. #define ROM_RAMIMAGE_START          0x80000000
  13. #define ROM_RAMIMAGE_SIZE           0x02000000


  14. #define FILE_CACHE_START            (0x80200000 | CACHED_TO_UNCACHED_OFFSET)        // Start of file cache (temporary store
  15.                                                                                     // for flash images).

  16. // Driver globals pointer (parameter sharing memory used by bootloader and OS).
  17. //
  18. #define pBSPArgs                    ((BSP_ARGS *) IMAGE_SHARE_ARGS_UA_START)


  19. // Platform "BOOTME" root name.
  20. //
  21. #define PLATFORM_STRING         "SMDK2440"


  22. #ifndef SECTOR_SIZE
  23. #define SECTOR_SIZE                        512
  24. #endif

  25. #ifndef PAGES_PER_BLOCK
  26. #define PAGES_PER_BLOCK             32
  27. #endif

  28. #ifndef BADBLOCKMARK
  29. #define BADBLOCKMARK                0x00
  30. #endif

  31. #ifndef SECTOR_TO_BLOCK
  32. #define SECTOR_TO_BLOCK(sector)     ((sector) >> 5 )
  33. #endif
  34. #ifndef BLOCK_TO_SECTOR
  35. #define BLOCK_TO_SECTOR(block)      ((block)  << 5 )
  36. #endif
复制代码

eboot大小  256K   按他的算   EBOOT_BLOCK_SIZE=256*1024/(32*512)=16 block
那就应该是一共保留18块  ,不知道我哪里算错了  ,   望指教。

最新回复

汗死.....竟然是这么低级的错误,结贴给分,赶紧沉了。我的个破脑袋哦,昏头了。  详情 回复 发表于 2009-5-9 15:32
点赞 关注

回复
举报

82

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
引用楼主 sphink 的帖子:
Reserving Blocks [0x0 - 0x11] 我不理解为什么只保留了前12块。


0x11 = 17
所以从 0x0 - 0x11 总共 18 块 ...
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼主

你...........忽略了0x.....
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
汗死.....竟然是这么低级的错误,结贴给分,赶紧沉了。我的个破脑袋哦,昏头了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表