硬件平台:AC78013MDQA (由于与AC78013FDLA 都是128K内存,所以程序可以从AC78013FDLA 修改而来)
软件平台:keil 5
由于AC78013MDQA没有开发板,所以自已画了板子,经验证功能没有问题,由于公司保密,所以不能提供实物图。
由于附件资料大,无法上传。可到百度网盘下载:
https://pan.baidu.com/s/14FVAhhY3fu3YJJFaRaKLnw
提取码:g9fg
BOOT说明:
Bootloader :20K 0x00000--0x05000
APP: 100K 0x05000--0x1E000
APP_EEPROM数据:6K 0x1E000--0x1F800
Bootloader数据:2K 0x1F800--0x20000
APP说明:
LIN主机ID:0x0A,当接收到主机发出的数据后,MCU接收到数据,PB2引脚LED取反。
LIN从机ID:0x20。主机可以读取该ID,验证APP是否正常烧录。
诊断ID:0x3C
诊断ID:0x3D
BOOT软件复位ID:0x3E,主机通过发送复位指令,使MCU复位后进入BOOT程序。
APP程序需添加如下代码:
if((Slave_Filter_Channel-1)==4) //接收 BOOT软件复位 0x3E
{
if((Slave_Channel_Data[(Slave_Filter_Channel-1)][6] == 0x67)
&&(Slave_Channel_Data[(Slave_Filter_Channel-1)][7] == 0x6F)
&&(Slave_Channel_Data[(Slave_Filter_Channel-1)][8] == 0x72)
&&(Slave_Channel_Data[(Slave_Filter_Channel-1)][9] == 0x65)
&&(Slave_Channel_Data[(Slave_Filter_Channel-1)][10] == 0x73)
&&(Slave_Channel_Data[(Slave_Filter_Channel-1)][11] == 0x65)
&&(Slave_Channel_Data[(Slave_Filter_Channel-1)][12] == 0x74)
&&(Slave_Channel_Data[(Slave_Filter_Channel-1)][13] == 0x00))
{
RX_3E_cnt=(RX_3E_cnt+1); //升级APP指令 计数变量加1
if(RX_3E_cnt>=3)
{
RX_3E_cnt=0; //清0 升级APP指令 计数变量
DisableInterrupts //关全局中断
//TIMER_DeInit(); //关闭所有定时器
Disable_UART_LIN(); //禁用 软件LIN
mdelay(3); //待编程稳定 EFlash_Erase(0x1F800); //擦除 Bootloader 数据
mdelay(3); //待编程稳定
EnableInterrupts //最后 开全局中断
NVIC_SystemReset(); //执行软件复位语句 }
else
{
RX_3E_cnt=0; //清0 升级APP指令 计数变量
}
}
}
第一步:
先将Bootloader 程序烧录到MCU中。使用JLink烧录,这个过于简单,这里不再说明。
第二步。烧录APP程序。
第三步:
验证是否烧录成功?
|