MicroPython - 问题整理

本文介绍MicroPython中QSTR字符串的自动生成过程。2016年3月10日更新后,通过makefile脚本及makeqstrdefs.py生成QSTR定义,无需手动编辑qstrdefsport.h。文章举例说明了如何从源代码中查找并自动生成QSTR。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Creating Pyb Modules
注:
2016.03.10更新后,Micro Python中的Qstring由makefile脚本自动生成,无需在qstrdefsport.h手动添加。
自动生成的规则是,makefile会调用一个脚本(makeqstrdefs.py),使用正则查找源代码(.c)中以”MP_QSTR_”为前缀的字符。例如在led.c中:

...
STATIC const mp_map_elem_t led_locals_dict_table[] = {
    { MP_OBJ_NEW_QSTR(MP_QSTR_on), (mp_obj_t)&led_obj_on_obj },
    { MP_OBJ_NEW_QSTR(MP_QSTR_off), (mp_obj_t)&led_obj_off_obj },
    { MP_OBJ_NEW_QSTR(MP_QSTR_toggle), (mp_obj_t)&led_obj_toggle_obj },
    { MP_OBJ_NEW_QSTR(MP_QSTR_intensity), (mp_obj_t)&led_obj_intensity_obj },
};
...

那么makefile脚本就会自动生成MP_QSTR_on,MP_QSTR_off,MP_QSTR_toggle和MP_QSTR_intensity这4个字符串定义,在自动生成的头文件qstrdefs.generated.h内:

...
QDEF(MP_QSTR_intensity, (const byte*)"\xca\x3d\x09" "intensity")
...

Is 32kByte enough for micropyhton?


Wanted: Porting guide / developer guide


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值