116 lines
2.7 KiB
Markdown
116 lines
2.7 KiB
Markdown
# 配置文件
|
||
|
||
------
|
||
|
||
## 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 <pthread.h>
|
||
>>
|
||
>>#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
|