附件是电路图,代码如下:
EMIF_Config MyConfig = {
0x00003001, /* gblctl */
0x22711523, /* cectl0 */
0x22711503, /* cectl1 */
0xFFFF3F23, /* cectl2 复位值*/
0xFFFF3F23, /* cectl3 复位值*/
0x0388F000, /* sdctl 复位值*/
0x00080080 /* sdtim 复位值 */
};
EMIF_config(&MyConfig);
对CE1的FLASH:
void NOR_flashWriteCmd (Uint32 offset, Uint32 cmd)
{
Uint32 addr= 0x01400000+ offset;
*(Uint32 *)addr = cmd;
}
现在程序执行到红色部分就会死掉
麻烦帮助看下,代码是否有问题?或者还有需要配置的地方我漏掉了?
非常感谢
Denny%20Yang99373:
可能是EMIF什么地方初始化失败,最好找一个TI的EVM或者其他可用的板子,进行对比分析
Tony Tang:
注意到C6205 datasheet Table 2里, 内存映射分为map 0和map 1两种,我觉得你可能设成map 0了,(参考文档spru642 table 5)
这里仅仅是一个写操作造成的死机现象与EMIF的配置不会有关系,哪怕你现在nor flash不接,做这个操作也不应该死机,写操作仅仅是往外送一个数,只要这个地址在系统空间上是存在的,物理上这个内存在不在都不会对这个操作本身有影响。所以我怀疑你是往代码空间写了一个数,这从系统角度,是不允许的。
TI中文支持网
