boot.txt
资源名称:SMDK2440.rar [点击查看]
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:2k
源码类别:
Windows CE
开发平台:
Windows_Unix
- /*=====================================================================
- Memory layout on NAND flash:
- Block 0 has the NAND boot loader (NBOOT.BIN)
- Block 1 is the TOC block which specifies the layout on the NAND
- Block 2 is the start block for secondary bootloader
- Block n is the start of image. n is defined in the block 1 structure
- structures:
- #define MAX_SG_SECTORS 10
- IMAGE_DESCRIPTOR: (116 bytes)
- typedef struct _IMAGE_DESCRIPTOR {
- DWORD dwVersion;
- DWORD dwSignature;
- UCHAR ucString[IMAGE_STRING_LEN];
- DWORD dwFileType;
- DWORD dwLoadAddress;
- DWORD dwJumpAddress;
- DWORD dwTtlSectors;
- SG_SECTOR sgList[MAX_SG_SECTORS];
- } IMAGE_DESCRIPTOR, *PIMAGE_DESCRIPTOR;
- where SG_SECTOR is defined as:
- SG_SECTOR: (8 bytes)
- typedef struct _SG_SECTOR {
- DWORD dwSector;
- DWORD dwLength;
- } SG_SECTOR, *PSG_SECTOR;
- The layout on the first sector of TOC block is:
- typedef struct _TOC_SECTOR {
- DWORD dwSignature; // 4 bytes
- IMAGE_DESCRIPTOR id[4]; // 480 bytes
- UCHAR Pad[32]; // 32 bytes
- } TOC_SECTOR, *PTOC_SECTOR;
- Here is what we are doing in the first stage bootloader:
- 1. Do the usual things to initialize the hardware
- 2. By default, it will always boot the id[0], unless App4 button is pressed
- and at the same time another app button is pressed. NBOOT will boot from
- id[num] where num is the app button that is pressed.
- For development, we can write our own TOC sector so that id[0] points to
- Block2 which is the start block for secondary bootloader, more than likely
- Eboot.
- */