Просмотр исходного кода

add: air302也添加fatfs,但还没测试

Wendal Chen 4 лет назад
Родитель
Сommit
7403eac635

+ 2 - 0
bsp/air302/Makefile.inc

@@ -7,6 +7,7 @@ CFLAGS_INC    +=  -I $(LUATOS_DIR)/lua/include \
 				  -I $(LUATOS_DIR)/luat/packages/fonts \
 				  -I $(LUATOS_DIR)/luat/packages/epaper \
 				  -I $(LUATOS_DIR)/luat/packages/qrcode \
+				  -I $(LUATOS_DIR)/luat/packages/fatfs \
 				  -I $(LUATOS_DIR)/bsp/air302/include 
 
 
@@ -20,6 +21,7 @@ LUATOS_SRC_DIRS += $(LUATOS_DIR)/lua/src \
 				    $(LUATOS_DIR)/luat/packages/epaper \
 				    $(LUATOS_DIR)/luat/packages/fonts \
 				    $(LUATOS_DIR)/luat/packages/qrcode \
+				    $(LUATOS_DIR)/luat/packages/fatfs \
 					$(LUATOS_DIR)/bsp/air302/src 
 
 

+ 3 - 2
bsp/air302/src/luat_air302_base.c

@@ -40,11 +40,12 @@ static const luaL_Reg loadedlibs[] = {
   {"libgnss", luaopen_libgnss},           // 处理GNSS定位数据
   {"fs",      luaopen_fs},                // 文件系统库,在io库之外再提供一些方法
   {"sensor",  luaopen_sensor},            // 传感器库,支持DS18B20
-  {"disp",  luaopen_disp},              // OLED显示模块,支持SSD1306
-  {"u8g2", luaopen_u8g2},              // u8g2
+  // {"disp",  luaopen_disp},              // OLED显示模块,支持SSD1306
+  // {"u8g2", luaopen_u8g2},              // u8g2
   {"crypto",luaopen_crypto},            // 加密和hash模块
   // {"eink",  luaopen_eink},              // 电子墨水屏,试验阶段
   //{"iconv", luaopen_iconv},             // 编码转换,暂不可用
+  //{"fatfs",   luaopen_fatfs},             // 挂载sdcard
 //------------------------------------------------------------------------
 // 联网及NBIOT特有的库
   {"socket",  luaopen_socket},            // 套接字操作

+ 14 - 4
bsp/win32/CMakeLists.txt

@@ -37,6 +37,7 @@ aux_source_directory(${TOPROOT}/components/freertos RTOS_SRCS)
 aux_source_directory(${TOPROOT}/components/freertos/port RTOS_PORT_SRCS)
 aux_source_directory(${TOPROOT}/luat/packages/lua-cjson CJSON_SRCS)
 
+
 add_library(freertos10 ${PORT_SRCS} ${RTOS_SRCS} ${RTOS_PORT_SRCS} ${MM_SRCS} ${MM2_SRCS})
 add_library(lua ${LUA_SRCS})
 add_library(luatos_msys ${PORT_SRCS})
@@ -75,6 +76,15 @@ add_library(rock_librs232 ${ROCK_LIB_RS232_SRCS} ./rock/librs232/bindings/lua/lu
 
 ENDIF ()
 
+include_directories(${TOPROOT}/luat/packages/fatfs)
+add_library(fatfs   ${TOPROOT}/luat/packages/fatfs/ff.c
+                    ${TOPROOT}/luat/packages/fatfs/ffsystem.c
+                    ${TOPROOT}/luat/packages/fatfs/ffunicode.c
+                    ${TOPROOT}/luat/packages/fatfs/diskio_impl.c
+                    ${TOPROOT}/luat/packages/fatfs/diskio_ramdisk.c
+                    ${TOPROOT}/luat/packages/fatfs/diskio_spitf.c
+                    ${TOPROOT}/luat/packages/fatfs/luat_lib_fatfs.c)
+
 #-----------------------
 # mbedtls
 include_directories(${TOPROOT}/components/mbedtls/include)
@@ -85,10 +95,10 @@ add_subdirectory(${TOPROOT}/components/mbedtls mbedtls.out)
 IF (WIN32)
 # 指定生成目标
 add_executable(luatos src/main_win32.c)
-target_link_libraries(luat freertos10 winmm)
-target_link_libraries(luatos freertos10 lua luatos_msys luat winmm cjson rock_lfs rock_librs232 mbedtls)
+target_link_libraries(luat freertos10 winmm fatfs)
+target_link_libraries(luatos freertos10 lua luatos_msys luat winmm cjson rock_lfs rock_librs232 mbedtls fatfs)
 ELSE ()
 add_executable(luatos src/main_posix.c)
-target_link_libraries(luat freertos10 pthread)
-target_link_libraries(luatos freertos10 lua luatos_msys luat pthread cjson mbedtls m)
+target_link_libraries(luat freertos10 pthread fatfs)
+target_link_libraries(luatos freertos10 lua luatos_msys fatfs luat pthread cjson mbedtls m)
 ENDIF ()

+ 0 - 1
bsp/win32/port/luat_base_win32.c

@@ -7,7 +7,6 @@
 LUAMOD_API int luaopen_win32( lua_State *L );
 int luaopen_lfs(lua_State * L);
 int luaopen_rs232_core(lua_State * L);
-int luaopen_fatfs(lua_State * L);
 
 static const luaL_Reg loadedlibs[] = {
   {"_G", luaopen_base}, // _G

+ 2 - 2
luat/packages/fatfs/diskio_ramdisk.c

@@ -62,7 +62,7 @@ DRESULT ramdisk_read (void* userdata, BYTE* buff, LBA_t sector, UINT count) {
             LLOGD("ramdisk read check error");
         return RES_ERROR;
     }
-    memcpy(buff, disk->ptr + (sector) * FF_MIN_SS, FF_MIN_SS*count);
+    memcpy(buff, (char*)disk->ptr + (sector) * FF_MIN_SS, FF_MIN_SS*count);
     return RES_OK;
 };
 
@@ -74,7 +74,7 @@ DRESULT ramdisk_write (void* userdata, const BYTE* buff, LBA_t sector, UINT coun
         return RES_ERROR;
     }
     //LLOGD("write(disk->ptr == %p) at %p , len = 0x%08X", disk->ptr, disk->ptr + (sector) * FF_MIN_SS, FF_MIN_SS*count);
-    memcpy(disk->ptr + (sector) * FF_MIN_SS, buff, FF_MIN_SS*count);
+    memcpy((char*)disk->ptr + (sector) * FF_MIN_SS, (void*)buff, FF_MIN_SS*count);
     return RES_OK;
 };
 

+ 3 - 3
luat/packages/fatfs/diskio_spitf.c

@@ -56,9 +56,9 @@ DSTATUS Stat = STA_NOINIT;	/* Disk status */
 static
 BYTE CardType;			/* b0:MMC, b1:SDv1, b2:SDv2, b3:Block addressing */
 
-BYTE FATFS_DEBUG = 0; // debug log, 0 -- disable , 1 -- enable
-BYTE FATFS_SPI_ID = 0; // 0 -- SPI_1, 1 -- SPI_2
-BYTE FATFS_SPI_CS = 3; // GPIO 3
+extern BYTE FATFS_DEBUG; // debug log, 0 -- disable , 1 -- enable
+extern BYTE FATFS_SPI_ID; // 0 -- SPI_1, 1 -- SPI_2
+extern BYTE FATFS_SPI_CS; // GPIO 3
 
 static void dly_us(BYTE us) {
 	if (us < 1) {