[讨论] 请教一个CKFA的交互问题

book1bug   2011-11-4 22:55 楼主
想弄个280X的SCI更新。研究了一下2812的CKFA项目。基本弄清楚了次序。
1. SCI硬件跳线
2.BOOT ROM自动运行后,上位机发一个字母‘a'以锁定波特率
3.按BOOT ROM的要求,发0x08aa,再发8个0,再发一些目标地址和CKFA的程序块。
4.发送完后,自动运行。
现在的问题在于,SPRAAQ2里,直接就运行了CKFA了。想问一下,这些顺序里的要求发的上位机字节大家是怎么发的,难道一个个敲进去?那将来更新的时候也是这样要求客户吗?

回复评论 (10)

编译好后,发二进制文件,不用手工
工程 = 数学+物理+经济
点赞  2011-11-5 08:34

回复 沙发 安_然 的帖子

不太明白。在CKFA被传送进DSP前,DSP的程序是由BOOT LOADER控制的。CKFA并没有接过控制权。此时怎么能自动发?
点赞  2011-11-6 10:22

一般做法:

1. 用PC机编程

2. 采用其他MCU进行通讯

以上做法的好处是可以开发独立的编程工具,

实现各种编程功能:解密、擦除、校验、特定位置编程等等,一般编程器厂商多采用这种方式。

点赞  2011-11-6 12:25

回复 4楼 囧神 的帖子

弄明白了,在编译项目的时候选择-boot -sci8选项后,生成的BIN文件里自动就包含了启动的代码。所有需要做的事情就是通过串口软件发一个字符A,锁定波特率后,直接将整个的BIN文件发给DSP就可以了。
点赞  2011-11-6 22:19

回复 5楼 book1bug 的帖子

对,这个是直接把ckfa发给Bootloader进行自动解析,可以直接在ram中运行;最后还需要把appcode发给ram中运行的ckfa,由ckfa解析写到flash中。
点赞  2011-11-7 02:33
去看看在CKFA程序中是否有锁定波特率的程序,感觉用SCI bootloader 是不需要做波特率锁定的。
工程 = 数学+物理+经济
点赞  2011-11-7 09:01

回复 7楼 安_然 的帖子

锁定波特率的字符A是必须的。我已经用实验验证过了。发一个A之后,再发文件。因为文件里并没有A这个东西。因为如果没有设定前或锁定好,A是需要重复发的。程序并不能确定。
点赞  2011-11-7 10:38
我做了一个在RAM中闪灯的程序,通过SCI把文件发过去后,一发送完,就自动闪灯了。发送完毕,自动切到文件运行的起始点。下一步再做个烧写的程序到FLASH里看看。谢谢安然和冏神。
[ 本帖最后由 book1bug 于 2011-11-7 10:41 编辑 ]
点赞  2011-11-7 10:40
受教了。我之前看过文献,还没来得及实行。呵呵。纯理论。
工程 = 数学+物理+经济
点赞  2011-11-7 13:47

回复 7楼 安_然 的帖子

新手准备做28035的在线升级,看了楼上的留言不完全懂但是想请问必须要修改bootloader才可以吗? 可以利用提供的API函数烧写Flash,然后不用跳线也不用修改bootloader模式,直接从Flash启动实现在线升级吗?麻烦各位搞过串口在线升级的楼主帮帮忙了,不胜感激!
点赞  2012-7-19 17:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复