Procházet zdrojové kódy

feat: openLuat改为使用原生接口实现

RyanCW před 10 měsíci
rodič
revize
3b92a3be01

+ 6 - 4
platform/openLuat/platformNetwork.c

@@ -1,7 +1,7 @@
 // #define rlogEnable               // 是否使能日志
-#define rlogColorEnable          // 是否使能日志颜色
+#define rlogColorEnable            // 是否使能日志颜色
 #define rlogLevel (rlogLvlWarning) // 日志打印等级
-#define rlogTag "RyanMqttNet"    // 日志tag
+#define rlogTag "RyanMqttNet"      // 日志tag
 
 #include "platformNetwork.h"
 #include "RyanMqttLog.h"
@@ -133,7 +133,8 @@ RyanMqttError_e platformNetworkRecvAsync(void *userData, platformNetwork_t *plat
             rlog_d("对端关闭socket连接");
             return RyanSocketFailedError;
         }
-        else if (recvResult < 0) // 小于零,表示错误,个别错误不代表socket错误
+
+        if (recvResult < 0) // 小于零,表示错误,个别错误不代表socket错误
         {
             int32_t rt_errno = errno;
             // 下列3种表示没问题,但需要退出接收
@@ -294,7 +295,8 @@ RyanMqttError_e platformNetworkSendAsync(void *userData, platformNetwork_t *plat
             rlog_d("对端关闭socket连接");
             return RyanSocketFailedError;
         }
-        else if (sendResult < 0) // 小于零,表示错误,个别错误不代表socket错误
+
+        if (sendResult < 0) // 小于零,表示错误,个别错误不代表socket错误
         {
             int32_t rt_errno = errno;
             rlog_d("sendResult: %d, errno: %d", sendResult, rt_errno);

+ 20 - 23
platform/openLuat/platformSystem.c

@@ -29,7 +29,7 @@ inline void platformMemoryFree(void *ptr)
  */
 inline void platformDelay(uint32_t ms)
 {
-    osDelay(ms);
+    luat_rtos_task_sleep(luat_rtos_ms2tick(ms));
 }
 
 /**
@@ -63,16 +63,16 @@ RyanMqttError_e platformThreadInit(void *userData,
                                    uint32_t stackSize,
                                    uint32_t priority)
 {
+    // 36 减
+    int32_t result = luat_rtos_task_create(&platformThread->thread, // 线程句柄
+                                           stackSize,               // 线程栈大小
+                                           priority,                // 线程优先级
+                                           name,                    // 线程name
+                                           entry,                   // 线程入口函数
+                                           param,                   // 线程入口函数参数
+                                           priority);
 
-    const osThreadAttr_t myTask02_attributes = {
-        .name = name,
-        .stack_size = stackSize,
-        .priority = (osPriority_t)priority,
-    };
-
-    platformThread->thread = osThreadNew(entry, param, &myTask02_attributes);
-
-    if (NULL == platformThread->thread)
+    if (0 != result)
         return RyanMqttNoRescourceError;
 
     return RyanMqttSuccessError;
@@ -87,7 +87,7 @@ RyanMqttError_e platformThreadInit(void *userData,
  */
 RyanMqttError_e platformThreadDestroy(void *userData, platformThread_t *platformThread)
 {
-    osThreadExit();
+    luat_rtos_task_delete(platformThread->thread);
     return RyanMqttSuccessError;
 }
 
@@ -100,7 +100,8 @@ RyanMqttError_e platformThreadDestroy(void *userData, platformThread_t *platform
  */
 RyanMqttError_e platformThreadStart(void *userData, platformThread_t *platformThread)
 {
-    osThreadResume(platformThread->thread);
+
+    luat_rtos_task_resume(platformThread->thread);
     return RyanMqttSuccessError;
 }
 
@@ -113,7 +114,7 @@ RyanMqttError_e platformThreadStart(void *userData, platformThread_t *platformTh
  */
 RyanMqttError_e platformThreadStop(void *userData, platformThread_t *platformThread)
 {
-    osThreadSuspend(platformThread->thread);
+    luat_rtos_task_suspend(platformThread->thread);
     return RyanMqttSuccessError;
 }
 
@@ -126,11 +127,7 @@ RyanMqttError_e platformThreadStop(void *userData, platformThread_t *platformThr
  */
 RyanMqttError_e platformMutexInit(void *userData, platformMutex_t *platformMutex)
 {
-
-    const osMutexAttr_t myMutex01_attributes = {
-        .name = "mqttMutex", .attr_bits = osMutexRecursive | osMutexPrioInherit | osMutexRobust};
-
-    platformMutex->mutex = osMutexNew(&myMutex01_attributes);
+    luat_rtos_mutex_create(&platformMutex->mutex);
     return RyanMqttSuccessError;
 }
 
@@ -143,7 +140,7 @@ RyanMqttError_e platformMutexInit(void *userData, platformMutex_t *platformMutex
  */
 RyanMqttError_e platformMutexDestroy(void *userData, platformMutex_t *platformMutex)
 {
-    osMutexDelete(platformMutex->mutex);
+    luat_rtos_mutex_delete(platformMutex->mutex);
     return RyanMqttSuccessError;
 }
 
@@ -156,7 +153,7 @@ RyanMqttError_e platformMutexDestroy(void *userData, platformMutex_t *platformMu
  */
 RyanMqttError_e platformMutexLock(void *userData, platformMutex_t *platformMutex)
 {
-    osMutexAcquire(platformMutex->mutex, osWaitForever);
+    luat_rtos_mutex_lock(platformMutex->mutex, LUAT_WAIT_FOREVER);
     return RyanMqttSuccessError;
 }
 
@@ -169,7 +166,7 @@ RyanMqttError_e platformMutexLock(void *userData, platformMutex_t *platformMutex
  */
 RyanMqttError_e platformMutexUnLock(void *userData, platformMutex_t *platformMutex)
 {
-    osMutexRelease(platformMutex->mutex);
+    luat_rtos_mutex_unlock(platformMutex->mutex);
     return RyanMqttSuccessError;
 }
 
@@ -206,7 +203,7 @@ RyanMqttError_e platformCriticalDestroy(void *userData, platformCritical_t *plat
  */
 inline RyanMqttError_e platformCriticalEnter(void *userData, platformCritical_t *platformCritical)
 {
-    osKernelLock();
+    platformCritical->level = luat_rtos_entry_critical();
     return RyanMqttSuccessError;
 }
 
@@ -219,6 +216,6 @@ inline RyanMqttError_e platformCriticalEnter(void *userData, platformCritical_t
  */
 inline RyanMqttError_e platformCriticalExit(void *userData, platformCritical_t *platformCritical)
 {
-    osKernelUnlock();
+    luat_rtos_exit_critical(platformCritical->level);
     return RyanMqttSuccessError;
 }

+ 4 - 4
platform/openLuat/platformSystem.h

@@ -10,25 +10,25 @@ extern "C"
 #include <stdint.h>
 #include <assert.h>
 #include "RyanMqttPublic.h"
-#include "cmsis_os2.h"
 #include "luat_debug.h"
 #include "luat_malloc.h"
+#include "luat_rtos.h"
 
 #define RyanMqttAssert(EX) assert(EX)
 
     typedef struct
     {
-        osThreadId_t thread;
+        luat_rtos_task_handle thread;
     } platformThread_t;
 
     typedef struct
     {
-        osMutexId_t mutex;
+        luat_rtos_mutex_t mutex;
     } platformMutex_t;
 
     typedef struct
     {
-        uint8_t invalid; // 不使用,避免报错
+        uint32_t level;
     } platformCritical_t;
 
     extern void *platformMemoryMalloc(size_t size);

+ 6 - 8
platform/openLuat/platformTimer.c

@@ -4,14 +4,12 @@
 
 uint32_t platformUptimeMs(void)
 {
-    if (1000 == osKernelGetTickFreq())
-        return (uint32_t)osKernelGetTickCount();
-    else
-    {
-        uint32_t tick = 0;
-        tick = osKernelGetTickCount() * 1000;
-        return (uint32_t)((tick + osKernelGetTickCount() - 1) / osKernelGetTickCount());
-    }
+    if (1000 == luat_mcu_hz())
+        return (uint32_t)luat_mcu_ticks();
+
+    uint32_t tick = 0;
+    tick = luat_mcu_ticks() * 1000;
+    return (uint32_t)((tick + luat_mcu_ticks() - 1) / luat_mcu_ticks());
 }
 
 /**

+ 1 - 1
platform/openLuat/platformTimer.h

@@ -5,7 +5,7 @@ extern "C"
 {
 #endif
 #include <stdint.h>
-#include "cmsis_os2.h"
+#include "luat_mcu.h"
 
     typedef struct
     {