MicroPython移植(2) : 实现一个MicroPython Module 的基本流程

本文详细介绍了如何实现MicroPython的自定义Module,以board为例,包含LED类和__name__方法。步骤包括使用模板代码实现基础函数、建立C代码与Python方法映射、定义mp_obj_type_t类型、声明模块全局表、定义qstr以及向系统注册模块。
摘要由CSDN通过智能技术生成

本文以module board为例, 说明mpy的module实现, board module包含一个 LED class和一个__name__方法

1. 使用模板代码进行基础函数的实现

使用mpy提供的模板代码, 声明python 方法及进行对应的c实现, 示例代码格式(忽略掉无关的实现细节):

static inline void led_off(board_led_obj_t * const led_obj) {
   
    //ignore the details
}

static inline void led_on(board_led_obj_t * const led_obj) {
   
    //ignore the details
}

void mp_led_init(void) {
   
    //ignore the details
}

void led_state(board_led_obj_t * led_obj, int state) {
   
    if (state == 1) {
   
        led_on(led_obj);
    } else {
   
        led_off(led_obj);
    }
}

void led_toggle(board_led_obj_t * led_obj) {
   
    if(led_obj->led_state == LED_ON) {
   
        led_off(led_obj);
    } else {
   
        led_on(led_obj);
    }    
}

void led_obj_print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值