Procházet zdrojové kódy

update: spi从机跑通了

Wendal Chen před 1 rokem
rodič
revize
a48fe1d016

+ 3 - 0
app/port/luat_base_air101.c

@@ -277,6 +277,9 @@ static const luaL_Reg loadedlibs[] = {
 #endif
 #ifdef LUAT_USE_FOTA
   {"fota", luaopen_fota},
+#endif
+#ifdef LUAT_USE_SPI_SLAVE
+  {"spislave", luaopen_spislave},
 #endif
   // {"opus", luaopen_opus},
   {NULL, NULL}

+ 1 - 0
app/port/luat_conf_bsp.h

@@ -42,6 +42,7 @@
 // OTP
 #define LUAT_USE_OTP 1
 #define LUAT_USE_TOUCHKEY 1
+#define LUAT_USE_SPI_SLAVE 1
 
 // #define LUAT_USE_ICONV 1
 

+ 5 - 0
app/port/luat_malloc_air101.c

@@ -11,6 +11,7 @@
 #define LUAT_LOG_TAG "heap"
 #include "luat_log.h"
 #include "wm_mem.h"
+#include "wm_ram_config.h"
 
 void* __wrap_malloc(size_t len);
 void  __wrap_free(void* ptr);
@@ -101,6 +102,10 @@ void luat_heap_init(void) {
     heap2_size -= 32*1024;
     ptr += 32*1024;
     #endif
+    #if defined(LUAT_USE_SPI_SLAVE)
+    heap2_size -= SLAVE_HSPI_MAX_SIZE;
+    ptr += SLAVE_HSPI_MAX_SIZE;
+    #endif
 
 #ifndef LUAT_USE_TLSF
 	bpool(ptr, heap2_size);

+ 3 - 3
app/port/luat_spi_slave_air101.c

@@ -77,10 +77,10 @@ int luat_spi_slave_read(luat_spi_slave_conf_t *conf, uint8_t* src, uint8_t* buf,
 }
 
 int luat_spi_slave_write(luat_spi_slave_conf_t *conf, uint8_t* buf, size_t len) {
-    LLOGD("从机-->主机 写入 %p %d", buf, len);
+    // LLOGD("从机-->主机 写入 %p %d", buf, len);
     int ret = tls_hspi_tx_data((char*)buf, len);
-    LLOGD("从机-->主机 写入 %p %d %d", buf, len, ret);
-    return 0;
+    // LLOGD("从机-->主机 写入 %p %d %d", buf, len, ret);
+    return ret;
 }
 
 int tls_hspi_writable(void);

+ 5 - 5
include/wm_ram_config.h

@@ -20,14 +20,14 @@ extern unsigned int __heap_start;
 /*High speed SPI or SDIO buffer to exchange data*/
 #define SLAVE_HSPI_SDIO_ADDR        ((unsigned int)(&__heap_end))
 
-#if TLS_CONFIG_HS_SPI
+// #if TLS_CONFIG_HS_SPI
 #define SLAVE_HSPI_MAX_SIZE         (0x2000)
-#else
-#define SLAVE_HSPI_MAX_SIZE         (0x0)
-#endif
+// #else
+// #define SLAVE_HSPI_MAX_SIZE         (0x0)
+// #endif
 
 /*Wi-Fi use buffer to exchange data*/
-#define WIFI_MEM_START_ADDR		(SLAVE_HSPI_SDIO_ADDR + SLAVE_HSPI_MAX_SIZE)
+// #define WIFI_MEM_START_ADDR		(SLAVE_HSPI_SDIO_ADDR + SLAVE_HSPI_MAX_SIZE)
 
 /*Store reboot reason by RAM's Last Word*/
 #define SYS_REBOOT_REASON_ADDRESS (0x20047EFC)