HI
请问 i.mx28 wince 的eboot中 该怎样设置IVT表?
在BSP中 eboot_ivt.sb 是由 如下语句生成的 " elftosb -z -f imx28 -c eboot_ivt.bd -o eboot_ivt.sb"
其中 eboot_ivt.bd 的内容如下:
options {
driveTag = 0x00;
flags = 0x01;
}
constants {
xldr_addr = 0x00000004;
eboot_addr = 0x40050000;
bmp_addr = 0x40094000;
ivt_addr = 0x8000;
}
sources {
xldr = "xldr.nb0";
eboot = "eboot.nb0";
bmp = "splash_eboot.bmp";
}
section (0) {
load xldr > xldr_addr;
load ivt (entry = xldr_addr) > ivt_addr;
hab call ivt_addr;
load bmp > bmp_addr;
load eboot > eboot_addr;
load ivt (entry = eboot_addr) > ivt_addr;
hab call ivt_addr;
}
而 IVT结构体的定义为:
typedef struct
{
uint32_t header;
uint32_t *entry;
uint32_t reserved1;
uint32_t *dcd;
boot_data_t *boot_data;
uint32_t *self;
uint32_t *csf;
uint32_t reserved2;
} hab_ivt_t;
该怎样设置 IVT结构中各项 如: header; dcd, csf 等? |