做了接近两个月,终于把这个该死的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热心帮助。