当前位置: 首页 > news >正文

移植Linux(No MMU)到ESP32-S3

主要原理是利用mini-rv32ima,在EPS32上运行一个riscv32模拟器,在模拟器里运行无需MMU版的主线Linux 6.X

这位大佬已经把mini-rv32ima移植到esp32-s3的PlatformIO里的Arduino平台上,代码看着好像很简单,就几个脚本:来了来了,用单片机 ESP32-S3 跑 RISC-V 模拟器运行 Linux,这次启动只要 8 秒 | Architecting Life

主要移植思路参考它的文档即可,我主要是做出一些小修改,让他移植的这个兼容不同版本的EPS32-S3

 

git clone https://github.com/jeason1997/esp32s3-rv32ima.git

vscode安装platformio,建议直接在微软的CodeSpaces里操作,安装快很多

通过platformio打开esp32s3-rv32ima这个项目

在菜单栏底部,选择对应的模板

image

 点击下方的✔开始编译

image

编译完成后,在项目文件夹下的'.pio/xxx(开发板的名字)/‘下面会发现生成的引导,分区表跟固件

image

 

烧录参考官方文档:Flashing Firmware - ESP32-S3 - — esptool latest documentation

esp的程序会生成3个文件,一个引导文件bootloader.bin烧录到0x0处,一个分区表烧录到0x8000处,主程序固件烧录到0x10000处

像NuttX,Arduino,MicroPython等,它们都是在生成ESP32的固件的时候把它们合并到一个bin里了,所以直接烧录到0x0就行

esptool --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 write_flash -z \
0x0 .pio/build/esp32s3/bootloader.bin \
0x8000 .pio/build/esp32s3/partitions.bin \
0x10000 .pio/build/esp32s3/firmware.bin

 

 

移植到Arduno工程:

1.把src目录提取出来即可,然后把main.cpp改为xx.ino(跟文件夹同名),才能被arduino识别

2.把emulator文件夹内的脚本都挪到外面,Arduino好像识别不了文件夹里的代码

3.把mini-rv32ima.c里的 #include <esp32/spiram.h> 改为 #include "esp32-hal-psram.h",否则编译会报错找不到头文件

4.把分区表挪到根目录,并改名为 partitions.csv (这一步骤可选)

image

5.Arduino里的配置

image

需要改的地方:

Flash Mode:选QIO 120MHz(DIO:2脚数据线 较慢 兼容性好,QIO:4脚数据线 中等,OPI:8脚数据线 快速 但我板子上的不是这种Flash)

Flash Size:改为对应的容量

PSRAM:一般集成在芯片里的是8脚数据线的高速SPI,选 OPI 模式,如果是自己焊接连在外面的,例如8个引脚的ESP-PSRAM,这种就是4跟数据线的,选 QSPI 模式

Partition Scheme:可以选里面对应容量的分区模板,也可以选Custom,选Custom的话,要确保根目录有 partitions.csv 分区表来实现自己分区

# 8MB分区表
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,     
otadata,  data, ota,     0xe000,  0x2000,     
app0,     app,  ota_0,   0x10000, 0x3A0000,   
app1,     app,  ota_1,   0x3B0000,0x3A0000,   
spiffs,   data, spiffs,  0x750000,0xB0000,# 16M分区表
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x640000,
app1,     app,  ota_1,   0x650000,0x640000,
spiffs,   data, spiffs,  0xc90000,0x360000,
coredump, data, coredump,0xFF0000,0x10000,

 

http://www.sczhlp.com/news/154544/

相关文章:

  • 关于ws连接coinex偶尔会出现几分钟不更新数据的问题 - Charlie
  • 海南的网站建设公司俄罗斯最新军事新闻
  • 建设网站有几种渠道石家庄市住房和城乡建设厅网站
  • 苏州网站开发公司招聘怎么用手机做网站平台
  • 哪些公司做网站美美哒免费高清影院在线观看
  • 做网站后台搭建都用什么排名优化服务
  • ps设计师网站中建卓越建设有限公司网站首页
  • 做网站要运用到代码吗北京市网站设计-推广公司
  • 会网站制作的职业是利为汇wordpress
  • 关于网站建设要花多少钱wordpress应用商店
  • 政务服务 网站 建设方案深圳网站建设制作公司排名
  • 网站前端设计图电子商务网页制作是什么
  • 云南网站建设一度科技公司桂林建网站哪家好
  • 网站的想法网络营销与直播电商好就业吗
  • 纺织品东莞网站建设做网站文字大小
  • 郑州网站建设公司排行北京网站开发品牌
  • 专业建站推荐玩客云做网站
  • 企业营销类专业网站广州番禺人才网官网
  • 四川省建设工程造价信息网站网站建设 浏览器兼容
  • 题解:P9868 [NOIP2023] 词典
  • 304、渭城曲
  • AtCoder Beginner Contest 425
  • AT_agc052_b [AGC052B] Tree Edges XOR
  • 菠菜网站怎样做安全教育主管部门建设的专题资源网站是
  • 男人和女人做性的网站长沙网站定制
  • 海南住房与城乡建设部网站网站策划用培训吗
  • 网站建设基本要素品牌型网站建设方案
  • 嘉兴网站广优化公司做化验的网站
  • 芍药居做网站公司品牌建设的核心
  • 网站被采集 更换模板电力建设网站进不去