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

    浏览量

    10452
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    变频器线制和三线制接线的区别

    在工业自动化控制系统中,变频器的接线方式直接影响设备运行的稳定性和安全性。其中,线制和三线制是种典型的控制接线模式,其区别主要体现在信号传输方式、抗干扰能力以及应用场景等方面。以下
    的头像 发表于 12-08 07:35 191次阅读
    变频器<b class='flag-5'>两</b><b class='flag-5'>线</b>制和三<b class='flag-5'>线</b>制接线的区别

    Bootloader固件升级的步骤

    BootLoader 就是用来管理单片机程序的更新。 3、在实际的单片机工程项目中,如果加入了 BootLoader 功能,就可以给单片机后面升级程序留出一个接口,方便之后的单片机程序更新
    发表于 11-19 07:41

    MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录

    请问MPLAB X IDE 中怎么设置bootloader和应用程序的起始地址和大小,不然默认从0开始烧录
    发表于 10-24 16:42

    bootloader无法更新的原因?

    bootloader下载新的固件后,重启在download区搬新的固件时,就出现地址错误是怎么回事
    发表于 10-11 06:07

    电阻测量技术的双生花:线法与四线法的科学探秘

    。这场微观世界的战役中,线法与四线法如同矛与盾的博弈,共同书写着人类对精准测量的永恒追求。青铜时代的智慧:线法的朴素哲学欧姆定律的原始实
    的头像 发表于 09-15 09:56 1230次阅读
    电阻测量技术的双生花:<b class='flag-5'>两</b><b class='flag-5'>线</b>法与四<b class='flag-5'>线</b>法的科学探秘

    飞凌嵌入式ElfBoard ELF 1板卡-Uboot简介之BootLoader

    BootLoader是什么,从名字上来看,BootLoader由boot和loader部分组成,这也是它的主要的个功能。boot主要是指初始化一些系统的硬件并建立内存映射图,为内核
    发表于 05-22 10:42

    光纤线怎么合一光纤

    根光纤线合并为一根光纤线,通常称为光纤熔接或光纤耦合,主要目的是将根光纤的光信号无缝连接,以实现信号的连续传输。以下是常见的方法及步骤: 一、光纤熔接法(主流方法) 原理: 通过
    的头像 发表于 05-20 11:15 2381次阅读

    U-Boot 和 Bootloader,99% 的工程师都分不清?

    嵌入式软件工程师听说过 u-boot 和 bootloader,但很多工程师依然不知道他们到底是啥。   今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别
    的头像 发表于 03-25 20:47 1428次阅读

    求助,关于STM32串口Bootloader个问题求解

    串口Bootloader个问题: 1.APP和Bootloader中对于串口的初始化以及中断处理函数的定义是否需要保持一致,特别是有关接收和发送的缓冲区? 2.Bootloader
    发表于 03-12 07:17

    自定义RISC V的bootloader-v3

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

    PMSM电机编码器线数为80000线,超过MCSDK5.4.8软件所能设置的最大线数65535,如何解决?

    本项目所采用的PMSM电机自带编码器为80000线,而软件所能设置的最大线数,导致生成的工程无法驱动项目电机。 现象为: 点击编码器对齐后,再电机启动电机,电机会快速来回摆动,最终停下,但是力矩一致存在。
    发表于 03-10 08:19

    京准电钟:NTP网络时间服务器如何设置?教您简单步法

    京准电钟:NTP网络时间服务器如何设置?教您简单步法
    的头像 发表于 02-24 09:40 1099次阅读
    京准电钟:NTP网络时间服务器如何<b class='flag-5'>设置</b>?教您简单<b class='flag-5'>两</b>步法

    DLP3010 evm触发相机的话,需要连接J4的哪线

    DLP3010 evm 触发相机的话, 需要连接J4的哪线? 其他的接口需要设置吗 地线和触发输出线是哪根?
    发表于 02-20 06:36

    磁致伸缩位移传感器电流线制三线制四线制介绍

    磁致伸缩位移传感器电流输出方式有线制、三线制、四线制,分别适用于短距简单、中等精度、长距高精度应用,选择合适配置可提升系统性能和稳定性。
    的头像 发表于 02-11 10:29 1293次阅读
    磁致伸缩位移传感器电流<b class='flag-5'>两</b><b class='flag-5'>线</b>制三<b class='flag-5'>线</b>制四<b class='flag-5'>线</b>制介绍

    ​大电流走线不顺怎么解决

    虽然工程师很少撞见关于大电流的电路设计,但如果碰见了,其走线是需要耗费许多心血,若是走线处理不当,很容易导致发热、电阻增大甚至线路烧毁等,需要采取具体措施解决! 01设置焊盘属性走
    的头像 发表于 01-09 17:38 733次阅读