这个结论先要清楚 很重要 spaaaq2中CKFA工程的提示擦除flash校验和就是计算的当前芯片里实际程序的FLASHCHECKSUM
本文章的主要目的是说明:我使用的spraaq2 的CKFA 工程 生成bin 文件,
然后经过30kW电机控制器电路板为试验工装,我首先闭合船型开关S1 。S1使DSP2812 上
电瞬间,SCITX 拉低 ,使DSP 进入BOOTROM 里 SCI-boot模式,此时在超级中端键入字母'a'
然后超级终端显示'a' ,表示 现在的SCI-BOOT 程序的波特率已经锁定,
然后我再次 发送 本段落的第一句话 中的CKFA.BIN 文件(注意CKFA.BIN 文件是在RAM 中执行的),发送完成以后 CKFA 的程序直接 运行。
然后会让你 再次 键入 'a' 以再次锁定波特率。
然后还会自己计算DSP 片内的FLASH CHECK SUM 为0X3AAE
注意:这里之前下载的是 我编写的指示灯 30kw控制板ERR4 指示灯一闪一闪的测试程序。
该测试程序我 先前用 CCS3.3 下载完成程序以后,测试的FLASH CHECKSUM 为 0X 3AAE
所以 CKFA工程中,第一次计算的flask check sum 就是 DSP芯片中 实际现在有的程序的检验和。
现在30kW电机控制器里面有程序,就是只有一个指示灯闪烁的程序。
我用CCS3.3 在下载完成程序的时候,然后用CCS3.3 计算得到的FLASH 的校验值为
0X3AAE。
以上是试验条件:
在以上实验条件的基础上。
我首先 先让30kW的控制板 进入 SCI-BOOT LOADER 模式
注意:此时刻 30KW 控制板的SCITX 通过船型开关 是拉低的
状态1 30kW 已经进入 bootloader –sci 模式 并且在等待。
接下来操作: 我把SCITX 的船型开关断开。则可以保证30kw 控制板 将它bootROM 接收的字符 再次发送上来。
接下来 我通过超级终端 键入 一个 字符'a' 我超级终端 所设置的波特率是 9600
如果超级终端 显示了字符 'a' 表示波特率已经锁定上啦。
现在需要进行的操作就是传递 CKFA.BIN 文件 。
传递ckfA.bin 文件的时候,超级终端上会显示一些乱码?
思考这个是什么原因?
答:原因是因为, 在SCI-BOOTLOADER 模式下,30kW 控制板的BOOTROM 里面的程序
会将超级终端发送的8位 SCI 数据流格式的 bin 文件 回应,, 发送一个字符 回声一个字符, 因为超级终端只显示ASCII 吗 ,所以一些回声上来的字符就是 乱码的 。
最后超级终端的画面 会停留在 下面的地方 如下图所示:
然后再超级终端 键入 a
显示 baud-rate relocked
然后 CKFA 软件 通过 调用 CKFA 工程中的 API 函数 会 计算出 当前30kw控制板
(文章最前面所述一个指示灯一闪一闪的程序) 该程序下载进入 FLASH 中的校验和checksum 如果检验和 不为0 提示 要擦除 Flash
一定要注意:CKFA 工程在 问是否 擦除 flash 之前 计算的检验和, 是CKFA 工程调用API 函数计算的当前 DSP 片内 程序的检验和 checksum
即:下图中 红色 的0X3AAE 与 文章最前面CCS 3.3 计算的check sum 是一致的。