概述
platformio.ini文件在将default_envs配置为STM32F407VE_black之后实际起作用的就是下文中的这些内容:
[platformio]
src_dir = Marlin
boards_dir = buildroot/share/PlatformIO/boards
default_envs = STM32F407VE_black
[common]
default_src_filter = + - - +
extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
build_flags = -fmax-errors=5 -g -D__MARLIN_FIRMWARE__ -fmerge-all-constants
lib_deps =
LiquidCrystal
TMCStepper@>=0.6.2,<1.0.0
Adafruit NeoPixel
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
Adafruit_MAX31865=https://github.com/adafruit/Adafruit_MAX31865/archive/master.zip
LiquidTWI2=https://github.com/lincomatic/LiquidTWI2/archive/master.zip
Arduino-L6470=https://github.com/ameyer/Arduino-L6470/archive/0.8.0.zip
SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
SailfishRGB_LED=https://github.com/mikeshub/SailfishRGB_LED/archive/master.zip
SlowSoftI2CMaster=https://github.com/mikeshub/SlowSoftI2CMaster/archive/master.zip
#
# STM32F407VET6 with RAMPS-like shield
# 'Black' STM32F407VET6 board - http://wiki.stm32duino.com/index.php?title=STM32F407
# Shield - https://github.com/jmz52/Hardware
#
[env:STM32F407VE_black]
platform = ststm32
board = blackSTM32F407VET6
platform_packages = framework-arduinoststm32@>=3.107,<4
build_flags = ${common.build_flags}
-DTARGET_STM32F4 -DARDUINO_BLACK_F407VE
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT="BLACK_F407VE"
-IMarlin/src/HAL/HAL_STM32
build_unflags = -std=gnu++11
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
lib_ignore = Adafruit NeoPixel, TMCStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, SoftwareSerial
src_filter = ${common.default_src_filter} +
board_dir:指定板子描述文件的位置,platformio首先会根据指定位置寻找板子描述文件,找不到则到安装目录下寻找。这里指定了板子描述文件的位置:buildroot/share/PlatformIO/boards
board:指定板子描述文件的名称
根据上面两点的指示我们可以准确的找到板子描述文件:buildroot/share/PlatformIO/boards/blackSTM32F407VET6.json。文件通过JSON消息描述了硬件的具体信息。这里我们注意一下19行的位置:指定了编译时需要的与板子相关的源文件的文件夹名称(后面会用到,这里知道即可)。
platform_packages:指定编译的平台框架,这里用到的是framework-arduinoststm32,实际这是ST官方为STM32开发板使用Arduino平台开发的库。该库的结构很清晰整洁,兼容STM32全系列的芯片,里面已经包含了许多开发板样例,当然也可以仿照样例将自己的开发板添加到其中。
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py:这一行是执行python脚本文件,前面有一个前缀pre:表示在主脚本执行之前执行(这里可以理解为在编译之前执行即可)。该脚本文件可以在上述路径下找到。打开该文件后可以看到一段python原码,主要做了一件事情:将buildroot/share/PlatformIO/variants路径下的全部内容复制到,C:Users{用户名}.platformiopackagesframework-arduinoststm32variants路径下(针对于windows)。这些内容都是编译会用到的内容。还记得之前板子描述文件中提到过的MARLIN_F407VE吗?在buildroot/share/PlatformIO/variants目录下有一个名为MARLIN_F407VE的文件夹,这可不是恰巧同名,前面的名称就是指代的这个文件夹的名称。MARLIN_F407VE中存放了和硬件直接相关的源码配置文件。
最后
以上就是饱满白云为你收集整理的marlin固件烧录教程_marlin2.0应用到STM32实践(续)的全部内容,希望文章能够帮你解决marlin固件烧录教程_marlin2.0应用到STM32实践(续)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复