|
一个偶然的机会得到一块gokit2 功能板 Gokit2.3 + Ai Thinker 方案, 底板为GoKit2.1
一个偶然的想法, 想做一个小项目
Keil 查盗版比较狠, 虚拟机中使用又不太方便
以上为废话背景
======================================================
1. 网站生成MCU代码, 下载下来
2. 使用新版的STM32CubeMX 打开一下.ioc, 选择Migrate 然后保存
3. 按照官方文档放文件

我把官方的文件中的.h放在Inc下, .c 放在Src中
4. 新建工程, 新建时选择 STM32 Project from an Existing STM32CubeMX Configuration File (.ioc)
选择步骤2中保存的ioc文件
5. 修改编译配置(重点)
项目 - properties - C/C++ Build - Settings - Tool Settings - MCU/MPU GCC Compiler - Include paths
../Core/Inc
../Drivers/STM32F1xx_HAL_Driver/Inc
../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy
../Drivers/CMSIS/Device/ST/STM32F1xx/Include
../Drivers/CMSIS/Include
../Drivers/Gizwits/Inc
../Drivers/Hal/Inc
../Drivers/Utils/Inc
按照上述步骤修改后, 可以build了
arm-none-eabi-objdump -h -S stm32f103c8t6.elf > "stm32f103c8t6.list"
arm-none-eabi-objcopy -O ihex stm32f103c8t6.elf "stm32f103c8t6.hex"
text data bss dec hex filename
29812 108 12564 42484 a5f4 stm32f103c8t6.elf
arm-none-eabi-objcopy -O binary stm32f103c8t6.elf "stm32f103c8t6.bin"
Finished building: default.size.stdout
Finished building: stm32f103c8t6.hex
Finished building: stm32f103c8t6.bin
Finished building: stm32f103c8t6.list
上面最重要的两点就是
1. 要把官方的文件放在Driver下,
2. 修改编译的Include
如果文件不放在Driver下, 比如 跟Driver同级, 极有可能会出现 __weak func 重定义问题, 看日志是 先编译了 gizwits_product.c 导致Hal库中的_[color=rgba(0, 0, 0, 0.85)][backcolor=rgba(0, 0, 0, 0.04)]__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart), [color=rgba(0, 0, 0, 0.85)][backcolor=rgba(0, 0, 0, 0.04)]redefinition of 'HAL_UART_RxCpltCallback'
[color=rgba(0, 0, 0, 0.85)][backcolor=rgba(0, 0, 0, 0.04)]
最后 ST家的版本有兼容问题 我所使用的的版本如下
STM32CubeMX : Version 6.12.1
STM32CubIDE: Version 1.16.1
|
|