您尚未登录。

楼主 # 2021-07-16 16:02:45

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

juiceVm risc-v虚拟机在esp32上运行linux kernel

RT.
有图有真相,固件在文章末尾
运行环境:
esp32 devkit v1开发板:
外置 2MB flash.
外接 spi psram 8MB:
    psram spi interface info:
         CS:4,CLK:5,MOSI:18,MISO:19
固件下载信息:
Compressed 1583728 bytes to 1294532...
Wrote 1583728 bytes (1294532 compressed) at 0x00001000 in 33.1 seconds (effective 382.7 kbit/s)...

linux_for_esp32_all.png
linux_for_esp32_sizefile.png
固件下载:
juicevm-risc-v_vm-for-esp32_20210716.zip

最近编辑记录 xiaohui (2021-07-16 16:33:56)

离线

楼主 #1 2021-07-16 16:52:20

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

这里运行的 opensbi+kernel+fs 总共 4.6MB 文件 塞到了 1.5MB的固件里

离线

#2 2021-07-16 17:18:33

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 712
积分: 668.5

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

超赞的项目!找个大flash的esp32开发板,可以跑些应用,看性能怎么样。

离线

#3 2021-07-16 17:19:26

zzm24
会员
注册时间: 2018-05-07
已发帖子: 68
积分: 25.5

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

只要有RAM,就是linux,流B

离线

#4 2021-07-16 17:28:41

findie
会员
注册时间: 2021-01-30
已发帖子: 14
积分: 11.5

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

大佬威武 就是我的psram是 按照esp32 wrover的接法弄的有估计吗

离线

楼主 #5 2021-07-16 17:31:40

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

findie 说:

大佬威武 就是我的psram是 按照esp32 wrover的接法弄的有估计吗

可以跑的,flash够大就可以,固件1.5MB左右,可以把引脚给我,我编译下的

离线

#6 2021-07-16 17:36:42

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 712
积分: 668.5

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

esp32最大支持16m的falsh和8m的psram,但esp32-s2支持1G的flash和1G的ram,esp32-s2硬件资源是够了,lz重新定义了能跑linux最廉价的riscv板子。

离线

#7 2021-07-16 17:57:08

findie
会员
注册时间: 2021-01-30
已发帖子: 14
积分: 11.5

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

xiaohui 说:
findie 说:

大佬威武 就是我的psram是 按照esp32 wrover的接法弄的有估计吗

可以跑的,flash够大就可以,固件1.5MB左右,可以把引脚给我,我编译下的

1-IO16               8
2-SD0(IO7)        7-SD2(IO9)
3-SD3(IO10)       6-IO17
4-                      5-SD1(IO8)

官方wrover内置psram的接法

离线

#8 2021-07-16 18:01:26

findie
会员
注册时间: 2021-01-30
已发帖子: 14
积分: 11.5

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

QQ浏览器截图20210716175957.jpg

离线

楼主 #9 2021-07-17 15:55:58

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

#define JUICEVM_PSRAM_DMA_CHAN        2
#define JUICEVM_PSRAM_PIN_NUM_MISO    7
#define JUICEVM_PSRAM_PIN_NUM_MOSI    8
#define JUICEVM_PSRAM_PIN_NUM_CLK     17
#define JUICEVM_PSRAM_PIN_NUM_CS      16

juicevm-risc-v_vm-for-esp32_wrover_20210717.zip

离线

楼主 #10 2021-07-17 17:07:38

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

离线

#11 2021-07-19 09:41:58

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 712
积分: 668.5

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

离线

楼主 #12 2021-07-19 15:05:06

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

离线

楼主 #13 2021-07-19 19:27:04

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

离线

#14 2021-07-20 14:17:44

findie
会员
注册时间: 2021-01-30
已发帖子: 14
积分: 11.5

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

Hello world!
esp_efuse_get_pkg_ver() 0
EFUSE_RD_CHIP_VER_PKG_ESP32D2WDQ5 2
EFUSE_RD_CHIP_VER_PKG_ESP32PICOD4 5
EFUSE_RD_CHIP_VER_PKG_ESP32PICOD2 4
EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302 6
EFUSE_RD_CHIP_VER_PKG_ESP32D0WDQ6 0
EFUSE_RD_CHIP_VER_PKG_ESP32D0WDQ5 1
This chip is ESP32-D0WD
ESP_ROM_EFUSE_FLASH_DEFAULT_SPI
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 2MB external flash
Minimum free heap size: 259564 bytes
juicevm_psram_init:300
Initializing bus SPI2...



停在这里不动了.... 是需要再等等?

离线

楼主 #15 2021-07-21 11:19:20

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

@findie
上传的固件貌似引脚还是有点问题,我的esp wrover到货了,我先调试完成再上传一个固件。感谢您的支持!!!

离线

楼主 #16 2021-08-02 19:14:26

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 224
积分: 172

Re: juiceVm risc-v虚拟机在esp32上运行linux kernel

@findie
上传esp32 WROVER-B支持的固件
juicevm-risc-v_vm-for-esp32_wrover_20210812.zip

启动日志

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:3676
ho 0 tail 12 room 4
load:0x40078000,len:12276
load:0x40080400,len:3000
entry 0x400805e8
Thisjuicevm_uart_inited

psram size 8MiB
Himem has 4456448 B of memory, 4456448 B of which is free. Testing the free memory...
Himem has 4MiB of memory, 4MiB of which is free. Testing the free memory...
esp_himem_reserved_area_size is 262144MiB of memory
heap_caps_get_free_size: 3930007
heap_caps_get_free_size + memfree: 8386455
heap_caps_get_largest_free_block: 2097152
esp_get_minimum_free_heap_size: 4181999
tmp_addr 0 low_mem_p 3f80086c
tmp_addr 1 low_mem_p 3f808870
tmp_addr 2 low_mem_p 3f810874
tmp_addr 3 low_mem_p 3f818878
tmp_addr 4 low_mem_p 3f82087c
tmp_addr 5 low_mem_p 3f828880
tmp_addr 6 low_mem_p 3f830884
tmp_addr 7 low_mem_p 3f838888
tmp_addr 8 low_mem_p 3f84088c
tmp_addr 9 low_mem_p 3f848890
tmp_addr 10 low_mem_p 3f850894
tmp_addr 11 low_mem_p 3f858898
tmp_addr 12 low_mem_p 3f86089c
tmp_addr 13 low_mem_p 3f8688a0
tmp_addr 14 low_mem_p 3f8708a4
tmp_addr 15 low_mem_p 3f8788a8
tmp_addr 16 low_mem_p 3f8808ac
tmp_addr 17 low_mem_p 3f8888b0
tmp_addr 18 low_mem_p 3f8908b4
tmp_addr 19 low_mem_p 3f8988b8
tmp_addr 20 low_mem_p 3f8a08bc
tmp_addr 21 low_mem_p 3f8a88c0
tmp_addr 22 low_mem_p 3f8b08c4
tmp_addr 23 low_mem_p 3f8b88c8
tmp_addr 24 low_mem_p 3f8c08cc
tmp_addr 25 low_mem_p 3f8c88d0
tmp_addr 26 low_mem_p 3f8d08d4
tmp_addr 27 low_mem_p 3f8d88d8
tmp_addr 28 low_mem_p 3f8e08dc
tmp_addr 29 low_mem_p 3f8e88e0
tmp_addr 30 low_mem_p 3f8f08e4
tmp_addr 31 low_mem_p 3f8f88e8
tmp_addr 32 low_mem_p 3f9008ec
tmp_addr 33 low_mem_p 3f9088f0
tmp_addr 34 low_mem_p 3f9108f4
tmp_addr 35 low_mem_p 3f9188f8
tmp_addr 36 low_mem_p 3f9208fc
tmp_addr 37 low_mem_p 3f928900
tmp_addr 38 low_mem_p 3f930904
tmp_addr 39 low_mem_p 3f938908
tmp_addr 40 low_mem_p 3f94090c
tmp_addr 41 low_mem_p 3f948910
tmp_addr 42 low_mem_p 3f950914
tmp_addr 43 low_mem_p 3f958918
tmp_addr 44 low_mem_p 3f96091c
tmp_addr 45 low_mem_p 3f968920
tmp_addr 46 low_mem_p 3f970924
tmp_addr 47 low_mem_p 3f978928
tmp_addr 48 low_mem_p 3f98092c
tmp_addr 49 low_mem_p 3f988930
tmp_addr 50 low_mem_p 3f990934
tmp_addr 51 low_mem_p 3f998938
tmp_addr 52 low_mem_p 3f9a093c
tmp_addr 53 low_mem_p 3f9a8940
tmp_addr 55 low_mem_p 3f9b8948
tmp_addr 56 low_mem_p 3f9c094c
tmp_addr 57 low_mem_p 3f9c8950
tmp_addr 58 low_mem_p 3f9d0954
tmp_addr 59 low_mem_p 3f9d8958
tmp_addr 60 low_mem_p 3f9e095c
tmp_addr 61 low_mem_p 3f9e8960
tmp_addr 62 low_mem_p 3f9f0964
tmp_addr 63 low_mem_p 3f9f8968
tmp_addr 64 low_mem_p 3fa0096c
tmp_addr 65 low_mem_p 3fa08970
tmp_addr 66 low_mem_p 3fa10974
tmp_addr 67 low_mem_p 3fa18978
tmp_addr 68 low_mem_p 3fa2097c
tmp_addr 69 low_mem_p 3fa28980
tmp_addr 70 low_mem_p 3fa30984
tmp_addr 71 low_mem_p 3fa38988
tmp_addr 72 low_mem_p 3fa4098c
tmp_addr 73 low_mem_p 3fa48990
tmp_addr 74 low_mem_p 3fa50994
tmp_addr 75 low_mem_p 3fa58998
tmp_addr 76 low_mem_p 3fa6099c
tmp_addr 77 low_mem_p 3fa689a0
tmp_addr 78 low_mem_p 3fa709a4
tmp_addr 79 low_mem_p 3fa789a8
tmp_addr 80 low_mem_p 3fa809ac
tmp_addr 81 low_mem_p 3fa889b0
tmp_addr 82 low_mem_p 3fa909b4
tmp_addr 83 low_mem_p 3fa989b8
tmp_addr 84 low_mem_p 3faa09bc
tmp_addr 85 low_mem_p 3faa89c0
tmp_addr 86 low_mem_p 3fab09c4
tmp_addr 87 low_mem_p 3fab89c8
tmp_addr 88 low_mem_p 3fac09cc
tmp_addr 89 low_mem_p 3fac89d0
tmp_addr 90 low_mem_p 3fad09d4
tmp_addr 91 low_mem_p 3fad89d8
tmp_addr 92 low_mem_p 3fae09dc
tmp_addr 93 low_mem_p 3fae89e0
tmp_addr 94 low_mem_p 3faf09e4
tmp_addr 95 low_mem_p 3faf89e8
tmp_addr 96 low_mem_p 3fb009ec
tmp_addr 97 low_mem_p 3fb089f0
tmp_addr 98 low_mem_p 3fb109f4
tmp_addr 99 low_mem_p 3fb189f8
tmp_addr 100 low_mem_p 3fb209fc
tmp_addr 101 low_mem_p 3fb28a00
tmp_addr 102 low_mem_p 3fb30a04
tmp_addr 103 low_mem_p 3fb38a08
tmp_addr 104 low_mem_p 3fb40a0c
tmp_addr 105 low_mem_p 3fb48a10
tmp_addr 106 low_mem_p 3fb50a14
tmp_addr 107 low_mem_p 3fb58a18
tmp_addr 108 low_mem_p 3fb60a1c
tmp_addr 109 low_mem_p 3fb68a20
tmp_addr 110 low_mem_p 3fb70a24
tmp_addr 111 low_mem_p 3fb78a28
tmp_addr 112 low_mem_p 3fb80a2c
tmp_addr 113 low_mem_p 3fb88a30
tmp_addr 114 low_mem_p 3fb90a34
tmp_addr 115 low_mem_p 3fb98a38
tmp_addr 116 low_mem_p 3fba0a3c
tmp_addr 117 low_mem_p 3fba8a40
tmp_addr 118 low_mem_p 3fbb0a44
tmp_addr 119 low_mem_p 3ffc1080
low_mem_size 3932160 low_mem_p 3f80086c
hi_mem_size + low_mem_size 8388608
Done!
Done!
juicevm booting...
g_juicevm_bin_bufData[0] b0
g_juicevm_bin_bufData[1] 73
g_juicevm_bin_bufData[2] 50
juicevm booting...
cpu ram init 48519/8388608 Bytes 0.58%
...
cpu ram init 8388487/8388608 Bytes 100.00%
cpu ram init 8388607/8388608 Bytes 100.00%
juicevm decompress...
juicevm decompress g_juicevm_bin_bufSize 25119 Bytes BINARY_OUTPUT_LEN 45176 Bytes
lz4 decompress 0/25119 Bytes 0.00%
                                   lz4 decompress 4801/25119 Bytes 19.11%
                                       lz4 decompress 11789/25119 Bytes 46.93%
                                        lz4 decompress 15262/25119 Bytes 60.76%
                                        lz4 decompress 18424/25119 Bytes 73.35%
                                        lz4 decompress 21379/25119 Bytes 85.11%
                                        lz4 decompress 24130/25119 Bytes 96.06%
[0;33m      _       _        __     ____  __ 

[0m[0;33m     | |_   _(_) ___ __\ \   / |  \/  |

[0m[0;33m  _  | | | | | |/ __/ _ \ \ / /| |\/| |

[0m[0;33m | |_| | |_| | | (_|  __/\ V / | |  | |

[0m[0;33m  \___/ \__,_|_|\___\___| \_/  |_|  |_|

[0m[0;33m email:               juicemail@163.com

[0mversion:                        unknow

interrupt_vertor_register_mag_init

rv_csr_register_init

csr_addr_misa 0000000000000000

csr_addr_mvendorid 000000003ffca248

csr_addr_marchid 000000003ffca248

csr_addr_mimpid 000000003ffca248

csr_addr_mhartid 000000003ffca248

rv_peripheral_device_init

[rv64_sim][dev][mmu]/mnt/ssd_prj/risc-v_sim/sim/rv.c(6599):rv_peripheral_device_mmu_init,Sv39 mode support only

[rv64_sim][dev][mtime]/mnt/ssd_prj/risc-v_sim/sim/rv.c(6253):rv_peripheral_device_mtime_init

[rv64_sim][dev][mtime]/mnt/ssd_prj/risc-v_sim/sim/rv.c(6272):pdev_mtime_irq_info 0x3ffbb678 80800003 80800007

[rv64_sim][dev][mtime]/mnt/ssd_prj/risc-v_sim/sim/rv.c(6283):pdev_mtime_irq_info_on_umode 0x0 80800003 80800007

[rv64_sim][dev][uart0]/mnt/ssd_prj/risc-v_sim/sim/rv.c(6046):rv_peripheral_device_uart0_init

[rv64_sim][dev][uart0]/mnt/ssd_prj/risc-v_sim/sim/rv.c(6062):pdev_uart0_irq_info 0x3ffbb658

rv sim start...

loading...

RV_CPU_SIM_RAM_START_ADDR 0
rv_cpu.reg.pc 80000000
nstr 80000000 30305073
cpu run...

heap: [0x8000cba8 - 0x80800000]



 \ | /

- RT -     Thread Operating System

 / | \     4.0.4 build Jul 12 2021

 2006 - 2021 Copyright by rt-thread team

Hello RT-Thread!

Hello RT-Thread! test_i = 0

Hello RT-Thread! test_i = 1

Hello RT-Thread! test_i = 2

Hello RT-Thread! test_i = 3

Hello RT-Thread! test_i = 4

Hello RT-Thread! test_i = 5

Hello RT-Thread! test_i = 6

Hello RT-Thread! test_i = 7

Hello RT-Thread! test_i = 8

Hello RT-Thread! test_i = 9

Hello RT-Thread! test_i = 10

Hello RT-Thread! test_i = 11

Hello RT-Thread! test_i = 12

Hello RT-Thread! test_i = 13

Hello RT-Thread! test_i = 14

Hello RT-Thread! test_i = 15

Hello RT-Thread! test_i = 16

Hello RT-Thread! test_i = 17

Hello RT-Thread! test_i = 18

Hello RT-Thread! test_i = 19

Hello RT-Thread! test_i = 20

Hello RT-Thread! test_i = 21

Hello RT-Thread! test_i = 22

Hello RT-Thread! test_i = 23

Hello RT-Thread! test_i = 24

Hello RT-Thread! test_i = 25

Hello RT-Thread! test_i = 26

Hello RT-Thread! test_i = 27

Hello RT-Thr

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn