micropython 固件开发_Micropython编译固件的操作步骤

2023-10-30

目标:编译STM32F4固件并刷入到我们的开发板:STM32F407VET6

1.在Linux系统下进行编译操作,windows用户可以在虚拟机下运行Linux系统,推荐下载kali Linux系统:https://www.kali.org/downloads/,推荐使用虚拟机对应的系统包,虚拟机安装方法请到百度上获取。

1748337-20190918185328077-159416809.png

2.进入Linux系统后,打开终端(打开方法:点击鱼头指向的图标):

1748337-20190918185405496-1816949850.png

3.输入指令:sudo apt-get install git 敲击回车

目的:安装git工具

git的功能:下载数据

4.输入指令:sudo apt-get install gcc

输入指令:sudo apt-get install gcc-arm-none-eabi

目的:安装交叉编译器,交叉编译器的功能是对高级语言(比如:python、c语言...)翻译成低级语言(比如:汇编语言、机器语言...)的操作

5.输入指令:(必须采用git clone方式下载到Linux里面,不然会出错)

git clone --recursive https://github.com/micropython/micropython.git

git clone --depth=1 https://github.com/micropython/micropython.git

目的:利用git工具来下载我们目标文件--micropython源码

下载完成:会在home目录下找到名为micropython的文件夹

1748337-20190918190525737-93378461.png

请阅读该文件夹下的README.md文件,里面有详细介绍各个文件的功能。

在micropython/ports/stm32/boards文件夹里面可以看到支持的处理器和开发板。

6.输入指令:cd micropython

目的:从home根目录下进入到下一级micropython文件夹里面

指令:ls可以列出当前目录下面的文件

7.输入指令:cd ports/stm32/boards

目的:进入该目录选择我们的开发板芯片型号(STM32F407VET6),但是里面并没有该型号的对应版本,而是该系列的STM32F4DISC,所有我们使用该源文件编译出我们需要的STM32F4的固件文件。

8.输入指令:cp -r STM32F4DISC STM32F407VET6

目的:复制该源文件并重新命名为:STM32F407VET6

9.输出指令: cd ..

cd ..

cd ..

目的:cd ..指令是返回到上一级目录,目的是要返回至micropython目录下 (注意cd后面有一个空格)

10.输入指令:cd mpy-cross

make

目的:先编译一下MicroPython cross-compiler (micropython交叉编译器)

11.输入指令:cd ..

git init

git submodule update --init

目的:返回到micropython目录下,获取submodule子模块并更新

12.cd ports/stm32/make BOARD=STM32F407VET6

目的:进入stm32目录下进行编译操作,生成固件文件DFU或HEX或ELF......,BOARD=STM32F407VET6是用于指定到要编译的开发板(就是读取里面的源文件)

1748337-20200305095029986-1877065059.png

等待编译完成:编译成功会在stm32目录下生成一个build-STM32F407VET6文件夹,找到firmware.dfu或firmware.hex...固件文件拷贝到windows桌面。

14.开发板硬件设置boot0:1,boot1:0,使用USB连接电脑,打开DfuSe软件,连接上时会在DFU Devices下面会显示,有显示就是连接上了,然后点击右下角的Choose选择固件文件,然后点击Upgrade烧录,等待显示烧录成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

micropython 固件开发_Micropython编译固件的操作步骤 的相关文章

  • 大数据之Shell基础

    目录 1 shell概述 2 shell脚本入门 2 1 shell 解析器 2 2 脚本格式 3 shell中的变量 3 1 系统变量 3 2 自定义变量 4 运算符 4 1基本语法 4 2 案例实操 5 条件判断 5 1 基本语法 5
  • Python入门学习14(面向对象)

    一 内置方法 二 封装 1 封装的概念是指 将现实世界事物在类中描述为属性和方法 即为封装 2 什么是私有成员 为什么需要私有成员 现实事物有部分属性和行为是不公开对使用者开放的 同样在类中描述属性和方法的时候也需要达到这个要求 就需要定义
  • LSM树(Log-Structured Merge Tree)存储引擎

    LSM树 Log Structured Merge Tree 存储引擎 代表数据库 nessDB leveldb Hbase等 核心思想的核心就是放弃部分读能力 换取写入的最大化能力 LSM Tree 这个概念就是结构化合并树的意思 它的核
  • 双色球选号--python

    编程要求 根据提示 在右侧编辑器补充代码 编写一个能实现双色球选号的小程序 双色球选号由7个数字组成y 其中有6个红球 其号码的取值范围为 1 33 一个蓝球的取值范围为 1 16 要求6个红球从小到大排列 蓝球在最后输出 其输出格式为09
  • Java枚举类型在后台响应中的使用

    在前后台分离开发过程中 统一响应的格式可以使用枚举类型进行规范开发 对于不同的错误 异常类型可以响应不同的状态码和响应信息 1 枚举类型的简单理解 枚举类型就是包含了有限个枚举对象集合的类 而枚举对象就是集合中其中一个 可以使用枚举类名直接
  • 攻防世界 pwn forgot

    下面记录一下我在做攻防世界的pwn练习题中的forgot题目的过程 这个题目现在还是有些疑惑的 首先我们看一下题目的安全机制 然后IDA看一下主函数 int cdecl main size t v0 ebx char v2 32 esp 1
  • [ mongoDB ] - MongoDB 连接池

    一 mongoDB中的连接池 刚上手MongoDB 在做应用时 受以前使用关系型数据库的影响 会考虑数据库连接池的问题 关系型数据库中 我们做连接池无非就是事先建立好N个连接 connection 并构建成一个连接池 connection
  • TensorFlow与CUDA和cuDNN对应关系查询

    更新至2021 5 查询官方网址 https tensorflow google cn install source windows hl en tested build configurations
  • python操作Excel表格文件

    python作为一种高效的代码 通常用来处理重复繁琐的工作 读写Excel表格就是一种 今天我们总结一下如何用python处理Excel文件 1 读取Excel表格 这里我们用到xlrd模块 Excel read 1 导入xlrd模块 im
  • android linearlayout 把控件view置底部(放在页面最下方)

  • webpack中loader加载器的使用及原理(常用的loader加载器)

    webpack的loaders是一块很重要的组成部分 我们都知道webpack是用于资源打包的 里面的所有资源都是 模块 内部实现了对模块资源进行加载的机制 但是Webpack本身只能处理 js模块 如果要处理其他类型的文件 就需要使用 l
  • 电信光纤天翼网关将默认的路由模式修改为桥接模式

    前两年将家里的电信宽带升级到光纤 光猫也随之进行了升级 当时升级好后 电信工作人员介绍说新的光猫带有wifi功能 如果连接路由器可以不用配置路由器的拨号设置 说是升级到光纤后可以直接连接网线上网 不用再拨号了 当时也没怎么在意 网线连上路由
  • 基于 SpringBoot 的 4S店车辆管理系统,可作为毕业设计

    博主介绍 程序员徐师兄 7年大厂程序员经历 全网粉丝30W Csdn博客专家 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java技术领域和毕业项目实战 文章目录 1 简介 2 技术栈 3 功能总览 4 系统设计 4 1 系统设计
  • 1023 组最小数

    题目 给定数字 0 9 各若干个 你可以以任意顺序排列这些数字 但必须全部使用 目标是使得最后得到的数尽可能小 注意 0 不能做首位 例如 给定两个 0 两个 1 三个 5 一个 8 我们得到的最小的数就是 10015558 现给定数字 请
  • CURL解析超时的解决方案

    背景 项目中需要在抓取纷享销客CRM图片上传到OSS 调用OssClient php时 容易发生解析超时 多重试几次就ok 错误提示 2019 04 08 19 41 01 lumen DEBUG 出错文件 home zrj www adm
  • elementui——el-form动态表单props正确写法,如何使用 validateField

    el form动态表单props正确写法 如何使用 validateField
  • Pywinauto+某应用程序(学习至第9讲)--受阻

    文章目录 Pywinauto 某应用程序 学习至第9讲 受阻 问题点 1 安装第三方库 2 自动化的切入点 后端技术 程序个数 3 程序辅助检查工具的使用 inspect spy 4 pywinauto打开指定的应用程序 XXX exe 5
  • Matroska文件的SRT Subtitle

    1 SRT简单介绍 SRT是一种比较流行的文本字幕 因为是文本格式 所以就比较小了 因为其制作规范简单 一句时间代码 一句字幕 使得制作修改就相当简单 配合上 style文件还能让srt自带一些字体上的特效等 SRT文件中的字幕包括四个部分
  • 批量调整word 图片大小

    打开文档后 按Alt F11 在左边Porject下找到ThisDocument 右键插入模块 贴上下面的Sub Macro For Each iShape In ActiveDocument InlineShapesiShape Heig

随机推荐

  • 【安卓学习之常见问题】文件分享--文件不存在

    安卓学习之常见问题 文件分享 文件不存在 系列文章目录 提示 这里是收集了和文件分享有关的文章 安卓学习之常见问题 android路径及文件问题 安卓学习之常见问题 文件分享 文件不存在 文章目录 安卓学习之常见问题 文件分享 文件不存在
  • LabVIEW深度相机与三维定位实战(下)

    博客主页 virobotics的CSDN博客 LabVIEW深度学习 人工智能博主 所属专栏 LabVIEW深度学习实战 上期文章 LabVIEW深度相机与三维定位实战 上 如觉得博主文章写的不错或对你有所帮助的话 还望大家多多支持呀 欢迎
  • 什么是内存泄漏,一看就懂,一学就会!!大白话解释内存泄漏!通俗易懂!

    在 32 位环境下 一个程序占用 4GB 的内存 其中 内核空间 是被操作系统占用的 我们没法直接干预 保留区域 也不用来存储数据 只用作一些特殊目的 比如 你可以让空指针指向这里 除了这两个区域 剩下的那些内存才是被我们自己编写的程序所占
  • Oracle数据库常见版本

    在Oracle数据库的发展中 数据库一直处于不断升级状态 有以下几个版本 Oracle 8 Oracle 8i Oracle 8i表示Oracle正式向Internet上开始发展 其中i表示就是internet Oracle 9i Orac
  • 带你玩转Spring Cloud Tencent(一)概述

    项目地址 spring cloud tencent 介绍 Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案 Spring Cloud Tencent 实现了Spring Cloud 标准微服务 SPI 开发者可以基
  • PHP密码复杂性验证,JS检查密码强度 检查密码复杂度

    pass keyup function e var strongRegex new RegExp 8 A Z a z 0 9 W g var mediumRegex new RegExp 7 A Z a z A Z 0 9 a z 0 9
  • 电信光猫天翼网关usb插U盘共享文件

    ftp用不了 samba可以用 1 在电脑文件管理器中输入 192 168 1 1打开 在弹出框中输入光猫背后的账号密码登录即可打开共享的U盘 2 在手机ES文件管理器中 点右上角三点 新建 在弹出框中填入192 168 1 1和选择sam
  • Nginx 官网及中文官网

    英语官方 http nginx org 中文文档 http www nginx cn doc 转载于 https blog 51cto com hacker3389 1877270
  • 什么是大数据(转自知乎)

    声明 纯属个人收藏用 什么是大数据 大数据只是一个空洞的商业术语 就跟所谓的商业智能一样空洞无物 当然 这并不是说大数据没有意义 只是对于不同的人有不同的含义 A 对于投资人和创业者而言 大数据是个热门的融资标签 就和前几年流行的 SoLo
  • 磁盘快照技术

    一 概念解释 像照相机一样 机器快门一闪 很快就把刚刚的人像停留在了相纸上 存储系统中的数据 快照 与我们生活中所说的 照片 非常相似 所不同的是 照片的对象不是人 而是数据 如同照片留住了我们过去的摸样和岁月 快照把数据在某一时刻的映像也
  • 【数据结构】——顺序表介绍(独家介绍,小白必看!!)

    重点和易错点都用彩笔标记出来了 放心食用 数据结构分为线性表和非线性表 今天我们要学习的顺序表就是线性表中的一个小类 那么 何为线性表 线性表是指n个具有相同性质的数据元素的有限序列 常见的线性表有 顺序表 链表 栈 队列 字符串等等 注意
  • java非递归遍历二叉树 - Kaiqisan

    大家好 都吃晚饭了吗 我是Kaiqisan 是一个已经走出社恐的一般生徒 都说所有的递归都可以使用非递归的方式来解决 所以这次来一起康康非递归版本的二叉树的遍历 递归的本质就是不断往栈中塞入待执行代码 然后在代码块被执行的时候就会被调用执行
  • java时间格式化错误_java – SimpleDateFormat显示错误的分钟,秒和毫秒

    我已经编写了这个示例程序 我希望将日期转换为另一种格式 使用简单的日期格式时 我看不到预期的日期 public class TestDate param args public static void main String args Si
  • 聊一聊如何用IDEA追踪Bug?

    Debug用来追踪代码的运行流程 通常在程序运行过程中出现异常 启用Debug模式可以分析定位异常发生的位置 以及在运行过程中参数的变化 通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码 Debug开篇 首先看下ID
  • 仅仅上线一小时,下载量就破10W!阿里内部Java性能优化实战手册

    祸兮福之所倚福兮祸之所伏 上学的时候对这句话不以为然 但是在社会上走的时间越长越觉得有道理 前不久好兄弟和领导闹矛盾裸辞了 身为好兄弟的我总不能干看着吧 总要帮他找工作的 你们应该不会想我和他一起裸辞吧 大学的师兄有好几个在大厂 平常关系还
  • 在 Dockerfile 中 CMD 和ENTRYPOINT可以混着用吗?

    在 Dockerfile 中 CMD 和ENTRYPOINT可以混着用吗 在 Dockerfile 中 CMD 和 ENTRYPOINT 是两个不同的指令 它们可以单独使用 也可以结合使用 CMD 指令用于指定容器启动时默认执行的命令 它可
  • 利用回调函数消灭大量分支语句if,case

    1 背景 有这样一个场景 常见的通讯程序中 根据不同的消息类型 调用不同的处理函数 类似于处理登陆 退出登陆 发送消息等类型 上古操作可能会是这样的代码 void dealLogin std cout lt lt received logi
  • Android实现获取应用程序相关信息列表的方法

    本文所述为Androdi获取手机应用列表的方法 比如获取到Android应用的软件属性 大小和应用程序路径 应用名称等 获取所有已安装的Android应用列表 包括那些卸载了的 但没有清除数据的应用程序 同时在获取到应用信息的时候 判断是不
  • 替换字符串中的括号内容(java)

    问题描述 给你一个字符串 s 它包含一些括号对 每个括号中包含一个 非空 的键 比方说 字符串 name is age yearsold 中 有 两个 括号对 分别包含键 name 和 age 你知道许多键对应的值 这些关系由二维字符串数组
  • micropython 固件开发_Micropython编译固件的操作步骤

    目标 编译STM32F4固件并刷入到我们的开发板 STM32F407VET6 1 在Linux系统下进行编译操作 windows用户可以在虚拟机下运行Linux系统 推荐下载kali Linux系统 https www kali org d