#ifndef sys_api_h__ #define sys_api_h__ #include "stdint.h" #include "stdlib.h" #include "stddef.h" typedef signed char rt_int8_t; /**< 8bit integer type */ typedef signed short rt_int16_t; /**< 16bit integer type */ typedef signed long rt_int32_t; /**< 32bit integer type */ typedef unsigned char rt_uint8_t; /**< 8bit unsigned integer type */ typedef unsigned short rt_uint16_t; /**< 16bit unsigned integer type */ typedef unsigned long rt_uint32_t; /**< 32bit unsigned integer type */ typedef int rt_bool_t; /**< boolean type */ typedef long rt_base_t; /**< Nbit CPU related date type */ typedef unsigned long rt_ubase_t; /**< Nbit unsigned CPU related data type */ typedef rt_base_t rt_err_t; /**< Type for error number */ typedef rt_uint32_t rt_tick_t; /**< Type for tick count */ typedef rt_ubase_t rt_size_t; /**< Type for size number */ /* 以下定义为指针定义,我修改过,但保证能正常使用 */ typedef struct{void *p;}* rt_thread_t; typedef struct{void *p;}* rt_timer_t; typedef struct{void *p;}* rt_sem_t; typedef struct{void *p;}* rt_mutex_t; typedef struct{void *p;}* rt_event_t; typedef struct{void *p;}* rt_mailbox_t; typedef struct{void *p;}* rt_mq_t; int api_table_init(void); rt_base_t rt_hw_interrupt_disable(void); void rt_hw_interrupt_enable(rt_base_t level); void rt_enter_critical(void); void rt_exit_critical(void); rt_err_t rt_thread_mdelay(rt_int32_t ms); rt_thread_t rt_thread_create(const char *name, void (*entry)(void *parameter), void *parameter, rt_uint32_t stack_size, rt_uint8_t priority, rt_uint32_t tick); rt_err_t rt_thread_startup(rt_thread_t thread); rt_err_t rt_thread_delete(rt_thread_t thread); rt_timer_t rt_timer_create(const char *name, void (*timeout)(void *parameter), void *parameter, rt_tick_t time, rt_uint8_t flag); rt_err_t rt_timer_delete(rt_timer_t timer); rt_err_t rt_timer_start(rt_timer_t timer); rt_err_t rt_timer_stop(rt_timer_t timer); rt_sem_t rt_sem_create(const char *name, rt_uint32_t value, rt_uint8_t flag); rt_err_t rt_sem_delete(rt_sem_t sem); rt_err_t rt_sem_take(rt_sem_t sem, rt_int32_t time); rt_err_t rt_sem_release(rt_sem_t sem); rt_mutex_t rt_mutex_create(const char *name, rt_uint8_t flag); rt_err_t rt_mutex_delete(rt_mutex_t mutex); rt_err_t rt_mutex_take(rt_mutex_t mutex, rt_int32_t time); rt_err_t rt_mutex_release(rt_mutex_t mutex); rt_event_t rt_event_create(const char *name, rt_uint8_t flag); rt_err_t rt_event_delete(rt_event_t event); rt_err_t rt_event_send(rt_event_t event, rt_uint32_t set); rt_err_t rt_event_recv(rt_event_t event, rt_uint32_t set, rt_uint8_t opt, rt_int32_t timeout, rt_uint32_t *recved); rt_mailbox_t rt_mb_create(const char *name, rt_size_t size, rt_uint8_t flag); rt_err_t rt_mb_delete(rt_mailbox_t mb); rt_err_t rt_mb_send(rt_mailbox_t mb, rt_uint32_t value); rt_err_t rt_mb_send_wait(rt_mailbox_t mb, rt_uint32_t value, rt_int32_t timeout); rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_uint32_t *value, rt_int32_t timeout); rt_mq_t rt_mq_create(const char *name, rt_size_t msg_size, rt_size_t max_msgs, rt_uint8_t flag); rt_err_t rt_mq_delete(rt_mq_t mq); rt_err_t rt_mq_send(rt_mq_t mq, void *buffer, rt_size_t size); rt_err_t rt_mq_urgent(rt_mq_t mq, void *buffer, rt_size_t size); rt_err_t rt_mq_recv(rt_mq_t mq, void *buffer, rt_size_t size, rt_int32_t timeout); //int printf_(const char *,...); //int sprintf_(char * __restrict /*s*/, const char * __restrict /*format*/, ...); // //#define printf printf_ //#define sprintf sprintf_ void *malloc_(size_t size); void free_(void *ptr); void *realloc_(void *ptr,size_t size); void *calloc_(size_t nmemb, size_t size); //内存释放 void myfree(void *ptr); //内存分配 void *mymalloc(size_t size); //重新分配内存 void *myrealloc(void *ptr,size_t size); //分配内存并清零 void *mycalloc (size_t size); //分配内部内存 void *mymalloc_fast(size_t size); //分配外置内存 void *mymalloc_ex(size_t size); //释放CCM内存 void myfree_ccm(void *ptr); //分配CCM内存 void *mymalloc_ccm(size_t size); //设置内存 void mymemset(void *s,uint8_t c,size_t count); //复制内存 void mymemcpy(void *des,void *src,size_t n); //获得内存使用率 int mem_perused(void); //获得内存使用率 int exmem_perused(void); //获得内存使用率 int ccm_perused(void) ; #endif