3650|8

2606

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

坛友的问题,有做过CKFA的来帮忙看看 [复制链接]

 

写APP的时候,RAM用4096B,但我写了没反应。 于是先自己随便写了一个4096B的APP.BIN,发现写到RAM430B时候就停止了,因为还没有写满4096,所以也就没有往FLASH里写。后来把接受RAM变成128B,倒是能进到写FLASH那一步函数里,但是callback函数又报错,貌似是FIFO满了。 FIFO在SCI里已经及时读取一个字取出一个字,怎么还会满呢?降低PC上位机的写入速率到300,还是同样地现象。

 

最新回复

首先,下载有两种方式: 1:不需要密码,这种方式很简单,之间将整个CKFA下载进去就可以,而且ram可以在整个memeory范围内任意设置; 2:需要密码,这种方式稍微复杂一点,但是比较适用于现场,因为一般C2000做到产品上后都会加密。这样的话就需要把CKFA分解,第一部分用来做密码解锁,第二部分用来做程序下载。因为加密后的芯片,在Bootloader阶段只有M0和M1可以用,所以第一部分加密的程序只能做的很小,而且所有的buffer和代码都要放到M0和M1才行,通过解密后,再将第二部分的CKFA下载到其他RAM中,这样可以实现现成密码的解锁,同时更新程序。  详情 回复 发表于 2011-11-9 00:25
 
点赞 关注
个人签名工程 = 数学+物理+经济

回复
举报

71

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
建议在CKFA不要设计buffer数组,直接设定指针指向具体的ram地址进行数据存取操作。
 
 

回复

2606

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
不用buffer数组,你是说不是FIFO?
 
个人签名工程 = 数学+物理+经济
 
 

回复

65

帖子

0

TA的资源

一粒金砂(高级)

4
 
那个CKFA里的回调函数有问题,第一句话他用FIFO.xxx==16
我改成for(i=0;i<=7;i++)
因为FIFO是16级的,表示最大接受16byte,可是接受到的数据每次都超过16个,报错。
我用这个方法后就可以正常接受了。

其实我也不是很明白怎么回事。

回调函数的作用是在一个BUFFER运行程序的同时,用另一个BUFFER来继续接受数据么?
好像是一个过度作用。具体的再请版主或专家讲讲。
 
 
 

回复

2606

帖子

0

TA的资源

五彩晶圆(初级)

5
 
先顶一个回头仔细研究下。
 
个人签名工程 = 数学+物理+经济
 
 

回复

65

帖子

0

TA的资源

一粒金砂(高级)

6
 
今天又看了看callback函数。以前说的有不对的地方。

为了接受AppCode,CKFA划分出两个4KW-RAM,这个RAM其实是8192KB,往往容易忽视。

接受过程是设置一个4KW的限制,Buffer1接受数据达到这个上限后,开始更新写入Flash的起始地址以及剩下的Flash大小。用
Flash_Program实现AppCode写入Flash功能。

此时另一个Buffer2继续接受串口发送的数据,目的是提高写入速度。这时候用到一个callback函数。

我的问题是,
1. TI专家说不用FIFO指的是整个CKFA都不用FIFO么?
可是原来程序里对SCI初始化以后观察FIFO相关寄存器
SCIFFTX = 0XE080
SCIFFRX = 0X201F
而且在回调函数里用到了
if(SCIARegs.SCIFFRX.bit.RXFIFST == 16)这样的判断
以上看起来是用到了FIFO

但是从RX引脚读取数据的语句
*BlockBufferPtr++ = SCIA_FIFO_GetWordData_swapEndian();
是以字的形式读取,然后存放到RAM里。
这时候看起来由确实是直接读取数据用指针指向RAM

2. 回调函数什么时候进去的?
每次读取的数据是多大的?
if(SCIARegs.SCIFFRX.bit.RXFIFST == 16)
是否想每次读取16W的数据?

我改成for(i = 0; i <= 7; i++)或for(i = 0; i <= 15; i++)
都能正常读取,意思是每次回调函数读取8W或者16W。

那这个判断语句真的有问题?

3. 最后问一下用超级终端如何发送文件,我一直用的SSCOM32。
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(高级)

7
 
我就是用SSCOM32在WIN7下用的。能够发送文件。
先是发一个A字符,然后再发文件。发完就能直接运行了。
 
 
 

回复

71

帖子

0

TA的资源

纯净的硅(初级)

8
 

首先,下载有两种方式:

1:不需要密码,这种方式很简单,之间将整个CKFA下载进去就可以,而且ram可以在整个memeory范围内任意设置;

2:需要密码,这种方式稍微复杂一点,但是比较适用于现场,因为一般C2000做到产品上后都会加密。这样的话就需要把CKFA分解,第一部分用来做密码解锁,第二部分用来做程序下载。因为加密后的芯片,在Bootloader阶段只有M0和M1可以用,所以第一部分加密的程序只能做的很小,而且所有的buffer和代码都要放到M0和M1才行,通过解密后,再将第二部分的CKFA下载到其他RAM中,这样可以实现现成密码的解锁,同时更新程序。

 
 
 

回复

2606

帖子

0

TA的资源

五彩晶圆(初级)

9
 
受教了,有空回来好好研究。顶一个
 
个人签名工程 = 数学+物理+经济
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表