芯片: omapL137DZKAB3 YF-5AAL2CW
NOR flash : M29W320EB (使用16bit模式, 读写正常)
环境: ccs6.1 ; AISgen for D800K005; xds100
程序功能: led 闪烁 (已调通, 在0x8000 0000(shared ram)处运行)
操作过程:
1. 查看omapL137版本, 确定为D800K005, 并使用AISgen ,配置为: NOR 16-bit; CE2CFG:0x2FFFFFFD, 生成.ais文件
2. 使用仿真器, 将.ais文件写入0x6000 0000 地址处(对应EMA_CS[2]), 然后使用'Memory Browser'确认写入正确
3. 断电, 断开仿真器, 然后上电, 无现象(led不闪)
4.重新连接仿真器, 上电, 再次确认0x6000 0000 地址处内容无误
5. 复位芯片, 发现程序卡死在0x0071 2144处, 此处指令为: IDLE
查看寄存器BOOTCFG, 为: 0xF371
查看寄存器CE2CFG, 为 0x3FFF FFFD; 并非AISgen软件中配置值
查看内存0x8000 0000处, 为乱码, 并非.ais中预订写入值.
推测芯片启动后并未按.ais中的内容执行
请各位帮忙分析一下, 谢谢.
---------------------------------------------------------------------------
.ais文件起始部分内容及分析如下:
0x00000021, //NOR Boot Configuration Word : AIS NOR boot; 16-bit access
0x41504954,// magic word
/*向地址0x68000010写入0x2FFFFFFD,
即向emifa的CE2CFG寄存器写入0x2FFFFFFD*/
0x58535907,
0x00000002,
0x68000010,
0x2FFFFFFD,
0x00000000,
/*向地址0x80000000写入0x00000D20个数据,
数据为:0x01BCD4F6,0x033D22B4,0xAC457246,......*/
0x58535901,
0x80000000,
0x00000D20,
0x01BCD4F6,
0x033D22B4,
0xAC457246,
0x01BD02B4,
0xFC458627,
0x009139DA,
.
.
截图如下:
