0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用CAN引导加载程序在MAXQ7665A中加载用户应用代码

星星科技指导员 来源:ADI 作者:ADI 2023-02-21 16:40 次阅读

CAN引导加载程序可通过CAN接口对MAXQ7665A微控制器进行编程。引导加载程序还可帮助设计人员更新/修改已在现场部署的产品的用户应用程序代码

CAN引导加载程序提供了一种写入、读取和擦除程序闪存的预定义部分的方法,该部分通常保存用户应用程序代码。用户应用代码位于MAXQ0A的4000x0至7x7665FFF处。

两个单独编译的模块,CAN引导加载程序和用户应用程序代码,在MAXQ程序存储器中运行。这些代码段是单独存在的,彼此完全未知。这些模块通过已知的内存空间相互通信。®

本应用笔记的读者应该熟悉MAXQ7665A处理器(64kB程序闪存)、CAN控制器和用于MAXQ的IAR嵌入式工作台。

MAXQ7665A的CAN引导加载程序代码和用户应用代码示例(ZIP)均提供。

MAXQ7665A CAN引导加载程序

与IAR cstartup模块一样,CAN引导加载程序通过JTAG端口构建并加载到程序存储器的下部0x0000。此代码在位置0x55FFF地址处搜索标志值 0x7AB。如果代码找到该标志,CAN引导加载程序将在0x4000跳转到用户应用程序代码。如果未找到此标志,CAN引导加载程序将调用函数enter_loader( )并等待传入的CAN报文。

此时,全局中断被禁用,因为在代码初始化期间清除了IC(中断和控制)寄存器中的IGE位。因此,CAN引导加载程序轮询IIR(中断识别)寄存器和本地CAN标志以处理任何传入的消息。CAN 引导加载程序使用消息中心 1 来处理传入消息;消息中心 2 用于处理传出消息。(有关这些特定命令,请参阅附录 A 中的 CAN 引导加载程序协议。

接下来的几个步骤解释了CAN引导加载程序和用户代码的加载顺序。还显示了CAN引导加载程序的操作和用户代码。

步骤1:将CAN引导加载程序加载到程序存储器的下部(图1)。

pYYBAGP0g4OANqI2AAAhCDHjnYw176.gif?imgver=1

图1.CAN引导加载程序通过JTAG端口加载。

使用CAN引导加载程序在MAXQ7665A中加载用户应用代码

修改 IAR 链接器文件 (.xcl) 和 IAR cstartup 模块,以便用户应用程序代码驻留在地址 0x4000 并从地址执行。Maxim在此处提供了修改后的链接器和修改后的cstartup文件(ZIP)。CAN引导加载程序加载用户应用程序代码,之后主机系统发送“加载完成”命令(0x07)。当CAN引导加载程序收到加载完成命令时,它会将0x55AB置于代码空间中的0x7FFF。

步骤 2:加载用户应用程序代码(图 2)。

poYBAGP0g4SAR1zpAAAtruMoPSU593.gif?imgver=1

图2.用户应用程序代码现在通过CAN引导加载程序加载。CAN引导加载程序检查0x7FFF(字)地址的有效标志:(0x55AB)。如果该标志无效,CAN引导加载程序代码将循环并等待传入消息。收到有效消息后,CAN引导加载程序会响应一条消息。在此状态下,可以在0x4000加载用户应用程序代码。

步骤 3:重置后,用户应用程序最终加载并运行(图 3)。

pYYBAGP0g4eAKuVDAAAkcGpne9Y794.gif?imgver=1

图3.CAN引导加载程序检查0x7FFF(字)地址的有效标志:0x55AB。如果该标志有效,则代码将跳转到0x4000以运行用户应用程序代码。

重新加载/更新用户应用程序代码

可能需要将新的用户应用代码重新加载/更新到MAXQ7665A中。为了适应这种情况,可以通过调用函数 EnterLoader( ) 从用户应用程序代码中输入 CAN 引导加载程序。此时,CAN引导加载程序等待CAN报文。图 4 说明了该过程。

poYBAGP0g4iAUjWBAABVZ0sba5U213.gif?imgver=1

图4.流程图显示了当有效标志0x55AB设置为0x7FFF字节地址时如何调用CAN引导加载程序。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6740

    浏览量

    147388
  • 处理器
    +关注

    关注

    68

    文章

    18032

    浏览量

    221547
  • 控制器
    +关注

    关注

    112

    文章

    15029

    浏览量

    170344
收藏 人收藏

    评论

    相关推荐

    PIC24FJ引导加载程序和闪存编程问题

    用XP16版本1.26。ABX 3.35i有两个负载。如果我用一个ICD3用引导加载程序来编程它们,我的主映像都会加载和运行。如果我一个新
    发表于 03-25 07:39

    引导加载程序不运行

    闪存复制到内部PIC32区域。-然后,擦除BFM的2个第一页,然后从外部复制到BFM区域。BFM的这两个第一页包含用于启动的新的向量跳转)因此BFM的第3页(包含我的引导加载程序代码和CONFIG位
    发表于 09-05 09:54

    怎么构建基于Harmony的引导加载程序

    关于构建一个和声示例项目的引导加载程序,我有两个问题。协调配置中的一个选项是构建引导加载程序和链
    发表于 04-01 09:55

    RS-485总线如何引导加载程序

    嗨,我正在研究一个定制的RS-485总线引导加载程序相同的时间将用户应用程序上传到多个设备。
    发表于 04-29 09:43

    IAP引导加载程序中使用Jump_To_Application() 时MCU不再位于引导加载程序代码中怎么处理?

    ST社区您好!我正在使用 stm32F417VGT6 Keil IDE 中执行 IAP。引导加载程序中,使用 SD 卡上的二进制文件,
    发表于 01-04 06:28

    MAXQ7665,MAXQ7665A, MAXQ7665B

    The MAXQ7665,MAXQ7665A, MAXQ7665B smart systems-on-a-chip (SoC) are data-acquisition systems based
    发表于 01-22 16:23 32次下载

    MAXQ7665C, MAXQ7665D pdf datas

    The MAXQ7665AMAXQ7665D smart systems-on-a-chip (SoC) are data-acquisition systems based
    发表于 01-22 16:25 15次下载

    如何使用的CAN引导加载用户应用代码MAXQ7665A-Ho

    and the modifications needed to support the user application code on the MAXQ7665A microcontroller. OverviewThe CAN bootloader en
    发表于 04-23 16:18 941次阅读
    如何使用的<b class='flag-5'>CAN</b><b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>用户</b>应用<b class='flag-5'>代码</b><b class='flag-5'>MAXQ7665</b>A-Ho

    如何在树莓派4上安装新的引导加载程序

    引导加载程序加载操作系统的程序。在树莓派上,引导加载
    的头像 发表于 09-27 11:04 5306次阅读

    wolfBoot安全引导加载程序

      wolfBoot 安全引导加载程序 1.7.1 版在开源 GPLv2 许可下可用,可从www.wolfssl.com/download下载。wolfSSL 还在Github 上提供了许多 wolfBoot 示例。
    发表于 06-27 11:30 956次阅读

    使用新的引导加载程序对旧BadgerStick进行编程

    电子发烧友网站提供《使用新的引导加载程序对旧BadgerStick进行编程.zip》资料免费下载
    发表于 11-30 11:54 0次下载
    使用新的<b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>程序</b>对旧BadgerStick进行编程

    MAXQ2000微控制器实现JTAG自举加载程序主控

    通过使用一组标准化命令,MAXQ微控制器提供的JTAG引导加载程序允许外部JTAG主机轻松识别和编程任何MAXQ微控制器。
    的头像 发表于 02-21 11:22 734次阅读
    为<b class='flag-5'>MAXQ</b>2000微控制器实现JTAG自举<b class='flag-5'>加载</b><b class='flag-5'>程序</b>主控

    使用微控制器上的引导加载程序使您的嵌入式设计面向未来

    引导加载程序是一个程序,允许您通过许多方便的接口加载应用程序固件,如UART,
    的头像 发表于 05-06 10:55 918次阅读

    AN-2058: ADuCM355用户引导加载程序

    用户应用程序可以实现自己的引导加载程序,提供一个用于现场自我更新的机制。实现自己的用户
    的头像 发表于 06-16 16:31 517次阅读
    AN-2058: ADuCM355<b class='flag-5'>用户</b><b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>程序</b>

    车规MCU的启动加载程序是什么

    加载程序负责在MCU上启动和加载应用程序。它通过读取存储器中的引导加载
    的头像 发表于 10-27 17:26 1040次阅读