# 配置文件 ------ ## OM_DEBUG >使能这个宏将会开启OM_ASSENT和OM_CHECK,对空指针等异常情况进行检测,定位异常发生位置。 ## OM_USE_USER_MALLOC >使用用户的内存分配函数,使能时需要自定义om_malloc和om_free。 > >> >>FreeRTOS示例 >> >>>#include "FreeRTOS.h" >>> >>>#define om_malloc pvPortMalloc >>> >>>#define om_free vPortFree ## OM_DELAY >非阻塞延时函数 >>om_delay_ms 等待一毫秒 ## OM_MUTEX_* ### OS层提供的互斥锁API >Linux示例 >>#include >> >>#define om_mutex_t pthread_mutex_t >> >>#define om_mutex_init(arg) pthread_mutex_init(arg, NULL) >> >>#define om_mutex_lock(arg) pthread_mutex_lock(arg) >> >>#define om_mutex_trylock(arg) pthread_mutex_trylock(arg) == 0 ? OM_OK:OM_ERROR >> >>#define om_mutex_unlock(arg) pthread_mutex_unlock(arg) >> >>#define om_mutex_lock_isr(arg) pthread_mutex_lock(arg) >> >>#define om_mutex_unlock_isr(arg) pthread_mutex_unlock(arg) >> >>#define om_mutex_delete(arg) pthread_mutex_destroy(arg) >> > >FreeRTOS示例 >>#include "semphr.h" >> >>#define om_mutex_t SemaphoreHandle_t >> >>#define om_mutex_init(arg) *arg = xSemaphoreCreateBinary(); >>xSemaphoreGive(*arg) >> >>#define om_mutex_lock(arg) xSemaphoreTake(*arg,portMAX_DELAY) >> >>#define om_mutex_trylock(arg) xSemaphoreTake(*arg,0) == pdTRUE ? OM_OK:OM_ERROR >> >>#define om_mutex_unlock(arg) xSemaphoreGive(*arg) >> >>#define om_mutex_lock_isr(arg) xSemaphoreTakeFromISR(*arg, NULL) == pdTRUE ? OM_OK:OM_ERROR >> >>#define om_mutex_unlock_isr(arg) xSemaphoreGiveFromISR(*arg, NULL) >> >>#define om_mutex_delete(arg) vSemaphoreDelete(*arg) > >ThreadX示例 >>#include "tx_api.h" >> >>#define om_mutex_t TX_MUTEX >> >>#define om_mutex_init(arg) tx_mutex_create(arg, NULL, TX_NO_INHERIT) >> >>#define om_mutex_lock(arg) tx_mutex_get(arg, TX_WAIT_FOREVER) >> >>#define om_mutex_trylock(arg) tx_mutex_get(arg, TX_NO_WAIT) == TX_SUCCESS ? OM_OK:OM_ERROR >> >>#define om_mutex_unlock(arg) tx_mutex_put(arg) >> >>#define om_mutex_lock_isr(arg) tx_mutex_get(arg, TX_NO_WAIT) == TX_SUCCESS ? OM_OK:OM_ERROR >> >>#define om_mutex_unlock_isr(arg) tx_mutex_put(arg) >> >>#define om_mutex_delete(arg) tx_mutex_delete(arg) ## OM_TIME >发布消息和log时记录时间 >>om_time_t 存放时间数据的类型 >> >>om_time_t om_time_get() 返回时间 ## OM_LOG_OUTPUT >开启日志,输出到`om_log`话题。 ## OM_LOG_COLORFUL >按照日志等级以不同颜色输出。 ## OM_TOPIC_MAX_NAME_LEN >话题名称最大长度 ## OM_LOG_MAX_LEN >日志最大长度 ## OM_LOG_LEVEL >日志最小打印等级 1:default 2:notice 3:pass 4:warning 5:error