源码来自

https://github.com/apache/incubator-nuttx-apps/pull/840

https://github.com/apache/incubator-nuttx-apps/tree/787ac90600c28b0edd52067e8a21a54635459f4e/interpreters/micropython
具体修改了哪些文件,可以从这个链接查看:
https://github.com/micropython/micropython/compare/master…mransom-campbell:micropython:nuttx

编译说明

<1>. 只能在 Linux(ubuntu) 下编译

osx下出现错误:clang: error: unknown argument: '-msmall-data-limit=0'
ricsv工具链下载地址:https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz

<2>. 修改Application.mk

将 OBJS 后的 = 改为 += so Applications can add their own object files manually.
否则在最后的ld阶段,会出现 micropython_main 未定义的错误

<3>. 编译tools/kconfig-frontends

./configure --enable-mconf
make
sudo make install
sudo ldconfig # 必须运行,否则会出现 libkconfig-parser-4.11.0.so 文件找不到的错误!

<4>. chown manfeel:manfeel /dev/ttyACM0

否则在部署阶段:
make download ESPTOOL_PORT=/dev/ttyACM0 ESPTOOL_BINDIR=../esp-bins
会因为权限不足无法继续(也可以通过rules文件修改,但我懒-_-)

<5>. 修改 arch/risc-v/src/esp32c3/esp32c3_usbserial.c

 #ifdef CONFIG_SERIAL_TERMIOS#  include <termios.h>
+#  include <nuttx/serial/tioctl.h>#endif

否则会出现两个宏未定义

目前还无法成功运行micropython

直接panic(但通过命令行参数可以执行命令!

MicroPython v1.16-147-g4db1898f5-dirty on 2022-08-18; nuttx version
Use Ctrl-D to exit, Ctrl-E for paste mode
riscv_exception: EXCEPTION: Illegal instruction. MCAUSE: 00000002
riscv_exception: PANIC!!! Exception = 00000002
up_assert: Assertion failed at file:common/riscv_exception.c line: 89 task: micropython
riscv_registerdump: EPC: 00000000
riscv_registerdump: A0: 3fc8f2e4 A1: 00000004 A2: 00000000 A3: 00000064
riscv_registerdump: A4: 00000038 A5: 00000000 A6: 00000048 A7: 0000003d
riscv_registerdump: T0: 42032efa T1: 0000000f T2: 00000000 T3: 00000000
riscv_registerdump: T4: 00000000 T5: 00000000 T6: 00000000
riscv_registerdump: S0: 3fc8f2e4 S1: 00000000 S2: 3fc86000 S3: 000003e8
riscv_registerdump: S4: 3fc8f2fc S5: 00000344 S6: 3fc8f2f6 S7: 3c0b2000
riscv_registerdump: S8: 3c0b7000 S9: 3c0b7000 S10: 3c0b3000 S11: 00000000
riscv_registerdump: SP: 3fc9e8f0 FP: 3fc8f2e4 TP: 00000000 RA: 42002b00
riscv_dump_stack: IRQ Stack:
riscv_dump_stack: sp:     3fc83cd0
riscv_dump_stack:   base: 3fc83750
riscv_dump_stack:   size: 00000600
riscv_stackdump: 3fc83cc0: 3fc85000 3c0b1000 3fc9e86c 42004768 3fc908fc 00001880 00000059 3c0b05e4
riscv_stackdump: 3fc83ce0: 3fc85198 00001880 3fc8f2fc 000003e8 3c0b0000 3fc9e86c 00000002 42002fa0
riscv_stackdump: 3fc83d00: 00000002 00000042 80000000 42000684 3fc86000 00000000 3fc85000 40382f62
riscv_stackdump: 3fc83d20: 00000000 00000000 00000000 4200078e 00000000 00000000 00000002 403801e4
riscv_dump_stack: User Stack:
riscv_dump_stack: sp:     3fc9e8f0
riscv_dump_stack:   base: 3fc9cb10
riscv_dump_stack:   size: 00001fc0
riscv_stackdump: 3fc9e8e0: 00000000 00000000 00000000 00001880 3c0b7000 3c0b7000 3c0b7000 3fc925c0
riscv_stackdump: 3fc9e900: 00000115 00000000 3fc8f2e4 42002c3c 00000000 00000115 3fc9ca60 4200f374
riscv_stackdump: 3fc9e920: 3c0b7000 00000000 3fc9ca60 4200edb0 00000005 00000005 3c0b7000 3c0b7000
riscv_stackdump: 3fc9e940: 3fc86a3c 00000115 00000000 4200f41a 00000018 00000000 3fc9e978 3fc9ca60
riscv_stackdump: 3fc9e960: 3fc9cad0 00000002 00000000 420592fa 00000001 3fc9caf0 00000000 3fc86a5c
riscv_stackdump: 3fc9e980: 3fc86a5c 00000001 00000048 0000003d 3c0b7000 3c0b7000 fffffffe 42020b46
riscv_stackdump: 3fc9e9a0: 90d94e13 00000000 5fdff20a 8afe7351 ac0098b7 00000060 3fc91cd0 42001770
riscv_stackdump: 3fc9e9c0: a2dc149b fb9675ec 3fc91cd0 42003f40 88173f2a 00000003 3fc9f170 42002004
riscv_stackdump: 3fc9e9e0: 82ae4f69 00000060 3fc9eae0 42004114 00000006 00000006 00000000 3fc85000
riscv_stackdump: 3fc9ea00: 00000006 3fc9ea64 00000088 42002256 00000010 00000000 3fc9f270 3fc9eae0
riscv_stackdump: 3fc9ea20: b82b6fb1 00000000 00000000 42003d4a 00000000 00001fc0 3fc9cad0 3fc9cb10
riscv_stackdump: 3fc9ea40: 00000000 3fc9c130 3fc86a00 42058d7c 00000000 00000000 42020cd2 42035bd0
riscv_stackdump: 3fc9ea60: 00000004 42020d3c 00000000 00000000 00000000 00000000 00000000 00000000
riscv_stackdump: 3fc9ea80: 00000000 00000000 00000000 00000000 00000000 00000000 42020cd2 42003082
riscv_stackdump: 3fc9eaa0: 00000000 00000000 3fc9caf0 00000001 00000000 00000000 00000000 42001164
riscv_showtasks:    PID    PRI     STACK   COMMAND
riscv_showtasks:   ----   ----      1536   irq
riscv_dump_task:      0      0      2016   Idle Task
riscv_dump_task:      1    224      1984   hpwork 0x3fc85280
riscv_dump_task:      2    100      1984   nsh_main
riscv_dump_task:      3    223      1984   rt_timer
riscv_dump_task:      4    253      6608   wifi
riscv_dump_task:      5    100      8128   micropython

esp32c3 nuttx 移植 micropython 尝试相关推荐

  1. STM32H743开发板移植micropython并外扩32M的SQPI flash和32M的SDRAM

    文章目录 一.搭建编译环境 二.修改源码 1.复制源码 2.修改源码 2.1修改mpconfigboard.h文件 2.2修改stm32h7xx_hal_conf.h文件 2.3修改pins.csv文 ...

  2. 移植 MicroPython

      MicroPython项目支持多个不同的MCU或平台,他们在 MicroPython的port 目录里面.当我们的项目能够在port 目录里面找到支持的单片机时,我们可以直接应用port 目录里面 ...

  3. 在STM32F401RE(小钢炮CANNON开发板)移植MicroPython

    版权声明:本文为博主原创文章,未经博主允许不得转载. 小钢炮开发板STM32F401RE的MCU支持MicroPython,手头恰好有一块.因为在众多支持MicroPython的STM32芯片中数他性 ...

  4. micropython移植教程_移植MicroPython到NUCLEO_L476RG开发板

    在最新的 MicroPython 源码中,已经加入了STM32L476DISC开发板,但是还没有NUCLEO-L476RG开发板.而我只有NUCLEO-L476RG开发板,要在NUCLEO-L476R ...

  5. [二] Nuttx移植-星瞳pyboard开发板

    目录 一.Nuttx配置文件 二.构建自己的配置文件 1. include/board.h文件构建 2. kernel && scripts 构建 3. nsh/defconfig 构 ...

  6. u-boot移植初步尝试-tiny4412

    获取u-boot源代码 在u-boot官方网站下载uboot源码.ftp://ftp.denx.de/pub/u-boot/ 因为是第一次移植uboot,所以这里选的版本是 u-boot-2013.0 ...

  7. micropython stm32f401_在STM32F401RE(小钢炮CANNON开发板)移植MicroPython

    首先在树莓派下载并安装gcc编译器. sudo apt-get install gcc sudo apt-get install gcc-arm-none-eabi 下载MicroPython源码(h ...

  8. STM32F767ZI-NUCLEO移植运行micropython过程记录

    注意,本教程移植microPython是通过烧写hex文件实现的,网上其他教程很多是介绍使用USB DFU方式(设备boot0至高电平,通过DfuSeDemo烧写),由于自己还不熟没有使用这种方式,后 ...

  9. MM32F3277 MicroPython移植过程中对应的接口文件

    简 介: 给出了在MM32移植MicroPython过程中基础语法中Pin相关的内容. 关键词: MM32F3277,machine,Pin §01 MacinePin /* machine_pin. ...

最新文章

  1. C++与.net的编译方式
  2. 2020年阿里大数据一面面经,看看你还有啥不知道的?
  3. 入门:现实世界中的推荐系统(术语、技术等)
  4. python 代码分块_[代码全屏查看]-python多进程分块读取文件
  5. 基于matlab边缘提取的几种方法的比较
  6. c语言内置画直线函数库,C语言不调用库函数画直线
  7. Wireshark 抓包
  8. Mysql中给数据库,表,字段设置字符编码
  9. hua图软件 mac_10款Mac上设计师必备的设计绘图工具推荐和下载 | 玩转苹果
  10. 用大数据调控旅游市场
  11. 中国甜奶油粉市场趋势报告、技术动态创新及市场预测
  12. 当您给别人身份证复印件时请你注意!
  13. 深度卷积神经网络之AlexNet
  14. R3LIVE代码详解(一)
  15. Android高版本上传图片出现旋转问题(三星手机,小米8)
  16. 笔记本电脑同时连接有线网络和无线网络时,如何判断实际连接的网络
  17. 内网穿透实现P2P通信
  18. 如何对多个if-else判断进行优化
  19. 黑白棋游戏源代码分析
  20. ubuntu下安装UltraEdit

热门文章

  1. 用python画一棵好看的圣诞树
  2. C++实例(十)Word文档操作
  3. VC编译zxing-cpp(一维码或二维码库)
  4. strrpos() 函数
  5. http状态码413,并提示Request Entity Too Large的解决办法
  6. 决策树算法——拟合优化
  7. 通过ingress连自己MySQL_把H2数据库从jar包部署到Kubernetes,并解决Ingress不支持TCP的问题...
  8. urllib.request 设置代理进行爬取,防止被封IP,各种hander高级用法
  9. python播放视频代码_Python中操作各种多媒体,视频、音频到图片的代码详解
  10. 关于工作,为什么本地人干不过外地人?