之前通过EMIF16 nor flash boot是成功的。现在将应用程序的.bin文件烧写到 nand flash 的16384处,其他设置和nor flash 时一致,重新上电后发现地址一直在ox7XXXXXXX处,不能跳到应用程序的执行地址。nand flash boot相对于nor flash 在boot设置上有什么不同呢?比如:
6678 通过EMIF16 连接nand flash boot 和连接 nor flash boot 时 的boot mode pin设置是一样的吗?
此外之前nor flash boot时没有额外设置Boot Parameter Table,nand flash boot时需要设置吗?如果需要,应该怎样设置。
多谢指教!
Shine:
nand flash boot mode是先要从nand flash里搬移代码再跳转到_c_int00程序入口地址执行代码,nor flash boot没有代码加载,直接从0x7xxxxxx处开始执行代码。
nand flash bootmode[5:4]pin 配置成01.
boot paramter table在tiboot.h里配置
typedef struct boot_params_emif_nor_s{UINT16 waitEnable;
} boot_params_emif_nor_t;typedef struct boot_params_emif_s
{/* common portion of the Boot parameters */UINT16 length;UINT16 checksum;UINT16 boot_mode;UINT16 portNum;UINT16 swPllCfg_msw;/* CPU PLL configuration, MSW */UINT16 swPllCfg_lsw;/* CPU PLL configuration, LSW */
UINT16 options;
UINT16 type;
#define BOOT_PARAMS_EMIF_TYPE_NOR0
UINT16 branchAddrMsw;UINT16 branchAddrLsw;
UINT16 csNum;UINT16 memWidth;
union{boot_params_emif_nor_t nor;} u;} BOOT_PARAMS_EMIF_T;