Răsfoiți Sursa

fix: 稍微改一下msgbus的freertos实现

Wendal Chen 5 ani în urmă
părinte
comite
0743fc76bf

+ 2 - 2
luat/freertos/luat_msgbus_freertos.c

@@ -13,10 +13,10 @@ void luat_msgbus_init(void) {
     }
 }
 uint32_t luat_msgbus_put(rtos_msg_t* msg, size_t timeout) {
-    return osMessageQueuePut(queue, msg, NULL, timeout);
+    return osMessageQueuePut(queue, msg, 0, timeout);
 }
 uint32_t luat_msgbus_get(rtos_msg_t* msg, size_t timeout) {
-    return osMessageQueueGet(queue, msg, NULL, timeout);
+    return osMessageQueueGet(queue, msg, 0, timeout);
 }
 uint32_t luat_msgbus_freesize(void) {
     return osMessageQueueGetSpace(queue);

+ 4 - 1
luat/freertos/luat_timer_freertos.c

@@ -17,7 +17,10 @@ static void luat_timer_callback(void* param) {
     luat_timer_t *timer = (luat_timer_t*)param;
     msg.handler = timer->func;
     msg.ptr = param;
-    luat_msgbus_put(&msg, 1);
+    msg.arg1 = 0;
+    msg.arg2 = 0;
+    int re = luat_msgbus_put(&msg, 1);
+    //luat_log_debug("luat.timer", "timer msgbus re=%ld", re);
 }
 
 static int nextTimerSlot() {

+ 2 - 2
luat/modules/luat_lib_rtos.c

@@ -24,12 +24,12 @@ static int l_rtos_receive(lua_State *L) {
     int re;
     re = luat_msgbus_get(&msg, luaL_checkinteger(L, 1));
     if (!re) {
-        // luat_print("luat_msgbus_get msg!!!\n");
+        //luat_log_debug("luat.rtos", "rtos_msg got, invoke it handler=%08X", msg.handler);
         lua_pushlightuserdata(L, (void*)(&msg));
         return msg.handler(L, msg.ptr);
     }
     else {
-        // luat_print("luat_msgbus_get timeout!!!\n");
+        //luat_log_debug("luat.rtos", "rtos_msg get timeout");
         lua_pushinteger(L, -1);
         return 1;
     }