矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: scu319hy

给玩stm32的朋友分享个开发工具

  [复制链接]
     
 楼主| 发表于 2024-4-18 14:05:42 | 显示全部楼层
耗费了几周的时间才弄了个不甚满意的设备面板...
peripherals-pane.png
好想法有一堆,实现起来总是懒得动手,再加上没有比较通用的解决方案,要花很多时间来针对不同的设备实现不同的逻辑,暂时只有先搞成这样了
回复 支持 反对

使用道具 举报

     
发表于 2024-5-31 13:25:52 | 显示全部楼层
谢谢您的分享!
回复 支持 反对

使用道具 举报

     
发表于 2024-6-6 19:50:59 | 显示全部楼层
有空下载学习一下。
回复 支持 反对

使用道具 举报

     
发表于 2024-7-7 19:33:03 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

     
发表于 2024-8-13 22:14:35 | 显示全部楼层
本帖最后由 李斵冰 于 2024-8-13 23:09 编辑

发现用CMSIS-DAP调试STM32,无论OpenOCD还是pyOCD都会闪退,很神奇。
OpenOCD和ED-X闪退前后的输出
屏幕截图 2024-08-13 220550.png
屏幕截图 2024-08-13 220711.png
pyOCD可能是因为没有target,OpenOCD就非常奇怪。

在想是不是arm-gnu-toolchain-13.2.Rel1-mingw-w64-i686-arm-none-eabi\bin文件夹里少了arm-none-eabi-gdb.exe等文件的原因
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-8-14 10:54:25 | 显示全部楼层
李斵冰 发表于 2024-8-13 22:14
发现用CMSIS-DAP调试STM32,无论OpenOCD还是pyOCD都会闪退,很神奇。
OpenOCD和ED-X闪退前后的输出

建议你先更新一下版本,确保不是什么已知问题
之前有修复过一些问题,有可能导致闪退的
回复 支持 反对

使用道具 举报

发表于 2024-10-2 22:24:08 | 显示全部楼层
本帖最后由 dirtyacc 于 2024-10-2 22:25 编辑

哇,我这两天尝试把一个简单的正点原子最基础的点亮LED例程转过去发现问题非常多,特别是那个启动文件startup.s,错误一大堆,可能是正点原子改了些东西不兼容,正在学习例程的我感觉没办法解决
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-2 22:30:20 | 显示全部楼层
dirtyacc 发表于 2024-10-2 22:24
哇,我这两天尝试把一个简单的正点原子最基础的点亮LED例程转过去发现问题非常多,特别是那个启动文件start ...

keil的startup.s在gcc下是不能用的(你的例程应该是keil工程吧?),你可以用edx建立工程,然后把原工程里的文件复制过来
回复 支持 反对

使用道具 举报

发表于 2024-10-2 22:45:09 | 显示全部楼层
本帖最后由 dirtyacc 于 2024-10-2 22:48 编辑
scu319hy 发表于 2024-10-2 22:30
keil的startup.s在gcc下是不能用的(你的例程应该是keil工程吧?),你可以用edx建立工程,然后把原工程里 ...


是的,keil。我刚刚在学习阶段,还在吃那些例子,觉得keil 的反应慢慢的,代码提示也不“现代”,原来考虑过弄vscode,但看了几个介绍步骤都有点多,刚好就看见你在lcr那里提到这个东西,下载来看一站式了,只要能把例程搬过来就能在这个环境学习应该会好一点,没想到基础太薄弱了,搬这个困难重重。有你这个提示就明白了,现在去百度一下keil迁移gcc教程

另外我目前遇到一个多次复现的奇怪问题,就是加断点时,会出现按下红点后,过1,2秒断点的红点自己消失的情况,不知道你有没有遇到过。
回复 支持 反对

使用道具 举报

     
发表于 2024-10-2 22:47:59 | 显示全部楼层
还得多学点
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-2 23:34:26 | 显示全部楼层
dirtyacc 发表于 2024-10-2 22:45
是的,keil。我刚刚在学习阶段,还在吃那些例子,觉得keil 的反应慢慢的,代码提示也不“现代”,原来 ...

keil工程和gcc工程的区别主要就是startup.s和链接脚本不同,其它C代码应该是可以兼容的
你也可以考虑用stm32cube创建makefile工程,然后用edx打开目录就可以正常编译调试了
stm32的主要难点就是那些寄存器的配置,而stm32cube有图形化的配置界面,配合hal库很多工作都被简化了,上手会比较容易

设置断点会自动消失,是因为调试器返回了设置断点失败
比如:openocd默认(不确定是否和硬件相关)只能用硬件断点,断点数量有限制;用jlink就没有问题
而且,并不是每行代码都可以设置断点(比如优化编译的代码会有部分代码行被优化掉不生成实际代码),如果设置断点的行在代码中是无效的,也会导致断点无效被自动删除

另外,不同的硬件环境也有可能存在不同的异常。比如:jlink如果驱动未重启,上次设置的断点会保持在仿真器里。这样一来,在非调试状态下取消的断点,实际上并不能取消掉,必须在调试状态下重新设置断点并取消才能真正的取消掉断点。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-2 23:40:16 | 显示全部楼层

学无止境,一步一个脚印慢慢来
积累到一定程度再回头看看,就会发现自己张进了很多
回复 支持 反对

使用道具 举报

     
发表于 2024-10-3 00:12:55 | 显示全部楼层
谢谢大师分享!
回复 支持 反对

使用道具 举报

     
发表于 2024-10-3 09:30:16 | 显示全部楼层
本帖最后由 mengjins 于 2024-10-3 09:31 编辑

使用官方的工具STM32CubeIDE不是更好吗? STM32CubeIDE能支持图形化设定、配置。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-10-3 10:17:37 | 显示全部楼层
mengjins 发表于 2024-10-3 09:30
使用官方的工具STM32CubeIDE不是更好吗? STM32CubeIDE能支持图形化设定、配置。

CubeMX可以做基本的配置和工程生成,还算将就能用
而CubeIDE基于Eclipse...就奠定了它是比较难用的
不过和Keil/IAR比起来,Eclipse又显得先进了许多
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 22:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表