资源简介

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 < Flash_WR_Lenth + 6;i++)//1-261为数据字节
{
   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_linkInfo.xml

     文件      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个文件信息

评论

共有 条评论