常见问题列表

  1. data分区文件执行失败

    问题log

    components/fs/littlefs/littlefs_vfs.c:679:error: lfs_vfs_open /data/led_test.py failed, ret - -2
    OSError: 2
    

    如果你执行的文件是 官方/data分区的app, 以上问题的原因是 littlefs.bin 没有烧录导致.

    解决办法
    • 使用快速上手文档中的官方固件和烧录方法烧录

2.官方案例拷贝到sdcard执行失败

问题log

# Traceback (most recent call last):
  File "/sdcard/led_test.py", line 1
SyntaxError: invalid syntax

出现以上问题一般都是语法错误

解决办法
  • 查看对应行 是否有明显的语法错误

  • 检查文件是不是转化为unix 格式

  1. 应用如何开机启动

    解决办法

    diff --git a/application/example/py_engine_demo/appdemo.c b/application/example/py_engine_demo/appdemo.c
    index 224e39398..41de13f8c 100644
    --- a/application/example/py_engine_demo/appdemo.c
    +++ b/application/example/py_engine_demo/appdemo.c
    @@ -111,10 +111,8 @@ static struct cli_command command = {
    
    int application_start(int argc, char *argv[])
    {
    -    int  ret = aos_cli_register_command(&command);
    -    if (ret) {
    -        printf("register micropython command failed \n");
    -    }else{
    -        printf("register micropython command succeed \n");
    -    }
    +
    +    int arg_num =  2 ;
    +    char* argvs[] = {"python","/sdcard/main.py"} ;
    +    handle_identity_cmd("",0,arg_num,argvs);
    }
    
    • 按照以上patch ,修改application/example/py_engine_demo/appdemo.c

    • arg_num 是参数个数,最小为2 ,如果文件有参数,按需增加

    • argvs是 Python 启动参数数组,第一个元素固定不变,第二个元素是需要执行的文件,后面可以扩展执行文件需要传入的参数,一次添加到数组中去