一、MicroPython移植到任意平台(简介以及源码裁剪)

2023-11-14

目录

一、MicroPython简介

二、MicroPython源码

1、源码获取

2、源码介绍

三、移植条件

四、系统结构

 五、移植过程


一、MicroPython简介

适用于嵌入式设备的python开源解释器,占用资源少,可移植性强。

二、MicroPython源码

1、源码获取

GitHub - micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

本次移植使用代码master分支,标签v1.20.0。

2、源码介绍

重点关注port和py文件夹

ports为平台相关接口,py为python解释器的核心代码。 

ports文件夹中包含如下图所示

 为当前主流平台的移植和适配,我们本次针对未实现平台做移植,所以重点关注ports/minimal文件夹。

接下来的适配和修改也是在minimal文件下进行。

三、移植条件

1、硬件:STM32F103VET6(512KBflash,64KBRAM)

2、软件:基于FreeRtos实时操作系统,移植不做介绍,

详见:FreeRtos移植到STM32_BIN-XYB的博客-CSDN博客

3、编译器编码用keil。

四、系统结构

 五、移植过程

1、将如下文件拷贝到工程文件下(OsLib\MicroPython),MicroPython需新建

2、进入ports文件夹,删除无用文件,只保留esp8266文件夹(移植过程中用来参考内存垃圾回收的实现,移植完毕会删除)和 minimal,minimal是MicroPython专门针对未支持的嵌入式平台的源文件,本次移植我们使用minimal做移植。裁剪后如下图:

六、至此源码介绍以及裁剪完成,后续步骤请查看本专栏后续章节。

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

一、MicroPython移植到任意平台(简介以及源码裁剪) 的相关文章

随机推荐

  • int与char之间的相互转换(c/c++)

    int 转换为char 0 即可 int a 5 char b a 0 注意 1 这里的b得到的字符型的5 2 由于char只有一个字节的空间 所以int只能是0 9之间的数 char 转换为int 0 即可 char a 5 int b
  • HSV介绍二:HSV颜色识别-HSV基本颜色分量范围

    一般对颜色空间的图像进行有效处理都是在HSV空间进行的 然后对于基本色中对应的HSV分量需要给定一个严格的范围 下面是通过实验计算的模糊范围 准确的范围在网上都没有给出 H 0 180 S 0 255 V 0 255 此处把部分红色归为紫色
  • 服务器电脑的作用,什么是wins服务器及其作用 -电脑资料

    问 什么是 WINS服务器 有什么作用 答 WINS Windows Internet Name Service 服务器主要用于NetBIOS名字服务 它处理的是NetBIOS计算机名 Computer Name 所以也被称为NetBIOS
  • vue3 mitt路由跳转后 on事件获取不到值的奇葩问题解决

    vue3不再支持大家试用this 那原型链这种东西自然是要命了 好在我们还有第三方插件mitt 但这东西是真的坑啊 比如我们定义 EventBus emit 然后马上进行路由跳转 EventBus emit datas Acquis rou
  • 苹果手表测心电的原理

    苹果手表 Apple Watch 测心电的原理是通过一种称为光电容积脉搏波法 photoplethysmography PPG 的技术来实现的 此外 它还使用了一种名为电极传感器的功能来检测心电图 ECG 信号 以下是苹果手表测量心电和心率
  • 加速AndroidStudio的编译和卡顿等待说拜拜!

    Android studio 2 2 当中有一项新的功能 Dex In Process 这项功能可以动态的加快编译速度 以及提高Instant Run 的效率 那么怎么来使用这项新功能呢 你只需要修改 gradle properties 这
  • Android 进程保活招式大全

    https mp weixin qq com s biz MzA3NTYzODYzMg mid 2653577617 idx 1 sn 623256a2ff94641036a6c9eea17baab8
  • Android开发网上的一些重要知识点

    1 android单实例运行方法 我们都知道Android平台没有任务管理器 而内部App维护 者一个Activity history stack来实现窗口显示和销毁 对于常规从快捷方式运行来看都是startActivity可能会使用FLA
  • SonarQube 04 SonarScanner的使用 Web Go项目扫描

    Web前端项目扫描 root jenkins master devops web service master ls build index html Jenkinsfile1 package lock json src config Je
  • Graph-node:创建一个新的subgraph

    Graph node 创建一个新的subgraph 1 合约源码 以TetherToken为例 TetherToken 2 开发子图 作为子图开发人员 您可以定义 The Graph 正在索引哪些区块链数据以及如何存储这些数据 以下是子图定
  • 为什么很多python文件中 都有这句代码if __name__ == ‘__main__‘:

    最近学习python 看到大多数写的好一点的python脚本或者程序中都会有 if name main 这句代码 然后收集了一些资料分享 1 这段代码是干嘛用的 python文件一般有两种使用方法 第一种是直接运行python文件 第二种是
  • 毕业设计基于OpenMV的火灾检测及人员搜寻智能车

    0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求 为了大家能够顺利以及最少的精力通过毕设 学长分享优质毕业设计项
  • GPT-4震撼发布:多模态大模型:Plus用户优先试用

    OpenAI 刚刚宣布正式推出 GPT 4 GPT 4 是 Generative Pre trained Transformer 4 的缩写 即生成型预训练变换模型 4 这是 OpenAI 努力扩展深度学习的最新里程碑 GPT 4 是一个大
  • Linux-0.11操作系统实验5-信号量的实现和应用

    实验环境 信号量的实现和应用 实验理论 Linux 0 11操作系统实验5理论 信号量与临界区 实验任务 在 Ubuntu 下编写程序 用信号量解决生产者 消费者问题 在 linux 0 11 中实现信号量 用生产者 消费者程序检验之 用信
  • python 快速排序的实现

    快速排序 快速排序 Quicksort 是对冒泡排序的一种改进 快速排序算法通过多次比较和交换来实现排序 其排序流程如下 首先设定一个分界值 通过该分界值将数组分成左右两部分 将大于或等于分界值的数据集中到数组右边 小于分界值的数据集中到数
  • DVWA-10.XSS (DOM)

    大约 跨站点脚本 XSS 攻击是一种注入问题 其中恶意脚本被注入到原本良性和受信任的网站上 当攻击者使用 Web 应用程序发送恶意代码 通常以浏览器端脚本的形式 时 就会发生 XSS 攻击 给其他最终用户 允许这些攻击成功的缺陷非常普遍 并
  • IDEA2021/2020 Run Dashboard的打开方法

    IDEA中微服务在service窗口以配置方式启动 网上千篇一律的在 workspace xml中配置Run Dashboard 但是只有在旧版本中才有这个节点的配置 但是新版的该怎么办呢 压根就没有这个节点 硬着头皮添加进去你会发现 问题
  • 卫星电话是直接与卫星通信还是通过地面站?

    问题 卫星电话是直接与卫星通信还是通过地面站 如果直接与卫星通信 那么得多大的发射功率 那么小的手机怎么能达到那个功率 如果是通过地面站的话 那么地面站岂不是和现在的蜂窝小区基站差不多了吗 我查卫星通信的时候 有一个人举例说明卫星通信的作用
  • 病毒分类

    根据病毒存在 隐藏 感染和激活的方式进行分类 寄生病毒 这是最常见的病毒类型 病毒并不是一个独立的程序 而是嵌入某个实用程序的一段代码 嵌入病毒的实用程序 称为感染了病毒的实用程序 一旦运行感染了病毒的实用程序 将首先激活病毒 由病毒完成对
  • 一、MicroPython移植到任意平台(简介以及源码裁剪)

    目录 一 MicroPython简介 二 MicroPython源码 1 源码获取 2 源码介绍 三 移植条件 四 系统结构 五 移植过程 一 MicroPython简介 适用于嵌入式设备的python开源解释器 占用资源少 可移植性强 二