浅析redboot堆空间使用和flash空间config和fis信息存储布局.doc

浅析redboot堆空间使用和flash空间config和fis信息存储布局.doc

ID:51815283

大小:81.50 KB

页数:5页

时间:2020-03-16

浅析redboot堆空间使用和flash空间config和fis信息存储布局.doc_第1页
浅析redboot堆空间使用和flash空间config和fis信息存储布局.doc_第2页
浅析redboot堆空间使用和flash空间config和fis信息存储布局.doc_第3页
浅析redboot堆空间使用和flash空间config和fis信息存储布局.doc_第4页
浅析redboot堆空间使用和flash空间config和fis信息存储布局.doc_第5页
资源描述:

《浅析redboot堆空间使用和flash空间config和fis信息存储布局.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、浅析redboot堆空间使用和flash空间config和fis信息存储布局浅析redboot堆空间使用和flash空间config和fis信息存储布局packages/redboot/v20/src/main.cvoidcygstart(void)ftifdefCYGMEM_SECTION_heaplworkspace_start二(unsignedchar*)CYGMEM_SECTTON_heapl;//_heapl在target.Id脚木中定义在最末尾,即堆的开始//堆从redboot所需所有RAM空间的结尾开始,一直到正片DR

2、AM内存末尾,空间还是相当大的.workspaceend=(unsignedchar*)(CYGMENLSECTTONJieapl+CYGMENLSECTTON_heapLSTZE);workspacesize二CYGMEMSECTIONheaplSIZE;Weiseworkspacestart二(unsignedchar*)CYGMEMREGION_ram;workspaceend=(unsignedchar*)(CYGMENLREGTON_ram+CYGMENLREGTON_ram^STZE);workspacesize二CYGM

3、EMREGION_ramSIZE;Sendifif(ramend

4、aceend-=CYGNUMREDBOOTFISZLIBCOMMONBUFFERSIZE;//从堆的结尾处预留CYGNUM一REDBOOTFIS_ZLIB_COMMON_BUFFER_SIZE大小空间用来zlib运算.//然后堆大小自动去处该部分.#endif//对于我的intel/strata类型flash//flashstart=0x60000000//flash_end=0x61ffffff为32M//flashblocksize=0x40000//所以0x62000000-2*0x40000=0x61f80000//cfgba

5、se二0x61f80000staticvoidloadflashconfig(void){""booluse_boot_script;configok=false;script二(unsignedchar*)0;//在doflashinit中,有如下定义://#ifdefCYGOPT—REDBOOTJTS//fisdirsize二flashblocksize;//if(CYGNUMREDBOOTFISDIRECTORYBLOCK<0){//我们的定义就是-1,表示使用flash_end-1个block的空间//如果为-2,表示flas

6、h末尾2个block空间为fis_addr//fis_addr=(void*)((CYG_ADDRESS)flash_end+1+//那么从//(CYGNUM_REDB00T_FIS_DIRECT0RY_BL0CK*flash_block_size));//}else{//fis_addr二(void*)((CYG_ADDRESS)flashstart+//指向FIS所在block//(CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK*flash_block一size));//}//#endifif(!do_fla

7、shinit())return;config=(structconfig*)(workspaceend-sizeof(struet_config));//从堆_heapl后面预留出config大小空间[luther.gliethttp]backup_config二(struct_config*)((CYGADDRESS)config-sizeof(structconfig));//预留一个临时操作缓冲区,如果操作没有//在中途ctrl+c退出了,那么需要进行即时恢复,这和fat表的双备类似,//只不过这里是直接从1个内存还原到另外1个

8、内存workspaceend二(unsignedchar*)backupconfig;//调整workspaceend结尾地址,因为上面被瓜分走了一部分heapl内存空间[luther.gliethttp]//stati

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。