使用RTM_EXPORT(symbol)可以将一个函数以符号的方式导出给其他模块使用
RTM_EXPORT(rt_mq_send); 1.4 rt_mq_recv消息队列接收 从消息队列中取出数据,然后把取出数据的消息地址放回空闲池里; //ipc.c rt_err_trt_mq_recv(rt_mq_tmq, void*buffer, rt_size_tsize, rt_int32_ttimeout) { structrt_thread*thread; registerrt_ubase_ttemp; structrt_...
*/voidrt_hw_board_init(){//添加HAL初始化函数HAL_Init();/* System Clock Update */SystemCoreClockUpdate();/* System Tick Configuration */_SysTick_Config(SystemCoreClock/RT_TICK_PER_SECOND);/* Call components board initial (use INIT_BOARD_EXPORT()) */#ifdefRT_USING_COMPONENTS_INITrt_componen...
return_rt_thread_init(thread, name, entry, parameter, stack_start, stack_size, priority, tick); } RTM_EXPORT(rt_thread_init); 4.2 动态内存分配 以动态分配的方式来分配线程内存,用完可释放,内存利用率高; rt_thread_create ( ) //thread.c...
_console_device->open_flag = old_flag; //控制台设备状态 } #else rt_hw_console_output(rt_log_buf); 0 //控制台输出buf #endif va_end(args); } RTM_EXPORT(rt_kprintf); 其中包含的几个线程大家可以自行观看官方文件库。 审核编辑:汤梓红...
stack_size,priority,tick);/*/return thread;}RTM_EXPORT(rt_thread_create);```两个函数最终都在_...
RTM_EXPORT(rt_slab_alloc); (2)内存释放 分配器需要找到内存块所在的 zone 节点,然后把内存块链接到 zone 的空闲内存块链表中。如果此时 zone 的空闲链表指示出 zone 的所有内存块都已经释放,即 zone 是完全空闲的,那么当 zone 链表中全空闲 zone 达到一定数目后,系统就会把这个全空闲的 zone 释放到页面分配...
RTM_EXPORT(rt_mq_send); 代码清单:消息队列-6 (1):在发送消息的时候需要传递一些参数:rt_mq_t mq是已经创建的消息队列句柄; void *buffer是即将发送消息的存储地址;rt_size_t size是即将发送消息的大小。 代码清单:消息队列-6 (2):检测传递进来的参数,如果这些参数之中有一个是无效的,都无法发送消息。
RTM_EXPORT(rt_thread_mdelay); 时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳,中断时间间隔取决于不同的应用,一般是 1ms–100ms,时钟节拍率越快,系统的额外开销就越大,从系统启动开始计数的时钟节拍数称为系统时间。 在RT-Thread 中,时钟节拍的长度可以根据宏RT_TICK_PER_SECOND的定义来调整,该宏定义...
RTM_EXPORT(rt_tick_get); 上面这行代码是一个宏调用,用于导出函数rt_tick_get,使其可以在其他模块中使用。 /** * @brief This function will notify kernel there is one tick passed. * Normally, this function is invoked by clock ISR. */ ...