在mac上安装stm32CubeMX

TOOLS DOWNLOAD AND SETUP

在 ST 官网下载了 CubeMX 的 Mac 版软件,然后会发现关闭安全相关的限制也没办法打开该软件包。

image-20220222205346872

通过 tree 命令查看目录可以找到一个叫 SetupSTM32CubeMX-6_3_0 的应用程序,运行该文件即可进行安装。

image-20220222205452868

Mac 系统上可运行的程序都是 .App 结尾的文件夹,直接点击右键的 显示包内容 即可进入查看。

image-20220222205524560

双击 SetupSTM32CubeMX-6_3_0 即可运行安装程序。

image-20220222205545346

NEW PROJECT

在 CubeMX 的 Home 界面,可以 根据芯片型号新建项目,也可以 根据ST板子型号新建项目

image-20220222213510204

只需要在对应需要的 MCU 或者 板子上双击即可。

image-20220222213140557

如果使用ST自家的评估板,新建项目时建议直接选择 ACCESS TO BOARD SELECTOR

image-20220222212802407

它会帮助默认设置一些板子上的外设(它会提示 Initialize all peripherals with their default Mode? ),就不用用户自己去设置,否则选择 ACCESS TO MCU SELECTOR 就会在某些地方上产生默认配置差异,如 GPIO。

image-20220222213201459

下图为根据 ST 板子型号生成项目时默认配置的一些外设引脚。当然,还需要自行设置各个需要使用到的引脚的具体配置,如输入/输出、拉高/拉低等等。

image-20220222213417943

下图为根据 ST 芯片信号生成项目时默认不配置任何引脚:

image-20220222213744404

DEBUG RECORDS

cmake .. ; make 时发现 cmake 无误,而 make 报错,提示 attempt to rename sepc 'link' to already defined spec 'nano_link'

image-20220222224906371

具体报错信息如下:

1
2
3
4
5
fatal error: /Users/liewzheng/bin/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/nano.specs: attempt to rename spec 'link' to already defined spec 'nano_link'
compilation terminated.
make[2]: *** [led_blink.elf] Error 1
make[1]: *** [CMakeFiles/led_blink.elf.dir/all] Error 2
make: *** [all] Error 2

CMakeLists.txt 文件中只有以下此句设计 specnano 关键字(下方注释是后来加上去的),此配置在 linux 平台上是运行正常的。

1
2
3
4
5
# 如果提示 linker 相关的错误,请删除  `-specs=nosys.specs` 和 `-specs=nano.specs` 这两个标志及所在临时文件夹并再次 `cmake .. ; make` 进行尝试
SET(CPU "-mcpu=cortex-m4")
SET(FPU "-mfpu=fpv4-sp-d16")
SET(FLOAT_ABI "-mfloat-abi=hard")
SET(MCU "${CPU} -mthumb ${FPU} ${FLOAT_ABI}" --specs=nosys.specs -specs=nano.specs)

解决方法

根据 Building Error from imported STM32CubeMX project 的解决方法,删除 -specs=nosys.specs-specs=nano.specs 这两个连接器的标志即可编译通过。

image-20220222230947465

删除该两个标志后,MCU 变量为 SET(MCU "${CPU} -mthumb ${FPU} ${FLOAT_ABI}"

WARNING: CANNOT FIND ENTRY SYMBOL ARCH_PATHS_FIRST

image-20220222235232398