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

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

3天内不再提示

两线bootloader工程设置

电子设计 来源:网友电子设计发布 作者:网友电子设计发布 2021-12-29 14:06 次阅读

CC1310是TI Simplelink MCU系列中支持Sub-1G的SOC.针对很多客户需要串口进行固件升级的应用需求,CC1310内置了基于ROM的bootloader, 该bootloader支持UART和SPI两种接口.详细信息可参考TI CC1310的用户指南(http://www.ti.com/lit/pdf/swcu117) 以及TI应用文档SWRA466A, CC2538/CC26xx Serial Bootloader Interface (http://www.ti.com/cn/lit/swra466)。传统的bootloader至少需要三跟连线,这篇博客主要介绍如何实现两线bootloader并基于TI Flash Programmer 2(http://www.ti.com/tool/flash-programmer)工具和CC1310 Launchpad(LAUNCHXL-CC1310)评估板对芯片实现UART的固件烧写。

两线bootloader工程设置

CC1310 三线bootloader如下图左,除了串口的两根连线外,还需要一个专门的I/O进行启动模式的控制。针对很多客户产品只有一个对外的串口接口,提出了下图右的两线Bootloader方式,这个方式将BOOT_IO 与CC1310的UART RX复合使用。

如下图BOOTLOADER的串口配置所示,UART和SPI的口是固定的I/O, 不能设置其他的I/O。CC1310 Launchpad 使用的是7*7 RGZ的封装,下面我们需要设置BOOT_IO

BOOT_IO的设置在ccfg.c文件中,需要配置两个宏,一个是有效触发电平, 一个是DIO的编号。我们将有效触发电平设置成高有效,BOOT_IO设置为DIO3。修改如下代码。同时,为了使能Bootloader功能,需要定义下面两个宏SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE和SET_CCFG_BL_CONFIG_BL_ENABLE为0xC5

#defineSET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5

#defineSET_CCFG_BL_CONFIG_BL_LEVEL 0x0 // Active low to open boot loader backdoor

#defineSET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0x02 // DIO number for boot loader backdoor

#defineSET_CCFG_BL_CONFIG_BL_ENABLE 0xC5

编译,烧写固件。

编译生成目标升级Bin固件

这里以TI的CC1310 SDK的pwmled_CC1310_LAUNCHXL_tirtos_ccs例程,编译需要升级的固件。有两个地方需要设置,一个是设置ARM Hex Utility中的memory width和rom width为8,一个是Build, Step中的post build添加,${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.bin ${CG_TOOL_ROOT}/bin/armofd.exe ${CG_TOOL_ROOT}/bin/armhex.exe ${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe

设置生成bin文件。 如下图。

编译工程,得到pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin

通过Flash Programmer2对目标芯片完成两线串口Bootloader烧写

应用文档SWRA466A中,对应的提供了一个命令行小程序sblAppEx,用于固件升级,因为程序编译较早,有些版本运行会出错。而很多用户不知道的,Flash Programmer2 具有通过串口进行固件烧写的功能。下面, 具体介绍用Flash Programmer2进行串口固件升级的具体操作如下:

1. 按照图X所示,连接UART口和BOOT IO口, BOOT IO (即DIO2) 接低点平, 复位系统. 由于我们设置的是低点平进入Bootloader状态,复位后,芯片进入ROM Bootloader模式

2. 在Flash Programmer2 的左上角 Connected devices中,选择XDS110 Class Application, Unknown (这是CC1310 Launchpad自带的UART口,如果是你自己的串口,也可以在这里看到)

3. 选择好Unknown后,在左下脚的Select Target Device… 下拉菜单中选择对应型号CC1310F128

4. 选择好芯片好. 右键, 选择Connect, 与目标芯片建立UART通信, 如下图

5. 选择需要升级的固件BIN文件, 这里选取之前步骤生成的pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin文件

6. 升级成功后,可以从Flash Programmer最下方的状态窗口看到更新

7. Dd

至此,我们就实现了两线Bootloader

审核编辑:何安

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

    关注

    0

    文章

    341

    浏览量

    9997
收藏 人收藏

    评论

    相关推荐

    自定义RISC V的bootloader-v2

    在生成SoC时,会生成一个预定义bootloader .bin文件,用于指定soc的工程运行的地址,这包括在flash的存储地址 ,加载到外存中的运行地址及在外存中分配的存储空间的大小 。下面我们
    的头像 发表于 10-31 12:37 518次阅读
    自定义RISC V的<b class='flag-5'>bootloader</b>-v2

    阻抗匹配计算和差分走线设置

    ad,cadense 阻抗匹配计算和差分走线设置
    发表于 10-17 16:59 1次下载

    ad如何设置个元器件的距离

    在Altium Designer(简称AD)中设置个元器件之间的距离,主要是通过设置元器件间的安全间距(Clearance)规则来实现的。这个规则定义了元器件之间、元器件与走线之间以
    的头像 发表于 09-02 15:31 5023次阅读

    磁性开关线和三线怎么互接

    磁性开关,又称为磁簧开关或霍尔开关,是一种利用磁场的变化来控制电路通断的电子元件。它广泛应用于各种自动控制、安全保护、位置检测等领域。磁性开关根据其引脚数量的不同,可以分为线式和三线
    的头像 发表于 08-26 15:24 1691次阅读

    磁性开关线制和三线制区别在哪

    磁性开关是一种常见的传感器,广泛应用于工业自动化、智能建筑、安防系统等领域。磁性开关按照接线方式的不同,可以分为线制和三线种类型。下面将介绍磁性开关
    的头像 发表于 08-26 15:14 2019次阅读

    如何才能将Bootloader和Application关联起来

    接下来,我们要利用该Bootloader调试目标Application Project,如何才能将Bootloader和Application关联起来呢?就需要借助刚才提到的Bootloader Project Build所生成
    的头像 发表于 06-12 14:32 609次阅读
    如何才能将<b class='flag-5'>Bootloader</b>和Application关联起来

    BGA扇孔的规则设置

    过孔间过线:用8-18的孔,线宽4mil,线线4mil,线到孔盘4.6mli;(如需过一对差分线需BGA中的线宽及间距
    的头像 发表于 03-28 09:25 572次阅读

    STM32L431RCT6从用户代码区跳转使用内置system memory bootloader无效怎么解决?

    ); /* 在RTOS工程,这条语句很重要,设置为特权级模式,使用MSP指针 */ __set_CONTROL(0); /* 跳转到系统BootLoader */ SysMemBootJump
    发表于 03-26 07:54

    bootloader设置APP在0x08020000为开始地址,编译报错怎么解决?

    bootloader设置APP在0x08020000为开始地址,但是编译报错。同时如何在IDE中设置调试debug地址和相关设置,谢谢大师们解答
    发表于 03-13 06:43

    STM32案例:BootLoader是怎么跳到App

    BootLoader项目程序和App项目程序是分开的,所以需要分别搭建对应的项目工程文件,分开搭建文件是为了好配置,同时也是方便对项目进行管理。
    发表于 03-04 09:35 3900次阅读
    STM32案例:<b class='flag-5'>BootLoader</b>是怎么跳到App

    STM32无法进入片上Bootloader的处理方法

    STM32无法进入片上Bootloader的处理方法  当STM32芯片无法进入片上Bootloader时,我们需要采取一系列的处理方法来解决这个问题。以下将详细介绍一些常见的处理方法。 1.编程器
    的头像 发表于 02-02 14:33 1934次阅读

    在PSoC4000的UART Bootloader中不能将引导加载程序时钟资源设置为extCLK吗?

    我们对 Bootloader 项目中的 extCLK 时钟设置有疑问。 我们在 PSoC Creator 4.4 IDE 中使用具有 UART 引导加载程序配置
    发表于 01-22 06:52

    RZ Loader APP工程修改方法

    由于RZ工程正常启动时,代码分成LDR部分和user部分,所以Bootloader可以分别对Application以上2部分进行加载,在Bootloader工程里里复制applicat
    的头像 发表于 01-09 12:08 527次阅读
    RZ Loader APP<b class='flag-5'>工程</b>修改方法

    pcb走线的规则设置方法介绍

    随着电子产品的迅速发展,PCB(Printed Circuit Board)在电子设计中扮演着重要的角色。设计PCB走线时,合理设置规则是确保电路在安全、稳定、高效工作的基础。本文将详细介绍PCB走
    的头像 发表于 01-09 10:45 2440次阅读

    芯知识 | 语音芯片支持一线串口和线串口的作用与应用优势

    随着科技的不断进步,语音芯片作为现代电子产品中的核心组件,其功能和性能也在不断提升。其中,语音芯片支持一线串口和线串口的功能,在实际应用中具有重要的作用和优势。首先,让我们了解一线
    的头像 发表于 12-20 08:39 688次阅读
    芯知识 | 语音芯片支持一<b class='flag-5'>线</b>串口和<b class='flag-5'>两</b><b class='flag-5'>线</b>串口的作用与应用优势