工程师笔记|通过KEIL制作QSPI接口的外部Flash下载算法

STM32单片机 2023-02-10 18:00


关键词:KEIL,QSPI,下载算法





目录预览




1. 引言

2. MDK 下载算法基础知识

3. 程序擦除操作执行流程

4. 程序烧录操作执行流程

5. 程序校验操作执行流程

6. MDK 创建下载算法过程通用步骤

7. 添加 QSPI-FLASH 驱动及其有关库函数

8. 算法和使用方法

9. 小结



1.引言

随着用户的应用越来越复杂以及 GUI 等需要大存储空间的需求越来越多,很多时候我们需要将代码或数据放在外扩的 Flash 存储空间。但是这样存在一个外部 Flash 烧写的问题,尤其是在应用调试时,需要将代码或数据烧录到外部 Flash。


如果调试工具不能够一键烧录,势必会给调试带来诸多的麻烦。本文以 STM32H750 芯片为例,介绍通过 KEIL制作 QSPI 接口的外部 Flash 下载算法的方法。


2.MDK 下载算法基础知识

FLASH 编程算法是一种用于擦除应用程序或将应用程序下载到 Flash 的程序代码。MDK 本身支持的各种器件都自带下载算法,存放在 MDK 各种器件的软件包里面,以STM32H7 为例,算法存在于

Keil\STM32H7xx_DFP\2.6.0\CMSIS\Flash

(软件包版本不同,数字 2.6.0 会不同)。但是,只有 STM32 官方部分开发板提供了算法工程,大多数用户开发板都需要自己编写下载算法。不同的 QSPI-FLASH 的驱动略有差别,因此下载算法也不同。所以,掌握通用的下载算法制作步骤很重要。 


MDK 通过创建一批与地址信息无关的函数,实现的功能主要有初始化,擦除,编程,读取,校验等,然后在 MDK 调试下载阶段,会将算法文件加载到芯片的内部 RAM 里面(加载地址可以通过 MDK 设置),然后 MDK 通过与这个算法文件的交互,实现程序下载,调试阶段数据读取等操作。


3.程序擦除操作执行流程

如图 1

(Algorithm Functions (keil.com)所示

可以看出 Flash 的擦除过程包括以下几个步骤:

a) 加载算法到 RAM(一般指片内 SRAM)

b) 执行初始化函数 Init

c) 执行擦除操作,根据用户的 MDK 配置,这里可以选择整个芯片擦除或者扇区擦

除。

d) 擦除操作结束后执行 Uninit 函数





4.程序烧录操作执行流程

如图 2

(Algorithm Functions (keil.com)

所示,程序烧录执行流程包括以下步骤:

a)对所有的 AXF 文件做 init 初始化(AXF 是 MDK 生成的可执行文件,也就是需要烧

录和调试的代码)

b)查看烧写算法 FLM 文件是否存在,如果不存在,则操作结束;如果存在,则继续

c)加载算法文件到 RAM 中

d)执行初始化函数 Init

e)加载用户程序代码至 RAM 中

f)执行写入编程函数 Program Page

g)执行 Uninit 函数

f)操作结束



从以上操作过程中可以看出,我们的用户代码是先放在 RAM 中缓存的,然后 IDE 通过调用 RAM 中的 FLASH 写入函数 Program Page 将代码写入到 Flash 中,完成代码的烧录。


5.程序校验操作执行流程

程序校验操作大致流程如图 3(Algorithm Functions (keil.com)所示

其中校验要用到 MDK 生成的 axf 可执行文件。 


校验就是 把 axf 文件中的程序和实际下载到芯片的程序读出来做比较。


a)查看烧写算法 FLM 文件是否存在,如果不存在,则操作失败;如果存在,则继续

b)加载算法到 RAM 中

c)执行初始化 Init

d)检查校验算法是否存在:

如果存在,加载应用程序到 RAM 中,然后执行校验算法函数

如果不存在,计算 CRC,将芯片中读取出来的数据和 RAM 中加载应用计算输出的

CRC 值做比较。

e)执行 Uninit 函数。

f)替换 BKPT( BreakPoint 断点指令)为 B. 死循环指令

h)执行 RecoverySupportStop, 恢复支持停止。

i)执行 DebugCoreStop,调试内核停止

g)运行应用,若运行成功,则硬件复位

k)操作完成,停止调试端口


6.MDK 创建下载算法过程通用步骤

6.1 使用 MDK 提供的通用模板

模板路径:

C:\Keil_v5\ARM\Packs\ARM\CMSIS\5.6.0\Device\_Template_Flash 


请找到自己 MDK 的安装路径,找到后将工程拷贝出来。然后将以下两个文件的只读属性取消。FlashDev.c 是 flash 信息描述文件,需要根据自己的 flash 实际情况修改。FlashPrg.c 是具体擦除、写入、校验等接口函数实现文件,需要自己根据实际情况进行开发。


同时MDK提供的工程模板原始名字是 NewDevice.uvprojx, 大家可以根据自己的需要做修改。



6.2 MDK 工程设置

6.2.1  修改使用的芯片型号



6.2.2 修改输出算法文件名


图6.修改输出算法文件名


这个名字是方便用户查看的, 比如设置为 stm32h7,那么输出的算法文件就是stm32h7.flm。


6.2.3 设置算法文件中 RO 和 RW 段的独立性


选择“ ROPI”以及 “RWPI”选项, 可以避免用户不得不将代码加载到内存中的特定位置。


6.2.4 将程序可执行文件 axf 修改为 FLM


通过以下命令即可在编译后生成 FLM 文件。


6.2.5 分散加载设置


分散加载文件 Target.lin 模板中有提供,--diag_suppress L6305 用于屏蔽 L6503 类型警告信息,设置了分散加载后, 此处的配置就不再起作用了。




本文主要介绍了基于 MDK 通用模板和已有工程制作 MDK 下载算法的过程。因文章篇幅有限,未展示完整内容,完整文章请点击“阅读原文”下载。



长按扫码关注公众号 


更多资讯,尽在STM32


点击“阅读原文”,可下载原文档

STM32单片机 ST MCU (产品+工具+资料+技术+市场+活动)x 您的关注x您的支持 = STM32 单片机蝴蝶乐园
评论 (0)
  • 探针本身不需要对焦。探针的工作原理是通过接触被测物体表面来传递电信号,其精度和使用效果取决于探针的材质、形状以及与检测设备的匹配度,而非对焦操作。一、探针的工作原理探针是检测设备中的重要部件,常用于电子显微镜、坐标测量机等精密仪器中。其工作原理主要是通过接触被测物体的表面,将接触点的位置信息或电信号传递给检测设备,从而实现对物体表面形貌、尺寸或电性能等参数的测量。在这个过程中,探针的精度和稳定性对测量结果具有至关重要的影响。二、探针的操作要求在使用探针进行测量时,需要确保探针与被测物体表面的良好
    锦正茂科技 2025-04-02 10:41 126浏览
  • 据先科电子官方信息,其产品包装标签将于2024年5月1日进行全面升级。作为电子元器件行业资讯平台,大鱼芯城为您梳理本次变更的核心内容及影响:一、标签变更核心要点标签整合与环保优化变更前:卷盘、内盒及外箱需分别粘贴2张标签(含独立环保标识)。变更后:环保标识(RoHS/HAF/PbF)整合至单张标签,减少重复贴标流程。标签尺寸调整卷盘/内盒标签:尺寸由5030mm升级至**8040mm**,信息展示更清晰。外箱标签:尺寸统一为8040mm(原7040mm),提升一致性。关键信息新增新增LOT批次编
    大鱼芯城 2025-04-01 15:02 232浏览
  • 在智能交互设备快速发展的今天,语音芯片作为人机交互的核心组件,其性能直接影响用户体验与产品竞争力。WT588F02B-8S语音芯片,凭借其静态功耗<5μA的卓越低功耗特性,成为物联网、智能家居、工业自动化等领域的理想选择,为设备赋予“听得懂、说得清”的智能化能力。一、核心优势:低功耗与高性能的完美结合超低待机功耗WT588F02B-8S在休眠模式下待机电流仅为5μA以下,显著延长了电池供电设备的续航能力。例如,在电子锁、气体检测仪等需长期待机的场景中,用户无需频繁更换电池,降低了维护成本。灵活的
    广州唯创电子 2025-04-02 08:34 187浏览
  • 提到“质量”这两个字,我们不会忘记那些奠定基础的大师们:休哈特、戴明、朱兰、克劳士比、费根堡姆、石川馨、田口玄一……正是他们的思想和实践,构筑了现代质量管理的核心体系,也深远影响了无数企业和管理者。今天,就让我们一同致敬这些质量管理的先驱!(最近流行『吉卜力风格』AI插图,我们也来玩玩用『吉卜力风格』重绘质量大师画象)1. 休哈特:统计质量控制的奠基者沃尔特·A·休哈特,美国工程师、统计学家,被誉为“统计质量控制之父”。1924年,他提出世界上第一张控制图,并于1931年出版《产品制造质量的经济
    优思学院 2025-04-01 14:02 159浏览
  • 职场之路并非一帆风顺,从初入职场的新人成长为团队中不可或缺的骨干,背后需要经历一系列内在的蜕变。许多人误以为只需努力工作便能顺利晋升,其实核心在于思维方式的更新。走出舒适区、打破旧有框架,正是让自己与众不同的重要法宝。在这条道路上,你不只需要扎实的技能,更需要敏锐的观察力、不断自省的精神和前瞻的格局。今天,就来聊聊那改变命运的三大思维转变,让你在职场上稳步前行。工作初期,总会遇到各式各样的难题。最初,我们习惯于围绕手头任务来制定计划,专注于眼前的目标。然而,职场的竞争从来不是单打独斗,而是团队协
    优思学院 2025-04-01 17:29 250浏览
  • 北京贞光科技有限公司作为紫光同芯授权代理商,专注于为客户提供车规级安全芯片的硬件供应与软件SDK一站式解决方案,同时配备专业技术团队,为选型及定制需求提供现场指导与支持。随着新能源汽车渗透率突破40%(中汽协2024数据),智能驾驶向L3+快速演进,车规级MCU正迎来技术范式变革。作为汽车电子系统的"神经中枢",通过AEC-Q100 Grade 1认证的MCU芯片需在-40℃~150℃极端温度下保持μs级响应精度,同时满足ISO 26262 ASIL-D功能安全要求。在集中式
    贞光科技 2025-04-02 14:50 236浏览
  • 随着汽车向智能化、场景化加速演进,智能座舱已成为人车交互的核心承载。从驾驶员注意力监测到儿童遗留检测,从乘员识别到安全带状态判断,座舱内的每一次行为都蕴含着巨大的安全与体验价值。然而,这些感知系统要在多样驾驶行为、复杂座舱布局和极端光照条件下持续稳定运行,传统的真实数据采集方式已难以支撑其开发迭代需求。智能座舱的技术演进,正由“采集驱动”转向“仿真驱动”。一、智能座舱仿真的挑战与突破图1:座舱实例图智能座舱中的AI系统,不仅需要理解驾驶员的行为和状态,还要同时感知乘员、儿童、宠物乃至环境中的潜在
    康谋 2025-04-02 10:23 197浏览
  • 文/郭楚妤编辑/cc孙聪颖‍不久前,中国发展高层论坛 2025 年年会(CDF)刚刚落下帷幕。本次年会围绕 “全面释放发展动能,共促全球经济稳定增长” 这一主题,吸引了全球各界目光,众多重磅嘉宾的出席与发言成为舆论焦点。其中,韩国三星集团会长李在镕时隔两年的访华之行,更是引发广泛热议。一直以来,李在镕给外界的印象是不苟言笑。然而,在论坛开幕前一天,李在镕却意外打破固有形象。3 月 22 日,李在镕与高通公司总裁安蒙一同现身北京小米汽车工厂。小米方面极为重视此次会面,CEO 雷军亲自接待,小米副董
    华尔街科技眼 2025-04-01 19:39 251浏览
  • 文/Leon编辑/cc孙聪颖‍步入 2025 年,国家进一步加大促消费、扩内需的政策力度,家电国补政策将持续贯穿全年。这一利好举措,为行业发展注入强劲的增长动力。(详情见:2025:消费提振要靠国补还是“看不见的手”?)但与此同时,也对家电企业在战略规划、产品打造以及市场营销等多个维度,提出了更为严苛的要求。在刚刚落幕的中国家电及消费电子博览会(AWE)上,家电行业的竞争呈现出胶着的态势,各大品牌为在激烈的市场竞争中脱颖而出,纷纷加大产品研发投入,积极推出新产品,试图提升产品附加值与市场竞争力。
    华尔街科技眼 2025-04-01 19:49 255浏览
  • 退火炉,作为热处理设备的一种,广泛应用于各种金属材料的退火处理。那么,退火炉究竟是干嘛用的呢?一、退火炉的主要用途退火炉主要用于金属材料(如钢、铁、铜等)的热处理,通过退火工艺改善材料的机械性能,消除内应力和组织缺陷,提高材料的塑性和韧性。退火过程中,材料被加热到一定温度后保持一段时间,然后以适当的速度冷却,以达到改善材料性能的目的。二、退火炉的工作原理退火炉通过电热元件(如电阻丝、硅碳棒等)或燃气燃烧器加热炉膛,使炉内温度达到所需的退火温度。在退火过程中,炉内的温度、加热速度和冷却速度都可以根
    锦正茂科技 2025-04-02 10:13 111浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦