zoukankan      html  css  js  c++  java
  • 在micropython固件中增加自己的模块

         micropython中可以将自己做的模块以.py文件的方式存储,以备调用,但是这种方式容易被用户更改或者抄袭,所以micropython允许用户将自己的模块增加到标准的固件里。由于这部分工作需要linux系统下进行的,所以我用了VNC控制树莓派进行编译。有些设置权限的步骤,如果在直接登录的linux上不需要的话,请自行忽略。

    1.安装arm-none-eabi-gcc交叉编译工具和gcc编译器。

      sudo apt-get install gcc-arm-none-eabi
      sudo apt-get install gcc

    2.下载micropython源码包到本地,我下载到了pi目录下

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

    3.修改micropython权限

      sudo chmod -R 777 /home/pi/micropython/

    4.编写自定义模块

      在/home/pi/micropython/ports/stm32/modules/ #目录下增加自己的.py模块

    5.更改运行目录到交叉编译工具

      cd /home/pi/micropython/mpy-cross/ #切换至交叉编译器目录下

    6.执行交叉编译

      make #执行交叉编译

    7.更改运行目录至STM32

      cd /home/pi/micropython/ports/stm32/ #切换至STM32目录下

    8.执行编译

      sudo make BOARD=PYBV10 #编译生成UDF、HEX文件

    编译完成后在stm32目录下有个build-PYBV10文件夹,在里面可以找到firmware.duf和firmware.hex,选择自己想要的文件烧写的硬件去吧!

     

    2019-11-22补充:如果需要编译多线程固件,将STM32目录下mpconfigport.h中        

    #define MICROPY_PY_THREAD           (0)

    改为 

    #define MICROPY_PY_THREAD           (1)

    然后进行上面操作即可!

    然而,github上最新的源码STM32/里面没有了modules/文件夹,查看makefile文件,发现少了FROZEN_MPY_DIR ?= modules,而多了这句话:FROZEN_MANIFEST ?= boards/manifest.py

    打开boards/manifest.py,内容如下:

     而这几个模块正是之前版本里modules文件夹里的模块

    也就是说想要增加py文件到固件,除了增加py文件外还需要修改manifest.py里的内容。具体方法如下:

    在micropython/drivers/里增加modules文件夹用来放置自定义的py模块,在manifest.py里增加如下代码:

    freeze('$(MPY_DIR)/drivers/modules', )

     然后正常编译就可以了!

     

  • 相关阅读:
    Java菜鸟之java基础语法,运算符(三)
    Lotus迁移到Exchange 2010 POC 之Domino Server的配置!
    hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决办法
    【targeting学习笔记】Display Advertising Targeting
    Domino 迁移到Exchange 之 Domino Admin 安装!
    sqlite3使用详解(Qt版本)
    .net反混淆脱壳工具de4dot的使用
    破解NET的四大神器(转)
    C#让应用程序只运行一个实例的几种方法
    Windows server 2008 R2实现多用户远程连接
  • 原文地址:https://www.cnblogs.com/sunsuoli/p/11094987.html
Copyright © 2011-2022 走看看