資源簡介
1.完整的F28335引導程序(boot)CAN通信解決方案。
2.使用CAN通信配合另外的EEPROM升級程序,完全自定義協議。
3.程序功能包括 擦除內部FLASH,讀寫FLASH。
4.工程使用CCS5.5。
5.http://blog.sina.com.cn/s/blog_762cf5f80101ad7i.html這個是相關資料給大家 參考這個人對F28335研究的比較其博客內容相關比較多,可供大家學習。

代碼片段和文件信息
/*
?*?Boot_Can.c
?*
?*??Created?on:?2016-9-7
?*??????Author:?gx-
?*/
#include?“DSP2833x_Device.h“
#include?“Flash2833x_API_Library.h“
#include?“Boot_Can.h“
#ifndef?true
#define?true?1
#endif
#ifndef?false
#define?false?0
#endif
extern?struct?ECAN_REGS?ECanaShadow;
unsigned?char?ucTXMsgData[8]ucRXMsgData[8];
//unsigned?char?Flash_WR_Data_TX[8];//程序寫入時請求數據,返回
long?CAN_RX_MsgID;
CAN_frame_type?CanR_frame;
unsigned?char?SHAKE_HAND_OKShake_Hand_OK_Back;
unsigned?char?Messege_Err_EN;
unsigned?int?Prog_Data[Prog_Data_len];
unsigned?int?Erase_Status;
unsigned?char?CAN_Data_all_rev;
unsigned?char?Prog_Address[4];//程序下載地址
unsigned?char?CAN_Packet[MaxPacket_Num]?;??//??FLASH?數據,384個
unsigned?long?Prog_Address_Long;
unsigned?long?Address_frame;
unsigned?char?Back_Erase_Status_EN;
unsigned?char?Erase_Status_Data;
int?Can_Rev_Cnt;
unsigned?char?Send_UPLoad_EN;
unsigned?char?Send_DNLoad_RQ_EN;
unsigned?long??Prog_Start_Addr;
unsigned?int?UPLoad_Packet_Ptr;
unsigned?long?UPLoad_Dat_Paket_CNT;
unsigned?char?Shake_Hand_WR_OK_BackSend_UPLoad_Finish;
unsigned?char?ProgRXData_Dealwith(unsigned?char?*?Source?unsigned?int?*Dest)//數據校驗和操作
{
int?i;
unsigned?char?temp_sumchksum;
unsigned?int?Lenth;
chksum?=?0x00;
Address_frame?=?Source[4]?|?((unsigned?long)Source[3]<<8)?|?((unsigned?long)Source[2]<<16)?|?((unsigned?long)Source[1]<<24);
Lenth?=?Source[5];
if(Lenth?!=?0xff)
{
return?false;
}
for(i?=?1;?i? {
???chksum?+=?Source[i];
}
temp_sum?=?Source[262];
if(temp_sum?==?((~chksum)&0xff))
{
for(i?=?0;?i?128;?i++)???//基本參數數據??9
{
Dest[i]?=?Source[i*2+6]|(unsigned?int)(Source[i*2+7])<<8;
}
return?true;
}
else
{
return?false;
}
}
unsigned?char?CAN_Packet_InputAvailable_Prog(int?Max_Lenth)
{
if((CAN_Packet[0]?==?‘*‘)&&?(CAN_Packet[5]?==?0XFF)?&&(CAN_Packet[263]?==?‘!‘))
{
???? return?true;
}
return?false;
}
unsigned?long?Prog_Once_Data_Len;
unsigned?char?Packet_Flash_RX(void)//將收到的操作器發送的不同段的數據包接收下來
{
int?i;
unsigned?char?REC_END;
//unsigned?long?CAN_LENTH_ADDR?=?5;
//long?TEMP_LEN;
REC_END?=?0;
//unsigned?long?Prog_Addr_Data[4];
//unsigned?long?Prog_Once_Data_Len;//這個變量放在這個地方作為局部變量就不可以,后面研究下
Seg_Whole?=?ucRXMsgData[1];
if(Seg_Flag?==?0x01)??//開始幀
{
if(Seg_Num?==?0x00)??//段開始號必須為0
????{
???? for(i?=?0;i?6;?i++)
????????{
???? CAN_Packet[i]?=?ucRXMsgData[i+2];
????????}
???? Prog_Once_Data_Len= CAN_Packet[5];
???? ucTXMsgData[1]?=?0x02; //發送下一幀
????}
????else?//非零的任何數,均錯誤
????{
???? ucTXMsgData[1]?=?0x01; //重新發送本包開始幀
????}
ucTXMsgData[0]?=?Prog_DownLoadD_ID;//請求下一幀
Flash_TX_EN?=?1;
}
else?if(Seg_Flag?==?0x02)???//中間幀//不管如何接收完成數據包,這個地方還可改進,加強校驗機制,
{
for(i?=?0;i?6;?i++)
{
CAN_Packet[6?*?Seg_Num?+?i]?=?ucRXMsgData[i+2];
}
ucTXMsgData[0]?=?Prog_DownLoadD_ID;
ucTXMsgData[1]?=?0x02;
Flash_TX_EN?=?1;
}
e
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????552??2016-09-30?21:09??28335SCI_Update_Flash\.ccsproject
?????文件??????22557??2016-09-25?19:22??28335SCI_Update_Flash\.cproject
?????文件??????12263??2016-10-08?00:16??28335SCI_Update_Flash\.launches\28335SCI_Update_Flash.launch
?????文件???????2586??2016-09-04?20:38??28335SCI_Update_Flash\.project
?????文件?????????62??2016-09-30?21:09??28335SCI_Update_Flash\.settings\org.eclipse.cdt.codan.core.prefs
?????文件????????218??2016-09-17?23:17??28335SCI_Update_Flash\.settings\org.eclipse.cdt.core.prefs
?????文件????????123??2013-07-05?16:25??28335SCI_Update_Flash\.settings\org.eclipse.cdt.debug.core.prefs
?????文件????????684??2016-01-05?17:49??28335SCI_Update_Flash\.settings\org.eclipse.core.resources.prefs
?????文件???????6393??2013-06-28?17:19??28335SCI_Update_Flash\28027_RAM_lnk.cmd
?????文件???????6915??2016-10-07?20:53??28335SCI_Update_Flash\Boot_Can.c
?????文件???????4350??2016-10-08?22:43??28335SCI_Update_Flash\Boot_Can.h
?????文件??????25234??2016-10-08?22:43??28335SCI_Update_Flash\Debug\28335SCI_Update_Flash.hex
?????文件??????42164??2016-10-08?22:43??28335SCI_Update_Flash\Debug\28335SCI_Update_Flash.map
?????文件?????174929??2016-10-08?22:43??28335SCI_Update_Flash\Debug\28335SCI_Update_Flash.out
?????文件?????189200??2016-10-08?22:43??28335SCI_Update_Flash\Debug\28335SCI_Update_Flash_li
?????文件??????16305??2016-10-08?22:43??28335SCI_Update_Flash\Debug\Boot_Can.obj
?????文件???????3945??2016-10-08?22:43??28335SCI_Update_Flash\Debug\Boot_Can.pp
?????文件????????671??2016-10-08?22:43??28335SCI_Update_Flash\Debug\ccsObjs.opt
?????文件???????5760??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_CpuTimers.obj
?????文件???????4929??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_CpuTimers.pp
?????文件??????28473??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_DefaultIsr.obj
?????文件???????4957??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_DefaultIsr.pp
?????文件????????289??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_headers\cmd\subdir_rules.mk
?????文件????????363??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_headers\cmd\subdir_vars.mk
?????文件?????122038??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_headers\source\DSP2833x_GlobalVariableDefs.obj
?????文件???????4463??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_headers\source\DSP2833x_GlobalVariableDefs.pp
?????文件???????1210??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_headers\source\subdir_rules.mk
?????文件????????754??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_headers\source\subdir_vars.mk
?????文件???????2655??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_MemCopy.obj
?????文件???????3693??2016-10-08?22:43??28335SCI_Update_Flash\Debug\DSP2833x_MemCopy.pp
............此處省略97個文件信息
- 上一篇:仿微信支付頁面html
- 下一篇:html彈窗頁面19種
評論
共有 條評論