我是靠谱客的博主 饱满白云,最近开发中收集的这篇文章主要介绍marlin固件烧录教程_marlin2.0应用到STM32实践(续),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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实践(续)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部