打印
[STM32H7]

【STM32H750B-DK评测】1. macOS开发环境建立和点灯

[复制链接]
461|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这次有幸收到STM32H750B-DK的测试,第一次玩STM32官方带屏的套件,学习了不少的知识。
因为我的日常工作环境是macOS,所以拿到板子的第一件事情,就是在macOS下面构建开发环境。

ST提供了STM32相关的开发环境,但是主要都是Windows环境的,部分工具可以在Linux上面跑,更少一部分,可以在macOS上面跑。
经过一番时间,最终的环境如下:

1. 项目基础构建和配置:STM32CubeMX
2. 固件下载:STM32CubeProgrammer
3. 代码开发:VsCode
4. 固件下载和调试:openocd + gdb

STM32CubeMX 和 STM32CubeProgrammer的部分,不详细说明,不管哪个平台使用,都是基础,主要说明VsCode和openocd + gdb的部分。
STM32CubeProgrammer我只在最开始使用,后续下载代码,都使用的openocd

当使用STM32CubeMX完成项目的初始设置后,在工程设置里面,设置成输出的代码类型:


按照上述设置,输出以后的代码,编译配置为Makefile,可以直接用make编译。
编译前,还需要安装一些基础的工具:
1. ArmGNUToolchain编译工具链:Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
2. openocd:macOS下面,直接brew install openocd即可安装
3. vscode插件:C/C++、Cortex-Debug



做好以上的基础配置后,我们就在vscode中可以打开生成的项目目录,进行进一步的设置了:
代码的基本结构如下:

简单说明一下:
1. Core:用于放置我们自己开发的程序,Src/main.c为入口文件
2. Drivers:系统核心文件,以及第三方驱动文件
3. Makefile:编译配置文件
4. .vscode:vscode配置目录

切换到终端模式下,直接执行make,即可编译代码。默认的代码,编译没有任何问题,可以直接通过。


为了方便下载固件,我们可以对Makefile做一下处理:

红框的部分,flash和reset是添加的。
具体文件,可以查看:https://gitee.com/honestqiao/stm32h750b-dk/blob/master/Makefile

其中用到了一个openocd的配置文件,为了方便通用,我是放在这个工程上一级目录的:

其内容如下:

具体文件,可以查看:https://gitee.com/honestqiao/stm32h750b-dk/blob/master/Files/STM32H750x.cfg
记得该文件放置位置不同的时候,要修改Makefile中对应的STM32H750x.cfg路径。

修改好了以后,就可以直接使用make reset重启设备了:


或者使用make flash下载固件:


经过上面的步骤,已经可以正常编译代码和下载固件了。

下一步,我们再配置vscode,以便进行代码的调试。
这一次,需要修改.vscode内vscode的三个配置文件,分别为:
1. c/c++配置文件:c_cpp_properties.json

添加上述红框部分后,编辑代码的时候,不会出现提示STM32的与定义量没有定义了。

2. 调试配置文件:launch.json

红框的部分需要特别注意,一个是根据你的实际项目修改elf文件的位置,另外一个是arm-gcc安装的位置
其中设计到的svd文件,下载地址为:https://gitee.com/honestqiao/stm32h750b-dk/blob/master/Files/STM32H750x.svd

3. 任务配置文件:tasks.json


上述配置文件,可以在代码库查看:https://gitee.com/honestqiao/stm32h750b-dk/tree/master/.vscode

经过上述配置后,我们就可以打开main.c,设置后断点,连接好设备,进行断点调试了:


在左边的调试数据区域,可以查看变量的值,寄存器的值,已经当前的程序堆栈,非常的方便。

最后一步,是点灯了。
套件上,默认有LD1、LD2可以被我们控制,在main()函数的while部分,添加如下的代码,就能点灯了:


关闭调试,重新进入后,就会自动编译最新的调试代码,然后进入调试模式了,让程序正常运行,板子一边的两个LED,就能够闪动了。



以上所有的代码和配置文件,可以查看代码库:https://gitee.com/honestqiao/stm32h750b-dk/
其中包含了SHT30数据的读取,已经MPU6050数据的读取,后续的文章中会进一步的分享。

使用特权

评论回复
沙发
地下縱情搖擺| | 2022-11-22 23:20 | 只看该作者
感觉苹果系统好像不是很适合开发硬件方面呢

使用特权

评论回复
板凳
一枝香| | 2022-11-22 23:52 | 只看该作者
辛苦了啊,这算是一种知识拓展吧,嘿嘿,很强

使用特权

评论回复
地板
可爱的白兔先生| | 2022-11-23 00:24 | 只看该作者
正常来说,使用vscode真的很好,看程序代码很舒服

使用特权

评论回复
5
岁月反驳| | 2022-11-23 00:56 | 只看该作者
话说,采用jlink调试不行吗?是不是也可以啊

使用特权

评论回复
6
笨蛋无需搭理| | 2022-11-23 01:28 | 只看该作者
用openocd + gdb真的不错,而且用vscode还免费了,不担心侵权了

使用特权

评论回复
7
林间有新绿| | 2022-11-23 02:00 | 只看该作者
话说,使用Windows,也采用楼主这种方式进行开发,是不是也可以啊

使用特权

评论回复
8
热爱童话世界| | 2022-11-23 02:32 | 只看该作者
该说不说,vscode开发真的好好用

使用特权

评论回复
9
漫过岁月| | 2022-11-23 03:04 | 只看该作者
学会了,使用gdb调试是有点意思

使用特权

评论回复
10
討厭和人归類| | 2022-11-23 03:36 | 只看该作者
想知道仿真调试的话,效果怎么样?断点能打几个?

使用特权

评论回复
11
极客晨星| | 2022-11-23 04:08 | 只看该作者
带屏套件非常贵呢,ST的屏效果都不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

91

帖子

2

粉丝