[资源分享] AC78013FDLA LIN从机Bootloader

[复制链接]
490|2
手机看帖
扫描二维码
随时随地手机跟帖
小章鱼仔|  楼主 | 2022-5-22 22:04 | 显示全部楼层 |阅读模式
硬件平台:AC78013FDLA通用开发板
软件平台:keil 5

由于附件资料大,无法上传。可到百度网盘下载:
https://pan.baidu.com/s/1n7zNTr5jwPbW67aMJ2wFag
提取码:psm4

91560628a41a150e58.png
74166628a41abedf55.png

BOOT说明:
Bootloader :20K 0x00000--0x05000   
APP: 100K   0x05000--0x1E000                                                             
APP_EEPROM数据:6K 0x1E000--0x1F800  
Bootloader数据:2K 0x1F800--0x20000       

APP说明:
LIN主机ID0x0A,当接收到主机发出的数据后,LED取反
LIN从机ID0x20。主机可以读取该ID,验证APP是否正常烧录。
诊断ID0x3C
诊断ID0x3D
BOOT软件复位ID0x3E,主机通过发送复位指令,使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程序。
68066628a41cac750f.png

48171628a41d62b0a7.png

第三步:
验证是否烧录成功?
22013628a41dfd340b.png

42040628a41e78fe8b.png




使用特权

评论回复
七毛钱| | 2022-6-7 15:57 | 显示全部楼层
感谢分享,学习学习

使用特权

评论回复
chenqianqian| | 2022-6-7 19:18 | 显示全部楼层
谢谢分享,空了也研究一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则