184 lines
5.2 KiB
C
184 lines
5.2 KiB
C
|
|
#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
|
|
|