STM32F429实现rt_thread的bootloader

OTA是固件管理,升级的主要工具,为了更方便的完成OTA升级,rt_thread官方提供了通用bootloader。

bootloader是什么?

Bootloader是嵌入式系统在加电后执行的第一段代码,通过这段小程序,进行硬件初始化,获取内存大小信息等,调整手机到适配状态。在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行 。
rt_thread提供的通用Bootloader 的主要功能是更新 app 分区中的固件。

使用通用bootloader应该注意什么?

rt_thread官方提供了非常详细的教程,参考:
https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/application-note/system/rtboot/an0028-rtboot?id=stm32-%e9%80%9a%e7%94%a8-bootloader
通用bootloader分区表包含如下三个分区。
在这里插入图片描述
首先我们要明确分区的位置,我们采用的STM32F429VET6系列单片机,单片机的片内FLASH(RAM)大小为512kb,
器件flash大小如图:在这里插入图片描述
下载程序大小为:
在这里插入图片描述
约为309k,因为STM32F4系列芯片前128k默认分配给bootloader程序,能够使用的空间为384kb。所以我们选择了片外spi-flash作为download区,片内flash作为app区。

分区表的配置

使用bootloader重点是配置分区表和固件一致,bootload固件分区我们设置为:
在这里插入图片描述
stm32f4系列片内flash出厂分区为
在这里插入图片描述

/*
 * Copyright (c) 2006-2018, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2018-05-17     armink       the first version
 */

#ifndef _FAL_CFG_H_
#define _FAL_CFG_H_

#include <rtconfig.h>
#include <board.h>

/* ===================== Flash device Configuration ========================= */
extern struct fal_flash_dev nor_flash0;

/* flash device table */
#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  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值