Dozingfiretruck 3 лет назад
Родитель
Сommit
8cfc2a6b98

+ 2 - 0
bsp/win32/include/luat_conf_bsp.h

@@ -32,6 +32,8 @@
 
 #define LUAT_FORCE_WIN32 1
 
+#define LUAT_USE_LCD
+
 #define LV_COLOR_16_SWAP 1
 #define LV_COLOR_DEPTH 16
 

+ 4 - 5
bsp/win32/port/luat_base_win32.c

@@ -37,12 +37,11 @@ static const luaL_Reg loadedlibs[] = {
   {"json", luaopen_cjson},             // json
   {"win32", luaopen_win32},            // windows 32 tools
   {"zbuff", luaopen_zbuff},            // 
-  {"mqttcore", luaopen_mqttcore},      // 
-  {"libcoap", luaopen_libcoap},        // 
+  // {"libcoap", luaopen_libcoap},        // 
   {"crypto", luaopen_crypto},
-  {"fatfs", luaopen_fatfs},
-  {"sfd",   luaopen_sfd},
-  {"lfs2",   luaopen_lfs2},
+  // {"fatfs", luaopen_fatfs},
+  // {"sfd",   luaopen_sfd},
+  // {"lfs2",   luaopen_lfs2},
   {"gpio",   luaopen_gpio},
   // {"vmx",    luaopen_vmx},
   {"uart",    luaopen_uart},

+ 11 - 1
bsp/win32/port/luat_timer_win32.c

@@ -96,12 +96,22 @@ luat_timer_t* luat_timer_get(size_t timer_id) {
 
 int luat_timer_mdelay(size_t ms) {
     if (ms > 0) {
-        usleep(ms * 1000);
+        Sleep(1000);
     }
     return 0;
 }
 
+static void usleep(unsigned long usec)
+{
+    HANDLE timer;
+    LARGE_INTEGER interval;
+    interval.QuadPart = -(10 * usec);
 
+    timer = CreateWaitableTimer(NULL, TRUE, NULL);
+    SetWaitableTimer(timer, &interval, 0, NULL, NULL, 0);
+    WaitForSingleObject(timer, INFINITE);
+    CloseHandle(timer);
+}
 
 void luat_timer_us_delay(size_t us) {
     if (us)

+ 113 - 0
bsp/win32/xmake.lua

@@ -0,0 +1,113 @@
+set_project("LuatOS-BSP")
+set_xmakever("2.6.3")
+
+set_version("0.0.3", {build = "%Y%m%d%H%M"})
+add_rules("mode.debug", "mode.release")
+
+-- 这里用llvm和clang了,尝试一下
+add_requires("llvm")
+
+local luatos = "../../"
+
+-- set warning all as error
+set_warnings("allextra")
+set_optimize("fastest")
+-- set language: c11
+set_languages("c11", "cxx11")
+
+add_defines("__LUATOS__", "__XMAKE_BUILD__", "WIN32")
+add_ldflags("-lwinmm","-luser32","-lncrypt","-lAdvapi32","-lGdi32")
+
+target("luatos")
+    -- set kind
+    set_kind("binary")
+    set_targetdir("$(buildir)/out")
+    set_toolchains("@llvm")
+
+    -- add deps
+
+    add_files("src/*.c",{public = true})
+    add_files("port/*.c",{public = true})
+    add_includedirs("include",{public = true})
+
+    add_includedirs("lv_drivers",{public = true})
+    add_files("lv_drivers/*.c")
+
+    add_includedirs(luatos.."lua/include",{public = true})
+    add_files(luatos.."lua/src/*.c")
+
+    add_includedirs(luatos.."luat/include",{public = true})
+    -- add_files(luatos.."luat/modules/*.c")
+
+    add_files(luatos.."luat/modules/crc.c"
+            ,luatos.."luat/modules/luat_base.c"
+            ,luatos.."luat/modules/luat_lib_fs.c"
+            ,luatos.."luat/modules/luat_lib_rtos.c"
+            ,luatos.."luat/modules/luat_lib_timer.c"
+            ,luatos.."luat/modules/luat_lib_log.c"
+            ,luatos.."luat/modules/luat_lib_zbuff.c"
+            ,luatos.."luat/modules/luat_lib_pack.c"
+            ,luatos.."luat/modules/luat_lib_crypto.c"
+            ,luatos.."luat/modules/luat_lib_uart.c"
+            ,luatos.."luat/modules/luat_lib_gpio.c"
+            )
+
+    add_files(luatos.."luat/vfs/*.c")
+
+    add_files(luatos.."components/lfs/*.c")
+
+    add_includedirs(luatos.."components/lua-cjson")
+    add_files(luatos.."components/lua-cjson/*.c")
+
+    add_includedirs(luatos.."components/miniz")
+    add_files(luatos.."components/miniz/*.c")
+
+    -- u8g2
+    add_includedirs(luatos.."components/u8g2")
+    add_files(luatos.."components/u8g2/*.c")
+
+    -- lcd
+    add_includedirs(luatos.."components/lcd")
+    add_files(luatos.."components/lcd/*.c")
+    
+    -- lvgl
+    add_includedirs(luatos.."components/lvgl")
+    add_includedirs(luatos.."components/lvgl/binding")
+    add_includedirs(luatos.."components/lvgl/gen")
+    add_includedirs(luatos.."components/lvgl/src")
+    add_includedirs(luatos.."components/lvgl/font")
+    add_includedirs(luatos.."components/lvgl/src/lv_font")
+
+    add_files(luatos.."components/lvgl/**.c")
+    -- 默认不编译lv的demos, 节省大量的编译时间
+    remove_files(luatos.."components/lvgl/lv_demos/**.c")
+
+
+    add_includedirs(luatos.."components/cjson",{public = true})
+    add_files(luatos.."components/cjson/*.c")
+    
+
+    add_includedirs(luatos.."components/lfs")
+    
+    -- add_includedirs(luatos.."components/minmea")
+    add_includedirs(luatos.."components/fatfs")
+
+
+    add_files(luatos.."components/mbedtls/library/*.c")
+    add_includedirs(luatos.."components/mbedtls/include")
+
+    -- iotauth
+    add_files(luatos.."components/iotauth/luat_lib_iotauth.c")
+
+    -- qrcode
+    add_includedirs(luatos.."components/qrcode",{public = true})
+    add_files(luatos.."components/qrcode/*.c")
+
+    -- crypto
+    add_files(luatos.."components/crypto/**.c")
+
+    -- protobuf
+    add_includedirs(luatos.."components/serialization/protobuf")
+    add_files(luatos.."components/serialization/protobuf/*.c")
+    
+target_end()