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

    文章

    7768

    浏览量

    152966
  • 处理器
    +关注

    关注

    68

    文章

    19594

    浏览量

    232188
  • 控制器
    +关注

    关注

    113

    文章

    16714

    浏览量

    180892
收藏 人收藏

    相关推荐

    MAXQ7665,MAXQ7665A, MAXQ7665B

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

    MAXQ7665C, MAXQ7665D pdf datas

    The MAXQ7665AMAXQ7665D smart systems-on-a-chip (SoC) are data-acquisition systems based on a
    发表于 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 1161次阅读
    如何使用的<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'>MAXQ7665A</b>-Ho

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

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

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

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

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

    检查是否存在上传请求。如果有,它将上传新固件并将其编程到闪存中。这是一个复杂且耗时的过程,但不用担心,我们通过 MPLAB® 代码配置器 (MCC) 中提供引导加载
    的头像 发表于 05-06 10:55 1541次阅读

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

    用户应用程序可以实现自己的引导加载程序,提供一个用于现场自我更新的机制。实现自己的用户
    的头像 发表于 06-16 16:31 1185次阅读
    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 1780次阅读

    AWR294x主引导加载程序和辅助引导加载程序

    电子发烧友网站提供《AWR294x主引导加载程序和辅助引导加载程序.pdf》资料免费下载
    发表于 09-06 09:47 0次下载
    AWR294x主<b class='flag-5'>引导</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'>程序</b>

    Keystone II器件上使用Arm ROM引导加载程序

    电子发烧友网站提供《Keystone II器件上使用Arm ROM引导加载程序.pdf》资料免费下载
    发表于 09-19 12:33 0次下载
    <b class='flag-5'>在</b>Keystone II器件上使用Arm ROM<b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>程序</b>

    使用AM18xx引导加载程序

    电子发烧友网站提供《使用AM18xx引导加载程序.pdf》资料免费下载
    发表于 09-19 11:01 0次下载
    使用AM18xx<b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>程序</b>

    用于Hercules微控制器的CAN总线引导加载程序

    电子发烧友网站提供《用于Hercules微控制器的CAN总线引导加载程序.pdf》资料免费下载
    发表于 09-19 10:52 0次下载
    用于Hercules微控制器的<b class='flag-5'>CAN</b>总线<b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>程序</b>

    用于Hercules微控制器的CAN总线引导加载程序

    电子发烧友网站提供《用于Hercules微控制器的CAN总线引导加载程序.pdf》资料免费下载
    发表于 09-19 10:55 0次下载
    用于Hercules微控制器的<b class='flag-5'>CAN</b>总线<b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>程序</b>

    使用AM17xx引导加载程序

    电子发烧友网站提供《使用AM17xx引导加载程序.pdf》资料免费下载
    发表于 10-14 11:31 0次下载
    使用AM17xx<b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>程序</b>

    Stellaris引导加载程序用户指南

    电子发烧友网站提供《Stellaris引导加载程序用户指南.pdf》资料免费下载
    发表于 12-23 16:24 0次下载
    Stellaris<b class='flag-5'>引导</b><b class='flag-5'>加载</b><b class='flag-5'>程序</b><b class='flag-5'>用户</b>指南