TI中文支持网
TI专业的中文技术问题搜集分享网站

串口烧写算法CKFA优化

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

Eric Ma:

master,

可以啊,其实填充只不过是为了让地址连续,这样子你上位机解析的工作就可以少一点。而且CKFA的任务就是接收地址,数据长度,数据,校验和。你只要保证该烧写的数据能够正确发送下去就可以啊。

我做concerto双核在线升级的时候,就没有用填充。编译生成后的.out文件再生成.hex文件,然后通过上位机解析数据。你可以对比一下没有填充的hex文件跟填充的hex文件的差别,其实就多了几个数据断层,只要上位机解析出来就可以了。

Eric

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

master blade:

回复 Eric Ma:

Eric,

嗯嗯,没错,填充是为了让地址连续,CKFA接收数据是根据Flash地址边界判断,规定好每一种DSP的bin文件大小,例如28335是512kb。

如果知道每一块数据的地址,就只需要烧写块到到特定地址就ok了;问题是CKFA只接受bin文件,只有hex文件带地址数据,而bin不带地址数据,hex转bin使用TI的官方控件 Hex2000,如果由上位机解析并转换bin,就要研究一下DSP hex格式,感觉比较复杂,而且还要修改CKFA,改变协议!

看来,不修改上位机,只修改CKFA是行不通啊!

master.

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

John Chen:

可以不使用连续填充格式,采用a00或hex格式,每段程序代码都有起始地址和长度,根据起始地址和长度,CKFA就可以把相应的程序段烧入flash,非常方便,而且速度快。同时还可以自定义协议,在PC端读取该hex文件后,获取程序使用的sector,然后只用擦除相应的sector,也可以加快烧录时间。

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

master blade:

回复 John Chen:

嗯嗯!需要利用上位机代替hex2000解析hex文件,分析地址和长度!而刷写还是要全部flash刷除吧!

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

10#:

回复 master blade:

根据John的说明,如果你的上位机解析到了sector的层面,知道要更新哪些地址的数据,则可以只进行对应区间的擦除,而不需要对整个Flash操作。

不过,相对编程来说,擦除时间还是很快的,因为擦除是按块进行,而编程是按位进行的。

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

master blade:

回复 10#:

嗯嗯,相对烧写来说刷除flash的时间还是很快的,而且还要根据地址判断那块需要刷除有点麻烦,干脆全部刷除一遍就行了~!

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

XingKong Hust:

master 你好!

  我是在读学生,最近尝试28335 SCI烧写Flash。已经找到了一些281x的相关说明,28335的只搜索到你的相关帖文。。。。

可不可以参考下你的CKFA工程以及用户程序AppCode例程,学习你的编程思想,我想会有很大帮助,谢谢。

Email:852307104@qq.com 

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

master blade:

回复 XingKong Hust:

已发送!

    做了接近两个月,终于把这个该死的28335 CKFA串口烧写项目写完了,PC软件使用VC2010!
    
    总结:感觉CKFA的烧写思路效率不高,因为需要把这个28335 (256k * 16)的flash空间填充,也就是串口需要发送 256 * 2  * 1024 = 524288 8位数据。对比第三方 C-prog软件,不需要填充数据,速度比CKFA快很多,本人写的软件烧写28335需要70秒左右。

    问题:
    1.回调函数的使用,涉及到双缓冲区,他的工作原理如何提高速度?
    2.CKFA能否进行优化,减小发送数据(不需要填充0xFFFF)?

XingKong Hust:

回复 master blade:

文件已经查收,我会认真学习,非常感谢master blade热心帮助。

赞(0)
未经允许不得转载:TI中文支持网 » 串口烧写算法CKFA优化
分享到: 更多 (0)