esp32c3 nuttx 移植 micropython 尝试
源码来自
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 尝试相关推荐
- STM32H743开发板移植micropython并外扩32M的SQPI flash和32M的SDRAM
文章目录 一.搭建编译环境 二.修改源码 1.复制源码 2.修改源码 2.1修改mpconfigboard.h文件 2.2修改stm32h7xx_hal_conf.h文件 2.3修改pins.csv文 ...
- 移植 MicroPython
MicroPython项目支持多个不同的MCU或平台,他们在 MicroPython的port 目录里面.当我们的项目能够在port 目录里面找到支持的单片机时,我们可以直接应用port 目录里面 ...
- 在STM32F401RE(小钢炮CANNON开发板)移植MicroPython
版权声明:本文为博主原创文章,未经博主允许不得转载. 小钢炮开发板STM32F401RE的MCU支持MicroPython,手头恰好有一块.因为在众多支持MicroPython的STM32芯片中数他性 ...
- micropython移植教程_移植MicroPython到NUCLEO_L476RG开发板
在最新的 MicroPython 源码中,已经加入了STM32L476DISC开发板,但是还没有NUCLEO-L476RG开发板.而我只有NUCLEO-L476RG开发板,要在NUCLEO-L476R ...
- [二] Nuttx移植-星瞳pyboard开发板
目录 一.Nuttx配置文件 二.构建自己的配置文件 1. include/board.h文件构建 2. kernel && scripts 构建 3. nsh/defconfig 构 ...
- u-boot移植初步尝试-tiny4412
获取u-boot源代码 在u-boot官方网站下载uboot源码.ftp://ftp.denx.de/pub/u-boot/ 因为是第一次移植uboot,所以这里选的版本是 u-boot-2013.0 ...
- micropython stm32f401_在STM32F401RE(小钢炮CANNON开发板)移植MicroPython
首先在树莓派下载并安装gcc编译器. sudo apt-get install gcc sudo apt-get install gcc-arm-none-eabi 下载MicroPython源码(h ...
- STM32F767ZI-NUCLEO移植运行micropython过程记录
注意,本教程移植microPython是通过烧写hex文件实现的,网上其他教程很多是介绍使用USB DFU方式(设备boot0至高电平,通过DfuSeDemo烧写),由于自己还不熟没有使用这种方式,后 ...
- MM32F3277 MicroPython移植过程中对应的接口文件
简 介: 给出了在MM32移植MicroPython过程中基础语法中Pin相关的内容. 关键词: MM32F3277,machine,Pin §01 MacinePin /* machine_pin. ...
最新文章
- C++与.net的编译方式
- 2020年阿里大数据一面面经,看看你还有啥不知道的?
- 入门:现实世界中的推荐系统(术语、技术等)
- python 代码分块_[代码全屏查看]-python多进程分块读取文件
- 基于matlab边缘提取的几种方法的比较
- c语言内置画直线函数库,C语言不调用库函数画直线
- Wireshark 抓包
- Mysql中给数据库,表,字段设置字符编码
- hua图软件 mac_10款Mac上设计师必备的设计绘图工具推荐和下载 | 玩转苹果
- 用大数据调控旅游市场
- 中国甜奶油粉市场趋势报告、技术动态创新及市场预测
- 当您给别人身份证复印件时请你注意!
- 深度卷积神经网络之AlexNet
- R3LIVE代码详解(一)
- Android高版本上传图片出现旋转问题(三星手机,小米8)
- 笔记本电脑同时连接有线网络和无线网络时,如何判断实际连接的网络
- 内网穿透实现P2P通信
- 如何对多个if-else判断进行优化
- 黑白棋游戏源代码分析
- ubuntu下安装UltraEdit
热门文章
- 用python画一棵好看的圣诞树
- C++实例(十)Word文档操作
- VC编译zxing-cpp(一维码或二维码库)
- strrpos() 函数
- http状态码413,并提示Request Entity Too Large的解决办法
- 决策树算法——拟合优化
- 通过ingress连自己MySQL_把H2数据库从jar包部署到Kubernetes,并解决Ingress不支持TCP的问题...
- urllib.request 设置代理进行爬取,防止被封IP,各种hander高级用法
- python播放视频代码_Python中操作各种多媒体,视频、音频到图片的代码详解
- 关于工作,为什么本地人干不过外地人?