TMS320F28377D: 关于28377D对flash编程无效的问题

Part Number: TMS320F28377D

我想用例程F2837xD_sci_flash_kernels_cpu01做修改,用自己的通讯协议做成产品的bootloader程序,基本的初始化和配置都是从例程中复制过来的,但是在调试过程发现执行flash擦除和编程的API函数时返回的状态字都显示操作成功了,但是检查flash里的内容实际完全没改变,编程无效。刚开始我怀疑因为部分程序未分配到RAM中运行所致,于是我将整个过程都放到RAM里运行,但是结果一样,请问这会是什么地方没做对,有什么可能?还有我又用例程F2837xD_sci_flash_kernels_cpu01生成的目标文件,用你们提供的工具serial_flash_programmer.exe下载程序到芯片中,在命令行窗口确实已经看到数据下载过程,也顺利完成下载。但实际上flash中并没有程序。但是如果我将例程F2837xD_sci_flash_kernels_cpu01改为用仿真器运行,用串口手动发送下载数据,结果就能够正常写入flash了,这整个过程就很奇怪,不知道如何解释?

  • 当您尝试以独立模式下载闪存映像时,串行端口是否正确回显数据,即表示正在接收数据?设备启动模式是否设置为串行?

  • 我程序的问题已经找到原因了,是没加上EALLOW指令解除寄存器保护导致的,主要是以前用28335的api不需要这个操作,我就习惯性的按照之前的经验写了,没仔细看文档。不过用你们提供的工具serial_flash_programmer.exe下载程序还是有问题,下载结束后校验总是失败,经常是显示地址0x82000出错,实际查看却是整片芯片都是空的,全部都没写入,但奇怪的是如果再执行一次擦除操作后再下载就成功了。