STM32CubeIDE 使用OpenOCD debug
- 问题
- 解决
问题 针对手头的正点原子潘多拉(Pandora IoT)开发板在使用STM32CubeIDE时,提示ST-Link固件升级,不能下载,更不能debug。
文章图片
文章图片
解决 【stm32|STM32CubeIDE 使用OpenOCD debug】1.方法一:
- 固件升级这里可以参考:
暴力升级你的 ST-Link 及 STM32CubeIDE
- 使用OpenOCD
首先安装OpenOCD(网上一大堆,不赘诉)
点击下载:OpenOCD
- cfg文件:
所以这里选择比较接近的stm32L4discovery.cfg
文章图片
最关键的两个文件 stlink.cfg & stm32l4x.cfg
说明stm32l4系列单片机和st-link调试大概都是这样设置的,其它型号以及调试自行组合(里面cfg那么多找个自己跟着改一改)
这样仿照着为Pandora 写一个 stm32l4Pandora.cfg
文章图片
source [find interface/stlink.cfg]transport select hla_swdsource [find target/stm32l4x.cfg]# reset_config srst_only
最后一行重置有可能会影响后面的调试,没有影响的就不用注释,有影响就试试注释看一下能不能解决。
st-link 连接PC,启动OpenOCD
- openocd -f “绝对路径.cfg文件”(默认路径在board/下)
openocd -f "board/stm32l4Pandora.cfg"
文章图片
可以看到已经识别到了st-link 相关信息。
打开STM32CubeIDE 工程
- 主函数随便写几行
int main(void)
{
/* USER CODE BEGIN 1 */
uint16_t count = 0;
uint8_t pData[] = "hello mcu stm32 !\n";
uint8_t pData1[] = "I am pData1\n";
uint8_t pData2[] = "I am pData2\n";
/* USER CODE END 1 */
...
...
...
/* USER CODE BEGIN 2 */
HAL_UART_Transmit(&huart1, pData, sizeof(pData), HAL_MAX_DELAY);
HAL_Delay(1000);
HAL_UART_Transmit(&huart1, pData1, sizeof(pData1), HAL_MAX_DELAY);
HAL_Delay(1000);
HAL_UART_Transmit(&huart1, pData2, sizeof(pData2), HAL_MAX_DELAY);
/* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
count++;
HAL_Delay(1000);
/* USER CODE END WHILE *//* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
- 配置OpenOCD
- 首先找到Run configurations
文章图片
文章图片
- 选择 ST-LINK(OpenOCD)
文章图片
文章图片
文章图片
这样就烧写进去了
文章图片
- 点击debug
文章图片
文章图片
完
推荐阅读
- stm32|基于STM32和freeRTOS智能门锁设计方案
- 单片机|单片机初学者做项目为什么这么难(单片机初学者心得有哪些)
- 单片机|自学单片机好找工作吗(会单片机能找什么工作?)
- 单片机|keil把源代码生成lib的方法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- 单片机|Arduino、arm、树莓派、单片机四者有什么不同()
- 日常分享|共享充电宝方案原理,具体部件组成以及主控MUC参数
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- 灵动微电子全新超值型MM32F基本特性及目标应用
- AD中PCB布局与布线的原则