void rt_timer_init(rt_timer_t timer, const char *name, void (*timeout)(void *parameter), void *parameter, rt_tick_t time, rt_uint8_t flag) 静态删除定时器: 登录后复制/** 参数: timer 定时器句柄,指向要删除的定时器控制块 返回值: RT_EOK 删除成功 */ rt_err_t rt_timer_detach(rt_...
摘要: RT-Thread添加软件包会出现uint8_t uint16_tuint32_t size_t NULL未定义错误 描述: RT-Thread添加软件包会出现uint8_t uint16_tuint32_t size_t未定义 大致出错内容,如下: riscv64-unknown-elf-gcc ../applicat ... RT-Thread添加软件包编译出现uint8_t uint16_t uint32_t size_t NULL未定...
rt_err_t rt_mq_init(rt_mq_t mq, const char* name, void *msgpool, rt_size_t msg_size, rt_size_t pool_size, rt_uint8_t flag); 函数的参数解释如下表: 参数描述 初始化消息队列函数返回RT_EOK。 创建或初始化完成消息队列后,所有消息块都挂在空闲消息链表上,消息队列为空。 创建消息队列的...
{structrt_ipc_object parent;/**< inherit from ipc_object*/rt_uint32_t*msg_pool;/**< start address of message buffer*/rt_uint16_t size;/**< size of message pool*/rt_uint16_t entry;/**< index of messages in msg_pool*/rt_uint16_t in_offset;/**< input offset of the message...
rt_uint16_t value; /* 信号量的值 */ rt_uint16_t reserved; /* 保留域 */ }; /* rt_sem_t 为指向 rt_semaphore 结构体的指针类型 */ typedef struct rt_semaphore *rt_sem_t; 1. 2. 3. 4. 5. 6. 7. 8. struct rt_semaphore从rt_ipc_object派生而来,由IPC容器管理,信号量的最大值为...
rt_mq_t rt_mq_create(const char *name, rt_size_t msg_size, rt_size_t max_msgs, rt_uint8_t flag) 如果使用 `rt_mq_create` 创建消息队列,消息队列池自动根据消息体大小 `msg_size` 和消息队列最多容纳的消息数量 `max_msgs` 计算。
struct rt_object size=20,说明当:RT_NAME_MAX为8时,内核对象大小为:20字节(8+ (4)+8 = 20) 不难分析,rt_uint8_t type,rt_uint8_t flag,因为内存对齐,占用了2+2=4个字节。(Keil MDK5 armcc) /** * Base structure of Kernel object ...
2voidmicro_step_set(rt_uint8_tstep) 3{ 4#ifdefUSING_UART 5rt_uint8_tchopconf[4] = {0}; 6switch(step) { 7case256: 8chopconf[3] =0x10; 9break; 10case128: 11chopconf[3] =0x11; 12break; 13case64: 14chopconf[3] =0x12; ...
rt_uint8_t type; /* 对象类型 */ rt_uint8_t flags; /* 对象的状态 */ rt_list_t list; /* 对象的列表节点 */ rt_list_t tlist; /* 线程链表节点 */ void *sp; /* 线程栈指针 */ void *entry; /* 线程入口地址 */ void *parameter; /* 线程形参 */ ...
rt_uint8_t priority, rt_uint32_t tick) {structrt_thread *thread;void*stack_start; thread= (structrt_thread *)rt_object_allocate(RT_Object_Class_Thread, name);if(thread ==RT_NULL)returnRT_NULL; stack_start= (void*)RT_KERNEL_MALLOC(stack_size);if(stack_start ==RT_NULL) ...