首页 > 其他分享 >使用Bootload升级相关的开发笔记

使用Bootload升级相关的开发笔记

时间:2024-10-11 17:17:42浏览次数:3  
标签:Bootload APP flash boot 笔记 fmc 升级 GD32 IAP

项目使用两款不同的芯片完成Boot到APP之间的升级,此处仅作为日常开发笔记。(作者忘性大)

1.GD32F403相关的boot升级 

要实现boot升级主要分为IAP和APP两部分程序。

IAP实际就是Boot相关的配置。

①首先创建一个工程,将GD32F403原先的flash改为0x4000大小(16K)。此时已经将IAP的大小配置为16K,存储位置在0X8000000-0X8004000。

②添加从Boot跳到APP的指令

JumpTOApp函数里的APP_ADDRESS为APP的开始地址,CONFIG_ADDRESS为预留的配置地址,可以存放自己程序需要的配置信息。

关闭全局中断是为了防止在跳转地址时,中断的运行导致寻址错误。

不管是GD32还是AC781都可以直接调用这个函数。

③完成芯片的读写flash操作

 2.AC781相关的boot升级

fmc_unlock();

fmc_page_erase();

fmc_lock();

都是GD32固件库里的函数

flash_program()函数中嵌套的fmc_word_program也是GD32固件库的函数。此函数实现GD32多字节写入flash的操作。

同理,写入完成后先测试是否写入正确。

④在主循环前添加升级标志位

此时已经写完boot到APP的升级demo。while里的内容主要是通讯APP相关传输的。

⑤更新完IAP的程序后,完成APP的相关配置

默认GD32为512K的内存,减去IAP占用的16K和配置区的4K后剩余492K(0X7B000)内存

添加使能全局中断和重映射向量表,APP_ADDRESS地址为0X8005000

其余则是在主程序里添加系统中断重启,如果IAP的条件符合则跳转到APP,否则始终在IAP

其余参考程序

标签:Bootload,APP,flash,boot,笔记,fmc,升级,GD32,IAP
From: https://blog.csdn.net/ChanTongJing/article/details/142851631

相关文章

  • express的使用笔记 2 请求对象与响应对象 、 增删改查demo
    Express不对Node.js已有的特性进行二次抽象,只是在它之上扩展了web应用所需的基本功能。内部使用的依旧是http模块,请求对象继承字http.IncomingMessage,响应对象继承自http.ServerResponse,所以node.js官网中的对应的方法可以通用1.请求对象2.响应对象除了response.send(),resp......
  • ModelMapper的常见用法 ,号称是beanUtils.copyProp....的升级版??,代码复制粘贴即可复现效
    官网案例以下将官网案例做一个解释1)快速入门递归遍历源对象的属性拷贝给目标对象拷贝对象下对象的属性值@DataclassOrder{privateCustomercustomer;privateAddressbillingAddress;}@DataclassCustomer{privateNamename;}@Dataclass......
  • 最新升级!《地下城4》风灵月影十六项修改器:无敌模式/快速挖墙/无限经验
    地下城4修改器是一款极佳的游戏辅助工具,专为满足玩家的多样需求而设计,让每位玩家都能尽享游戏乐趣。它集多种修改功能于一体,助玩家变得更强,游戏之旅更顺畅。玩家可派遣角色出击,同时也要警惕敌人的猛烈攻击。修改器地址:https://bbs.18183.com/thread-10531-1-1.htmlhttps://b......
  • 【刷题笔记】DP 2021.10.11
    Candies思路朴素的算法设\(f_{i,j}\)表示给前\(i\)个小朋友分\(j\)个糖的方案数,\[f_{i,j}=\sum_{k=0}^{min(a[i],j)}f_{i-1,j-k}\]注意到此时时间复杂度为\(O(n\timesk^2)\)想到用前缀和进行优化,设\(s_{i,j}\)表示\(\sum_{j=0}^{k}f_{i,j}\)则\(DP\)转移方程\[f_{i,j}=s_......
  • 【刷题笔记】[ABC180F] Unbranched
    【刷题笔记】Unbranched题意求\(N\)个点,\(M\)条边且满足以下条件的图的数量:1.图中无自环;2.每个点度数最多为2;3.连通块大小的最大值恰好为L。答案对\(10^9+7\)取模。\(1\leM,L\leN,2\leN\le300\)思路注意构造出来的图,不一定是联通的,所以容易联想到将一个联通分量......
  • 红日靶机(四)笔记
    VulnStack红日靶机四概述这个靶场环境包含了三台机器,一台web,两台window域机器。web服务是使用docker容器搭建的,所以就涉及到docker逃逸。而在获得立足点的过程中,我们要对三个docker容器分别测试,不能漏掉可以逃逸docker容器的机器:分别有struts2的反序列化RCE、tomcat的任意文件......
  • VMWare vsphere ESXi 6.7在线升级至7.0.3
    本文记录了VMWarevsphere ESXi6.7在线升级至7.0.3的过程一、当前环境1、ESXi当前版本:6.7.0,174998252、VCenter当前版本:7.0.3二、导入升级包并新建基准1、新版本ISO信息VMware-VMvisor-Installer-7.0U3n-21930508.x86_64.iso【MD5SUM:0cacd44568b7f6112c6d003ef21......
  • Software Engineering软件工程复习笔记
    program中包含了instructions和datastructures,记法:idd  记法:qu去cd,减少cd,加快输出 ......
  • 从零开始了解云WAF,您的网站安全升级指南
    网站安全对任何线上业务来说至关重要,尤其是在网络威胁不断升级的今天。无论是流量高峰期还是日常运营,确保数据安全与服务稳定是每个网站运营者最关心的事情。云WAF(Web应用防火墙)作为一种高效的安全防护手段,正逐渐成为保障网站安全的首选方案,帮助企业快速升级网站的防护能力。......
  • C语言入门基础笔记(1)
     目录1.C语言的概念2.C语言的发展历程3.第一个C语言4.main函数5.printf和库函数6.关键字介绍7.字符和ASCII 编码8.字符串和转义字符9.语句的分类 9.1空语句9.2表达式语句9.3函数调用语句9.4复合语句9.5控制语句10.注释的两种分类1.C语言的概念C语言是一......