STM32 SRAM调试:Keil MDK 3.5与Jlink V7设置指南
需积分: 36 39 浏览量
更新于2024-09-13
收藏 355KB PDF 举报
"STM32开发中,使用Keil MDK 3.5或UV4beta版本配合Jlink V7进行SRAM调试的方法"
在STM32开发过程中,特别是对于新手来说,频繁地擦写FLASH可能导致其寿命缩短。为了避免这个问题,并提供一个更友好的学习环境,可以采用SRAM调试的方法。本文以STM32F103RBT6为例,该芯片具有128KB的FLASH和20KB的SRAM,通过借鉴前人在ULINK下的调试策略,将内存分配一部分用于程序执行。
首先,你需要在Keil的安装目录下找到示例项目的RAM.ini文件,并将其复制到你的项目目录中。接着,打开你的工程文件(如GPIO_OUT.uvproj),在Keil中创建一个新的目标(Target),命名为SRAM。
接下来,选择SRAM作为调试目标,然后在项目中右键点击SRAM,选择“Options for Target “SRAM””,进入选项设置。在Target选项卡中,将IROM1的起始地址设为0x20000000,大小设为0x4000(16KB);IRAM1的起始地址设为0x20004000,大小设为0x1000(4KB),这样就将内存分成了16KB的FLASH区域和4KB的SRAM运行区域。
在Output选项卡中,勾选“Create HEX File”,确保编译后能生成HEX文件。在Debug选项中,选择Cortex-M3 J-LINK作为仿真器,并在Initialization File中选择之前复制的RAM.ini文件。同时,取消“Load Application at Startup”的选中状态,因为我们要在SRAM中运行程序,而不是从FLASH加载。
在仿真器设置中,确保Interface选择为USB,以便通过USB接口连接Jlink。在Flash Download部分,设置不要擦除(Donot Erase),并在RAM for Algorithm中,设置Start为0x20004000,Size为0x1000。最后,在Programming Algorithm中,配置STM32F10x Medium-density Flash的起始地址为0x20000000,大小为0x00004000。
如果Programming Algorithm中没有STM32F10x Medium-density Flash,可以通过Add按钮添加。完成以上步骤后,保存设置,就可以在SRAM中调试你的代码了,这样可以避免频繁擦写FLASH,延长MCU的使用寿命,并为初学者提供了一个更加安全的学习环境。
通过这种方法,你可以在不改变FLASH内容的情况下,直接在SRAM中运行和调试程序,如GPIO控制LED等基本功能,这对于快速迭代和测试代码非常有帮助。同时,这种调试方式也能帮助开发者更好地理解和掌握STM32的内存管理以及调试工具的使用。
2020-11-10 上传
122 浏览量
2020-08-04 上传
2020-08-20 上传
654 浏览量
2020-04-19 上传
2021-04-01 上传
2021-09-30 上传
2021-03-24 上传
tuoti
- 粉丝: 0
- 资源: 13
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍