This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

omapL137从NOR flash启动, 使用AIS Boot方式, 无法启动



芯片: 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,
.
.

截图如下:

  • 问题解决, 感谢关注.

    是所使用的norWriter程序的问题.

    由于137对应emifa的地址线有限, 使用了普通io口作为nor的地址线

    在这一程序中,错误配置了io的电平, 即 错误初始化了emifa的读写地址, 导致.ais镜像写入到错误的位置

    最后一张图是在实际错误地址下读取的0x6000 0000 的数据.