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\{用户名}\.platformio\packages\framework-arduinoststm32\variants路径下(针对于windows)。这些内容都是编译会用到的内容。还记得之前板子描述文件中提到过的MARLIN_F407VE吗?在buildroot/share/PlatformIO/variants目录下有一个名为MARLIN_F407VE的文件夹,这可不是恰巧同名,前面的名称就是指代的这个文件夹的名称。MARLIN_F407VE中存放了和硬件直接相关的源码配置文件。

marlin固件烧录教程_marlin2.0应用到STM32实践(续)相关推荐

  1. marlin固件烧录教程_ESP32 MicroPython教程:uPyCraft IDE入门

    介绍 本MicroPython教程的目的是解释如何开始使用uPyCraft,这是一个支持ESP32 的MicroPython IDE. IDE (集成开发环境) 是一种软件, 它通常集成一组工具, 使 ...

  2. marlin固件烧录教程_Marlin固件配置教程详解

    首先从Marlin固件GitHub下载固件源代码,也可从Makeboard网盘下载. Marlin固件主要分为两个版本,一个是1.0.2-2版本,是稳定版,已经一年没怎么更新了,功能比较少,网上的教程 ...

  3. marlin固件烧录教程_【打印虎】Marlin firmware RepRap Prusa i3 3D打印机固件配置教程.pdf...

    [打印虎]Marlin firmware RepRap Prusa i3 3D打印机固件配置教程 [打印虎原创]RepRap_Prusa_i3_3D 打印机固件 Marlin_firmware 配置教 ...

  4. marlin固件烧录教程_i3型3D打印机制作详解――Marlin固件介绍

    Marlin固件下载 基本配置 使用 Arduino IDE 打开 marlin.ino,切换到 Configuration.h 即可查看并修改该文件.或者使用任何一款文本编辑器(notepad,no ...

  5. marlin固件烧录教程_小白穿越机教程-刷固件 | 穿越机如何刷最新的betaflight固件教程...

    关注公众号[FPV One],用最酷的姿势玩穿越机✈️ 哈喽,大家好,我是小哥! (这是一期系列教程,我会从原理,部件,组装,调参,飞行技巧等几个方面来介绍新手如何入门穿越机.) 往期精彩内容,别错过 ...

  6. ESP8266固件烧录教程

    在使用esp8266开发过程中,或者拿到买的esp8266模块时,有时需要先给esp8266刷所需要使用的固件,摸索许久,下面分享可用的经验教程. esp8266固件烧录分在线网站编译和esp32程序 ...

  7. ESP32固件烧录-初级入门

    我一开始入门esp32的时候找关于固件下载好长时间都没有找到适合入门的固件烧录教程.现在学了一段时间,所以想要写一篇关于esp32固件烧录的教程,去帮助一些入门的朋友. 这篇文章主要参考的官方文档的说 ...

  8. 3D打印机如何使用marlin固件控制普通57闭环步进电机-“教程”

    本次教程中主板型号为MKS GENL V2.1,创客之家的 探究原因是在b站看见大佬飞翔的AMX用雷赛57闭环步进做3D打印,但是可惜的是大佬刷的klipper固件,我用的marlin固件 在大佬评论 ...

  9. ESP8266-01s MQTT固件烧录

    ESP8266-01s 固件烧录 usb-ttl 与esp8266-01s 固件下载 接线 固件下载操作 测试 记录ESP8266-01s 固件烧录过程. usb-ttl 固件:⑦.MQTT透传AT固 ...

最新文章

  1. 线段树-离散化处理点
  2. 多线路虚拟主机解决方案
  3. koa mysql 存储过程_Sql中判断数据库、表、临时表、存储过程和列是否存在...
  4. 富二代谈起中国做技术的地位(转载)
  5. hdfs中8031是什么端口号_在宿主机如何访问docker中hadoop的hdfs:ip:9000啊, 端口映射出来啊...
  6. 在WordPress文章中插入表格的四种方法,史上最全
  7. 定时器name冲突会报错吗_部落冲突:冬季版本即将更新,多个超级兵种被曝光,会上线吗?...
  8. 【LeetCode 剑指offer刷题】查找与排序题11:Sort Colors
  9. JAVA--scjp证书。
  10. 计算机画图简笔画竹子,竹子简笔画图片教程
  11. 离散数学——成真赋值与成假赋值
  12. 微信小程序之文件上传PHP后台接收
  13. android点击按钮打开自带浏览器,android – 如何在默认浏览器或webview中打开按钮单击URL...
  14. 大学回忆录-tietie
  15. 【职业规划】阿里校园招聘对java本科生的要求
  16. 去除迅雷极速版 提示升级的广告
  17. iOS架构设计(一)- MVC
  18. js php通讯录,基于aotu.js实现微信自动添加通讯录中的联系人功能
  19. 详细解读PITI:开启diffusion models image-to-image新时代
  20. KDZD8600漏电保护检测仪

热门文章

  1. 解决Vmware中一个虚拟机多个网卡,同时既可以访问内网又可以访问外网。
  2. 外刊/网站公众号以一敌三的英语外刊精读公众号 英语外刊阅读
  3. python写签名程序
  4. 盘古开源:分布式存储如何打通Web2.0和Web3.0的存储鸿沟?
  5. 怎么把音频怎么转换mp3格式
  6. 百度语音识别JAVA代码_【百度语音识别】JavaAPI方式语音识别示例MP3转PCM
  7. 论文阅读——STD-Net:Retinal Image Segmentation with a Structure-Texture Demixing Network
  8. TCP 网络编程API - listen()、accept()
  9. 运行python程序最常用、最重要的方法_Python面试题(4)
  10. Cocos2d-x Lua Node与Node层级架构