• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

求助 micropython 中的两种固化方式

小葱拌豆腐 2019-10-22 浏览量:1009
int mp_find_frozen_module(const char *str size_t len void **data) {     #if MICROPY_MODULE_FROZEN_STR     mp_lexer_t *lex = mp_lexer_frozen_str(str len);     if (lex != NULL) {         *data = lex;         return MP_FROZEN_STR;     }     #endif     #if MICROPY_MODULE_FROZEN_MPY     const mp_raw_code_t *rc = mp_find_frozen_mpy(str len);     if (rc != NULL) {         *data = (void*)rc;         return MP_FROZEN_MPY;     }     #endif     return MP_FROZEN_NONE; }

micropython 的 .py 文件编译成 .mpy 文件后有两种存放方式:

  1. 存放在文件系统中,通过 import 调用
  2. 直接固化在固件中,这样就可以直接使用了

由于 rt-thread 提供的移植可以方便的使用文件系统,所以我使用该移植。 但是我目前想执行执行文件系统中的 .mpy 文件还不行,查看代码我发现在执行固化 .py 代码在内部有两种形式:

  1. MP_FROZEN_STR
  2. MP_FROZEN_MPY

我知道 MP_FROZEN_MPY 是执行固件中的模块,那么 MP_FROZEN_STR 是什么意思,这里是否和无法直接执行 .mpy 文件有关呢?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • MP_FROZEN_STR应该是从你的文件系统中读取的脚本,无法执行时,要查一下以下几种情况

    你的这个文件是不是存在

    文件的编码方式 是不是对的

    • 发布于 2019-11-20
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:0

相关问题

问题达人换一批

求助 micropython 中的两种固化方式