#include "spi_flash_mmap.h" #include #define MEMORY_SIZE (1024*30) static uint8_t memory_pool[MEMORY_SIZE]; #define FLASH_CODE 0x10000 + 0x120000 //esp32 spi_flash_mmap_handle_t s_data_map_handle; const uint8_t *flash_code = NULL; int hal_write(int fd, const void *buf, int nbytes) { Serial.write((char*)buf,nbytes); return (nbytes); } int hal_flush(int fd) { return 0; } void hal_abort(const char *s){} unsigned char hal_read(int fd) { while (Serial.available() == 0); return Serial.read(); } void setup() { uint32_t data_flash_offset = FLASH_CODE; uint32_t map_size = 0x10000; // 64KB esp_err_t err = spi_flash_mmap( data_flash_offset, map_size, SPI_FLASH_MMAP_DATA, // as rodata (const void **)&flash_code, &s_data_map_handle); Serial.begin(19200); mrbc_init(memory_pool, MEMORY_SIZE); mrbc_init_class_digital(); mrbc_init_class_adc(); mrbc_init_class_pwm(); mrbc_init_class_i2c(); mrbc_init_class_spi(); mrbc_init_class_uart(); mrbc_init_class_get(); mrbc_init_class_wifi(); mrbc_create_task( (uint8_t *) flash_code, 0 ); mrbc_run(); } void loop() {}