首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

wince6.0的BSP中的EBOOT中TOC结构体有关问题

2013-09-06 
wince6.0的BSP中的EBOOT中TOC结构体问题wince6.0的BSP中的EBOOT中,有如下一个结构体:typedef struct _TOC{

wince6.0的BSP中的EBOOT中TOC结构体问题
wince6.0的BSP中的EBOOT中,有如下一个结构体:

typedef struct _TOC
{
    /* 0000 (+4) */
    DWORDdwSignature;
    /* 0004 (+4) */
    DWORDdwBootVersion;
    /* 0008 (+4) */
    DWORDdwMaxBadBlocks;
    /* 000C (+28) */
    BOOT_CFGBootCfg;
    /* 0028 (+100*3)*/
    IMAGE_DESCRIPTORid [MAX_TOC_DESCRIPTORS];
    /* 0154 (+16) */
    CHAININFOchainInfo;
    /* 0164 (+4) */
    DWORDblockNo;
    /* 0168 (+2) */
    WORDdwMonoImgBlocks;// Only valid for monolithic image
    /* 016A (+6) */
    BYTEbBTAddr[6];
    /* 0170 (+20) */
    //NANDXIPINFOnandxipInfo;
    /* 0170 (+4) */
    NANDCSINFOnandcsinfo;
    /* 0174 (+4) */
    DWORDdwImageBlocks;//Blocks for the image. Applies both to monolithic and MultiXIP
    /* 0178 (+4) */
    DWORDbNewNFDrvEnabled;//Set it to non-zero if want to enable new NANDFLASH driver,
    //I use DWORD because BOOL is not a consistent type
    //between ARMADS and WinCE ARM compiler
    /* 017C (+4) */
    DWORDdwClockInfo;
    /* 0180 (+4) */
    DWORDdwClockRatio;
    /* 0184 (+4) */
    DWORDdwReadOnlyPartPercent;
    /* 0188 (+4) */
    DWORDbUserReadOnlyPart;// current write-protect status of the Read-Only FAT partition
    /* 018C (+4) */
    DWORDdwImageDataChecksum;
    /* 0190 (+4) */
    DWORDdwImageInfoChecksum;
    /* 0194 (+12) */
    SG_BLOCK        secureBlock;


    /* 01A0 (+28) */
    LOGO_DESCRIPTOR logo;
    
    /* 01BC (+24) */
    HIBERNATION_STOREhsStore;

    /* 01D4 (+4) */
    DWORDdwTOCVersion;
    /* 01D8 (+4) */
    DWORDdwEBootBlockStart;
    /* 01DC (+4) */
    DWORDdwDMBlockStart;
    /* 01E0 (+4) */
    DWORDdwNKBlockStart;
    /* 01E4 (+12) */
    SG_BLOCK        miniGPSCodeBlock;
    /* 01F0 (+12) */
    SG_BLOCK        miniGPSDataBlock;           
    /* 01FC (+12) */
    DWORD           dwReserve[1];
    /* 0200 */
} TOC, *PTOC;

对此结构体,我有几个问题:

1、此结构体最后的位置是0x1FF,即512个Bytes。原厂给我们的BSP和DEMO板上用的Flash是K9F1208UOC。页大小刚好也是512Bytes的。而我看BSP中的TOC_Write函数中,操作时都是强制指定1个页大小的。我的问题是:这个结

构体是不是和WinCE本身没有关系的?因为我现在想在上面加几个变量,这样长度就会超过512个Bytes了,那么,在对应的TOC读写函数中更改下要读写的页个数是不是就可以了?

2、如果我们将Flash换掉,换成页大小是1K Bytes的,比如K9F1G08U0C,而我要增加的变量所占的字节数没有超过512个字节,是不是意味着TOC的读写相关函数都不用去改,只需要在此结构体后面增加就可以了?

3、上面的TOC结构体,我是不是可以在其中随便增加变量的,只要对应的读写函数做相应修改就可以了?更重要的是,此结构体TOC跟WinCE系统本身没有半毛钱关系,对不对? WinCE6.0 TOC结构体
[解决办法]
toc大小是可以改的,不过好像要注意TOC存放的位置,和程序存放的位置关系,要全做相应修改。 TOC不能说和ce没有关系,这里面存放了一些配置文件,可以用也可以不使用

热点排行