Keil和STLINK调试记录

在调试STM32程序时遇到问题,程序在DEBUG模式下无法进入main函数,始终停留在0x1FFFF3E00549指令。经检查发现BOOT0与GND的连接电阻存在虚焊,导致BOOT0电压为1.0V。修复电阻后,BOOT0接地,程序恢复正常运行。确保BOOT0正确连接到GND是使程序在内部FLASH中运行的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在调试的时候发现,正常下载完程序后,程序能够运行,但是使用STLINK调试的DEBUG在线仿真时候出现一直卡在  0x1FFFF3E0 0549      LSLS     r1,r1,#21]  ; @0x1FFFF020, 也就是说代码一直进不了main函数,后来发现原因是:BOOT0与GND相连接的电阻虚焊了,导致BOOT0没有接GND,测得BOOT0电压有1.0V左右。 通过重新焊接电阻让BOOT0接GND就恢复正常。

从上表看出,我们要让程序运行在内部FLASH中,BOOT0必须接GND

 

### CCS与ST-Link配置及使用教程 #### 1. CCS简介及其功能 Code Composer Studio (CCS) 是由德州仪器(TI)提供的一款集成开发环境(IDE),主要用于基于 TI 微控制器处理器的应用程序开发。它支持多种调试接口,例如 JTAG UART,并能够与其他硬件调试工具配合使用。 对于 STM32 开发者而言,虽然官方推荐使用 Keil 或 IAR 进行开发,但在某些情况下也可以尝试将 CCS 作为替代方案之一来完成项目开发工作[^2]。 #### 2. ST-Link概述 ST-Link 是意法半导体公司推出的一种用于调试 ARM Cortex-M 系列微控制器的标准设备。最新版本为 V3,在性能上有显著提升并增加了更多特性比如 SWDIO 复位控制等功能[^3]。 #### 3. 配置流程说明 #####1)安装必要软件包 要让 CCS 支持通过 ST-Link 对目标板进行编程操作,则需先下载对应的支持文件夹到本地计算机系统里去。可以从这里获取最新的驱动以及固件更新程序链接地址[^4]: https://www.st.com/en/development-tools/stsw-link009.html 另外还需要确保已经正确设置了 TivaWare™ Peripheral Driver Library 的路径位置以便后续编译过程中可以顺利调用相关函数库资源[^5]。 ##### (2)创建新工程并向其中添加源代码文件 启动 CodeComposerStudio 应用程序之后按照提示新建一个空白工程项目即可。接着把准备好的 C 文件拖放到左侧导航栏对应的 Source Files 下面就可以了[^6]。 #####3)设置Debug Configurations参数选项卡内的各项数值 双击打开 Project->Properties 菜单项找到 Debug Configuration 子菜单项下的 Debugger 分支节点展开查看具体内容详情如下所示: ```plaintext Connection Type: External JTAG/SWD Adapter JTAG Device ID: 自动检测或者手动输入具体芯片型号编号 Reset Setup Method: Use Reset Line Pin As Active Low Signal For System Level Resets Only. ``` 同时还要记得勾选 Enable MMU Support If Available This Target Has One checkbox 来启用内存管理单元服务机制从而提高整体运行效率水平[^7]。 ##### (4)连接实物硬件装置开始实际测试环节 当以上准备工作全部完成后就可以插上 USB 数据线使主机端成功识别到来自外部的目标电路板信号反馈信息了。此时应该可以在 Output Console 窗口中看到类似于这样的日志记录消息:“Connected to target...”表示当前状态正常无误[^8]。 如果遇到任何异常情况则可以根据报错提示逐步排查解决问题所在之处直到恢复正常为止[^9]。 --- ### 示例代码片段展示如何初始化GPIO口实现LED灯闪烁效果 以下是利用标准外设库方法编写的一段简单示例演示如何开启 PA5 引脚上的 LED 并让它每隔一秒切换一次亮灭状态的过程描述如下: ```c #include "stm32f1xx_hal.h" int main(void){ HAL_Init(); // 初始化HAL库 __HAL_RCC_GPIOA_CLK_ENABLE(); // 启用 GPIOA 时钟 GPIO_InitTypeDef gpio_init_structure; /* 设置PA5管脚模式 */ gpio_init_structure.Pin = GPIO_PIN_5; gpio_init_structure.Mode = GPIO_MODE_OUTPUT_PP; gpio_init_structure.Pull = GPIO_NOPULL; gpio_init_structure.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA,&gpio_init_structure); while(1){ HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5); HAL_Delay(1000); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值