当前位置: 首页 > news >正文

STM32N6 KEIL IDE 调试XIP 应用的一种方法 LAT1575

关键字:STM32N6,KEIL,XIP,Debug

1. 引言

客户在STM32N6开发时选择使用了KEIL IDE。大家知道STM32N6没有内部 Flash,对于XIP应用,系统启动过程中,首先会由BootRom加载FSBL,由FSBL设置 XIP 模式,然后在外部Flash上直接运行应用。(本文未涉及其它启动模式,仅以外部 Flash 启动模式为例)。如果直接使用KEIL IDE 调试XIP 应用,由于FSBL未执行,XSPI 尚未设置memory map模式,此时读取外部Flash不会成功,即不能直接进行debug。 我们使用STM32N6570-DK板时,常用的调试方法是将FSBL与应用均烧录到外部Flash 中,在Dev模式下上电(此时N6 DBG模块是打开的),再切换模式至外部Flash启 动,按下reset按钮(该reset为系统复位,不会关闭DBG模块),系统会有BootRom 加载并执行FSBL,由FSBL跳转到应用。由于执行过了FSBL,在不复位情况下可以使用 IDE 进行debug,注意该调试方法需要将Boot管脚引出以便切换Boot模式。本文我们 以STM32Cube_FW_N6_V1.1.0 包中Template_FSBL_XIP 为例,介绍一种在Dev模式 下直接调试应用的方法,不需要切换Boot 模式。

2. KEIL IDE 调试 Template_FSBL_XIP 应用

2.1. Step1 : 修改 FSBL

用KEIL打开STM32N6570-DK\Templates\Template_FSBL_XIP 工程。我们首先修 改一下FSBL工程,正常情况下FSBL 在配置好XIP模式后,会跳转到Application, 我们 这里屏蔽跳转,仅做配置与内存映射。具体修改需要修改ST Middlewares 中的 STM32_ExtMem_Manager 中的stm32_boot_xip.c 文件,具体如下:

修改完成后保存,然后编译,会在Template_FSBL_XIP\MDK-ARM\FSBL\Objects 目录下生成FSBL.axf, FSBL.bin等文件。

2.2. Step2 : 创建并使用App.ini文件

在\Template_FSBL_XIP\MDK-ARM\Appli目录下创建App.ini文件,编辑并加入下 面脚本。该脚本首先加载FSBL,然后设置内核PC寄存器为FSBL入口地址 0x34180400+4,运行FSBL后,可以通过暂停Debugger再次加载应用进行调试。

 添加App.ini文件后,如下图1进行应用工程设置,使用该App.ini,在Startup阶段 执行, 并去掉勾选Load Application at Startup。

图1. Application设置Debug使用初始化文件

2.3. Step3 : 编译应用并烧录

由于原有的应用设置中使用-O3进行了编译优化,为了设置断点方便演示,我们将该 选项改为了-O0,如下图2所示。该步骤并非必须。

图2. Application设置编译选项-O0

然后我们编译Appliction工程,并将生成的Appli.bin烧录到外部FLASH,如下图3 所示。注意我们这里是为了加快调试速度,烧录前没有进行签名,实际工程中需要对 FSBL与Application进行签名。

图3.烧录Appli.bin到外部Flash 

2.4 Step4 : 调试应用

烧录Appli.bin 完成后,就可以回到KEIL IDE对Application进行调试了。可以按下 面步骤进行:

1. STM32N6570-DK板设置启动模式为Dev模式,上电。

2. 点击Start Debug Session 按钮,开始Debug, Debugger 会加载FSBL.axf,并执行FSBL, 如下图4所示状态。点击Stop,进入 下一步;

图4. Application 调试加载执行FSBL

3. 此时KEIL Debugger会停在Application工程 main函数的入口。可以正常设置 断点,及使用其它Debug功能,如下图5所示。

图5. Application 调试界面(KEIL)正常

3. 小结

本文介绍了STM32N6使用KEIL Debug XIP 应用的一种方法,使用KEIL IDE可以相 对比较方便地调试XIP应用。对分模块加载内存与外部Flash的应用,提供了一种相对简 洁的调试手段,供有需要的客户参考。

意法半导体公司及其子公司 (“ST”)保留随时对 ST 产品和 / 或本文档进行变更的权利,恕不另行通知。买方在订货之前应获取关于 ST 产 品的最新信息。 ST 产品的销售依照订单确认时的相关 ST 销售条款。 买方自行负责对 ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任。 ST 不对任何知识产权进行任何明示或默示的授权或许可。 转售的 ST 产品如有不同于此处提供的信息的规定,将导致 ST 针对该产品授予的任何保证失效。 ST 和 ST 徽标是 ST 的商标。若需 ST 商标的更多信息,请参考 www.st.com/trademarks。所有其他产品或服务名称均为其 各自所有者的财 产。 本文档是ST中国本地团队的技术性文章,旨在交流与分享,并期望借此给予客户产品应用上足够的帮助或提醒。若文中内容存有局限或与ST 官网资料不一致,请以实际应用验证结果和ST官网最新发布的内容为准。您拥有完全自主权是否采纳本文档(包括代码,电路图等)信息, 我们也不承担因使用或采纳本文档内容而导致的任何风险。 本文档中的信息取代本文档所有早期版本中提供的信息。 © 2020 STMicroelectronics - 保留所有权利

http://www.dtcms.com/a/490965.html

相关文章:

  • 大模型微调(二):使微调保持稳定的策略
  • 前端调优23大规则(Part 4)
  • SpringBoot-入门介绍
  • 如何推动AI技术在企业管理中的商业化落地?
  • 淘宝网站建设的策划书产品软文案例
  • 复制带随机指针的链表
  • Promise 与 async/await
  • win11 字体变宽问题
  • 最好的做网站机械加工网站色彩搭配
  • Pytorch Yolov11目标检测+Android部署 留贴记录
  • iis 发布网站 404archlinux+wordpress
  • leetcode 2598. 执行操作后的最大 MEX 中等
  • SuperMap iObject Java实现倾斜数据预处理
  • 逻辑方阵(Logical Square)解说
  • Vue与React中动态导入的原理及实现差异解析
  • 有一个网站自己做链接获取朋友位置传媒公司属于什么行业类型
  • 服饰类电商网站建设策划昆山vi设计
  • aben.co微端侧模型价格实惠的服务商
  • 网站开发思维导图内容如何做一个单页面的网站
  • 【Qt】7.信号和槽_connect函数用法(2)
  • 网站的建设流程具体有哪些哪个合肥seo好
  • 大连公司网站建设站点与网站有什么区别
  • 高压混动救援的 “及时雨”:XRC-3363 系列救援充电器实操解析与安全要点
  • 玛哈特激光落料线:一条会“思考”的钢铁流水线
  • 《爬虫进阶之路:从模拟浏览器到破解动态加载的实战指南》
  • 现在做个人网站上海发布最新情况
  • 网站漂浮图片代码怎样把自己的网站上传
  • 如何做微网站社交电商怎么做
  • 离线安装NetData:高效监控服务器指南
  • 学习笔记-eventpp库