MicroPython开发之--用C添加接口(添加module)

       上一篇已经讲了microPython的大致框架,下面我们来试着添加一个module。

       定义一个module相对来说比较简单,下面分几个步骤详细说明一下:

     第一步:在ports/esp32文件夹下新建一个文件modtest.c (如果你是在其他平台而非esp32 请在对应文件夹下新建文件)

       下面打开该文件我们输入以下内容,来实现一个最简单的module:

可以看到modtest.c主要有三个部分,这三个部分是添加一个module必须要有的,可以打开官方的其他module文件,都是遵循这样的一个模型

  1. mp_rom_map_elem_t modtest_globals_table[];
  2. MP_DEFINE_CONST_DICT(mp_module_modtest_globals, modtest_globals_table);
  3. mp_obj_module_t mp_module_modtest;

这样一个简单的module已经定义好了。但是我们现在也仅仅是一个单独的c文件,还没有添加到编译文件里面,外部现在也没办法调用它。

第二步:毫无意外,要把module.c添加到Makefile文件中去

打开Makefile找到如下脚本的地方,按照格式添加modtest.c就可以了:

第三步:我们要把我们定义的module注册到micropython中去,这个是在mpconfigport.h文件中修改

找到MICROPY_PORT_BUILTIN_MODULES 定义的地方按照格式添加我们定义的module:

这里实际上需要我们添加的代码也就两行,第一行不用解释了吧,应用外部定义的结构体。第二个需要解释一下下,MP_QSTR_modtest这个名字要改成自定义的,MP_QSTR_这个一定要保留,后面的modtest就是在python中显示的module名字。

       make编译一下,再使用make deploy烧录进esp32。执行一下代码,如下图所示可以看到我们添加的modtest 模块已经成功了,只是现在这个module内部没有添加任何type和function,只能看看而已。下一篇我会讲下如何在module中添加function

  • 15
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Lanson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值