基于rtthread studio的STM32F407OTA升级(ymodem篇)

基于rtthread studio的STM32F407OTA升级(ymodem篇)

0、部分电路图

image-20211104164230283

1、在线生成Bootloader

官方参考地址

在线生成地址

1553247249515

1553247299946

1553247372693

1553247497496

image-20211104170850907

提示:

1M = 1024kB = 8 * 128 kB
128kB = 0x20000

此处,我将ROM按以下分区,大家可根据实际情况自行划分

未命名绘图.drawio

按照上面分析,分区表配置为

image-20211105143136163

1553673658407

2、烧录BootLoader

2.1、擦除芯片

image-20211105143406163

2.2、烧录boot

image-20211105143631220

2.3、烧录结束串口打印

image-20211105144852664

3、配置工程

3.1、创建工程

image-20211104164343273

3.2、配置cubemx

image-20211105145550578

3.3、添加组件包

image-20211105145739653

image-20211105145844062

image-20211105161113149

3.4、修改board.h

image-20211105150132226

3.5、配置FAL文件

3.5.1、初始化Fal

image-20211105151010119

3.5.2、新增/修改fal_cfg.h文件

image-20211105150640151

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-11-05     YPD       the first version
 */
#ifndef PACKAGES_FAL_V0_5_0_INC_FAL_CFG_H_
#define PACKAGES_FAL_V0_5_0_INC_FAL_CFG_H_

#include <rtthread.h>
#include "board.h"

#define FLASH_SIZE_GRANULARITY_16K   (4 * 16 * 1024)
#define FLASH_SIZE_GRANULARITY_64K   (64 * 1024)
#define FLASH_SIZE_GRANULARITY_128K  (7 * 128 * 1024)

#define STM32_FLASH_START_ADRESS_16K  STM32_FLASH_START_ADRESS
#define STM32_FLASH_START_ADRESS_64K  (STM32_FLASH_START_ADRESS_16K + FLASH_SIZE_GRANULARITY_16K)
#define STM32_FLASH_START_ADRESS_128K (STM32_FLASH_START_ADRESS_64K + FLASH_SIZE_GRANULARITY_64K)

extern const struct fal_flash_dev stm32_onchip_flash_16k;
extern const struct fal_flash_dev stm32_onchip_flash_64k;
extern const struct fal_flash_dev stm32_onchip_flash_128k;
/* flash device table */
#define FAL_FLASH_DEV_TABLE                                          \
{                                                                    \
    &stm32_onchip_flash_128k,                                        \
}
/* ====================== Partition Configuration ========================== */
#ifdef FAL_PART_HAS_TABLE_CFG

/* partition table */
#define FAL_PART_TABLE                                                                                                     \
{                                                                                                                          \
    {FAL_PART_MAGIC_WROD, "app",     "onchip_flash_128k", 0 ,           (3*128*1024), 0}, \
    {FAL_PART_MAGIC_WROD, "download","onchip_flash_128k", (3*128*1024), (4*128*1024), 0}, \
}


#endif /* FAL_PART_HAS_TABLE_CFG */

#endif /* PACKAGES_FAL_V0_5_0_INC_FAL_CFG_H_ */

image-20211105151726200

3.6、修改 app 固件配置

3.6.1、修改中断向量表的跳转基地址为 0x8020000。
#define RT_APP_PART_ADDR 0x8020000

static int ota_app_vtor_reconfig(void)
{
    #define NVIC_VTOR_MASK   0x3FFFFF80
    /* Set the Vector Table base location by user application firmware definition */
    SCB->VTOR = RT_APP_PART_ADDR & NVIC_VTOR_MASK;

    return 0;
}
INIT_BOARD_EXPORT(ota_app_vtor_reconfig);

image-20211105152923669

3.6.2、修改app固件连接地址

image-20211105153204757

3.7、编译下载

image-20211105161627134

3.8、编译新固件

image-20211105162003553

3.9、打包.rbl文件

image-20211105161440848

image-20211105162424170

4、通过ymodem进行升级

此处使用的是secureCRT工具

image-20211105163018557

image-20211105163153517

image-20211105163422482

### 下载并配置 RT-Thread 的 DAP 工具或固件 #### 一、RT-Thread Studio 安装与环境准备 为了使用 RT-Thread 的调试功能,首先需要安装 RT-Thread Studio 开发工具。该工具提供了集成化的开发环境和支持多种硬件平台的调试能力[^1]。 可以通过以下步骤完成安装: 1. 访问官方网站下载页面获取最新版本的 RT-Thread Studio。 2. 根据操作系统选择对应的安装包,并按照提示完成安装过程。 3. 启动 RT-Thread Studio 并设置工作空间路径。 #### 二、DAP 调试工具的选择与连接 对于基于 ARM Cortex-M 架构的目标板(如 STM32F4),通常会使用支持 SWD 或 JTAG 接口的调试探针设备来实现程序烧录和在线调试。常见的 DAP 工具有 ST-LINK 和 GD-Link 编程器等。 ##### 使用 ST-LINK 进行调试 STMicroelectronics 提供了官方的 ST-LINK/V2 调试适配器,适用于大多数 STM32 系列微控制器。确保已正确安装驱动程序并与目标板建立物理连接后,在 RT-Thread Studio 中配置如下选项: - **Debug Configuration**: 打开项目属性对话框,进入 Debug 配置界面。 - 设置 Debugger 类型为 `OpenOCD` 或者直接利用内置的支持。 - 指定接口参数,例如频率设为默认值即可满足一般需求。 如果计划通过串口 YModem 协议更新固件,则需额外参考相关文档说明操作流程[^2]。 ##### 使用 GD-Link 编程器 针对某些国产 MCU 厂商的产品线,可以选择兼容性良好的 GD-Link 编程器作为替代方案之一。具体做法包括但不限于以下几个方面: - 到指定网址 http://www.gd32mcu.com/cn/download/7 获取最新的 GD-Link Programmer 应用程序及其配套文件[^3]; - 解压压缩包并将可执行文件加入 PATH 变量以便命令行调用方便快捷; - 在实际部署前验证通信链路状态良好无误. #### 三、加载 Bootloader 文件至目标芯片内部 Flash 存储区 无论是采用哪种类型的调试桥接装置,都需要事先准备好相应的启动引导程序(BootLoader).这一步骤旨在允许后续阶段无需借助外部硬件就能顺利完成空中传输OTA升级等功能扩展. 以 STM32F4xx 系列为例子讲解如何创建自定义版别的通用型 BootLoader 实现方法. 最后提醒一下开发者们注意保护好个人隐私数据安全的同时也要遵循开源社区贡献准则分享自己的成果给更多的人学习交流进步! ```bash # 示例:检查GD-Link是否正常识别设备 gdlink_programmer --list-devices ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值