TI中文支持网
TI专业的中文技术问题咨询交流网站

DSP通过CAN通信给flash烧录程序出现问题

有两个DSP单片机用CAN通信进行通信,前面几个扩展数据帧还好好的,后面就突然跳出标准数据帧和远程帧,这是什么情况引起的?百度了下,只有对远程帧的说明,没找到有用的信息,各位有这样的经验的吗?仔细看了抓到数据,发现后面还有几帧正常的,

我是打算通过CAN通信,将收到的数据写入flash中。不调用FLash的 API的话,通信是没问题的;
 
图1:加入flash的API出现CAN通信问题
 
图2:加入Flash的API出现问题后,还抓到一帧正常的
 
图3:没有调用Flash的API,正常能进行CAN通信



希望大家给个建议指导下,谢谢!

Seven Han:

请问您使用的是哪颗芯片?

请参考controlSUITE中例程:C:\ti\controlSUITE\libs\utilities\flash_api

有两个DSP单片机用CAN通信进行通信,前面几个扩展数据帧还好好的,后面就突然跳出标准数据帧和远程帧,这是什么情况引起的?百度了下,只有对远程帧的说明,没找到有用的信息,各位有这样的经验的吗?仔细看了抓到数据,发现后面还有几帧正常的,

我是打算通过CAN通信,将收到的数据写入flash中。不调用FLash的 API的话,通信是没问题的;
 
图1:加入flash的API出现CAN通信问题
 
图2:加入Flash的API出现问题后,还抓到一帧正常的
 
图3:没有调用Flash的API,正常能进行CAN通信



希望大家给个建议指导下,谢谢!

lu xiaojian:

回复 Seven Han:

 您好,感谢您抽出时间来解答我的问题,我使用2806芯片,经过测试,发现扇区A擦除不了,其它扇区能擦除,并且能写入,

扇区A的范围是0x3F6000-0X3F7FFF,2806芯片的存储器分布如下。一旦我擦除扇区A,就会出现我所说的问题。希望能再次得到您的关注和解答,谢谢!

有两个DSP单片机用CAN通信进行通信,前面几个扩展数据帧还好好的,后面就突然跳出标准数据帧和远程帧,这是什么情况引起的?百度了下,只有对远程帧的说明,没找到有用的信息,各位有这样的经验的吗?仔细看了抓到数据,发现后面还有几帧正常的,

我是打算通过CAN通信,将收到的数据写入flash中。不调用FLash的 API的话,通信是没问题的;
 
图1:加入flash的API出现CAN通信问题
 
图2:加入Flash的API出现问题后,还抓到一帧正常的
 
图3:没有调用Flash的API,正常能进行CAN通信



希望大家给个建议指导下,谢谢!

yakun song:

回复 lu xiaojian:

我当时做的大概流程是

有两个程序 一个是类似于串口IAP的bootloader引导程序,一个是真正的应用程序APP,

我把BL程序烧写在了A扇区,(涉及到操作flash的内容移到了ram里运行)在ram里定义了一段内存用来存can收到的程序数据,接收完成以后调用FLASH API 将数据写到了H扇区里面,然后跳转到H扇区执行程序

另一个是APP程序,修改CMD文件将程序和BEGIN都修改到了H扇区。通过map文件能知道程序占了多大的flash,下进去以后把H扇区开始的DAT文件导了出来作为输出文件供上位机解析后发送给bootloader程序(也可以用HEX或bin,我没用)

没啥用就当帮你顶了,

有两个DSP单片机用CAN通信进行通信,前面几个扩展数据帧还好好的,后面就突然跳出标准数据帧和远程帧,这是什么情况引起的?百度了下,只有对远程帧的说明,没找到有用的信息,各位有这样的经验的吗?仔细看了抓到数据,发现后面还有几帧正常的,

我是打算通过CAN通信,将收到的数据写入flash中。不调用FLash的 API的话,通信是没问题的;
 
图1:加入flash的API出现CAN通信问题
 
图2:加入Flash的API出现问题后,还抓到一帧正常的
 
图3:没有调用Flash的API,正常能进行CAN通信



希望大家给个建议指导下,谢谢!

lu xiaojian:

回复 yakun song:

后来经过调试后,发现擦除扇区A的话,RAM中的数据会被改变,包括CAN和定时器的配置,还有搬运到RAM中的flash  api,不知道为什么RAM会被改动的?

有两个DSP单片机用CAN通信进行通信,前面几个扩展数据帧还好好的,后面就突然跳出标准数据帧和远程帧,这是什么情况引起的?百度了下,只有对远程帧的说明,没找到有用的信息,各位有这样的经验的吗?仔细看了抓到数据,发现后面还有几帧正常的,

我是打算通过CAN通信,将收到的数据写入flash中。不调用FLash的 API的话,通信是没问题的;
 
图1:加入flash的API出现CAN通信问题
 
图2:加入Flash的API出现问题后,还抓到一帧正常的
 
图3:没有调用Flash的API,正常能进行CAN通信



希望大家给个建议指导下,谢谢!

lu xiaojian:

回复 Seven Han:

请问下,我参考controlSUITE中例程:C:\ti\controlSUITE\libs\utilities\flash_api,使用的2806芯片,里面的例程只擦除了扇区B和扇区C,一旦我擦除了A和D之后,就会出现问题,我看了例程,程序中有将代码从flash中copy到RAM中,为什么不能全部擦除?

有两个DSP单片机用CAN通信进行通信,前面几个扩展数据帧还好好的,后面就突然跳出标准数据帧和远程帧,这是什么情况引起的?百度了下,只有对远程帧的说明,没找到有用的信息,各位有这样的经验的吗?仔细看了抓到数据,发现后面还有几帧正常的,

我是打算通过CAN通信,将收到的数据写入flash中。不调用FLash的 API的话,通信是没问题的;
 
图1:加入flash的API出现CAN通信问题
 
图2:加入Flash的API出现问题后,还抓到一帧正常的
 
图3:没有调用Flash的API,正常能进行CAN通信



希望大家给个建议指导下,谢谢!

hu vison:

回复 lu xiaojian:

你的loader是放在A区的,把A区擦了,可能loader的数据被破坏了,先确认在擦除A区前,loader的所有数据都已经搬到RAM中了。我做过loader在A区然后烧写其他区的,也做过loader在RAM,然后烧写整个Flash的。但像你这样loader在A区,又想烧写整个Flash的,还没试过。

赞(0)
未经允许不得转载:TI中文支持网 » DSP通过CAN通信给flash烧录程序出现问题
分享到: 更多 (0)