这个结论先要清楚 很重要 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 是一致的。

 

 

 

posted @ 2020-08-16 12:07  STEVEN-SUN  阅读(536)  评论(0)    收藏  举报