如果有多个不连续的 memheap 可以多次调用该函数将其初始化并加入 memheap_item 链表。下表描述了该函数的输入参数与返回值: rt_memheap_init() 的输入参数与返回值2.5 内存堆的管理方式 对内存堆的操作如下图所示,包含:初始化、申请内存块、释放内存,所有使用完成后的动态内存都应该被释放,以供其他程序的申请...
可以设置空闲线程钩子函数,在空闲线程中调用。 2. 主线程 系统启动时,会自动创建 main 线程,其入口函数为main_thread_entry(),用户的应用程序入口函数main()就是从这里开始。 RT-Thread 系统启动过程,可以参考文章:RT-Thread快速入门-了解内核启动流程 系统调度器启动后,main 线程就开始运行,函数调用过程如下图所示...
●与原有使用函数指针进行“运行时刻”HOOK的方式兼容,依赖原有方式进行代码插入或HOOK的模块无需修改; ●使用RT_USING_HOOK作为总开关,当未定义该宏时,将关闭所有HOOK功能,也不再生成任何相关代码;当定义该宏时,在未开启传统“函数指针HOOK”时,默认情况下也不再生成额外...
可以设置空闲线程钩子函数,在空闲线程中调用。 2. 主线程 系统启动时,会自动创建 main 线程,其入口函数为main_thread_entry(),用户的应用程序入口函数main()就是从这里开始。 RT-Thread 系统启动过程,可以参考文章:RT-Thread快速入门-了解内核启动流程 系统调度器启动后,main 线程就开始运行,函数调用过程如下图所示...
RT-Thread实时操作系统为空闲线程提供了钩子函数(钩子函数:用户提供的一段代码,在系统运行的某一路径上设置一个钩子,当系统经过这个位置时,转而执行这个钩子函数,然后再返回到它的正常路径上),可以让系统在空闲的时候执行一些特定的任务,例如系统运行指示灯闪烁,电源管理等。除了调用钩子函数,RT-Thread也把线程清理(...
空闲线程也提供了接口来运行用户设置的钩子函数,在空闲线程运行时会调用该钩子函数,适合钩入功耗管理、看门狗喂狗等工作。 2.4.2 主线程 在系统启动时,系统会创建 main 线程,它的入口函数为 main_thread_entry(),用户的应用入口函数 main() 就是从这里真正开始的,系统调度器启动后,main 线程就开始运行,过程如下...
钩子函数,即以hook命名的那些函数。那么什么是钩子函数呢?说白了,就是一个函数指针,只是这个函数比较特殊一点。特殊在哪?操作系统某些指定位置才会设置钩子函数,比如程序运行到空闲任务了,为了不修改系统源码(没事别修改源码,很危险的事情,除非你是真大佬),系统会提供一个设置钩子函数的函数接口给你,当你需要在空闲...
钩子函数 hook() 的声明 参数说明: 1、from 表示系统所要切换出的线程控制块指针 2、to 表示系统所要切换到的线程控制块指针 */voidhook(structrt_thread*from,structrt_thread*to); 注:请仔细编写你的钩子函数,稍有不慎将很可能导致整个系统运行不正常(在这个钩子函数中,基本上不允许调用系统 API,更不应该导...
一、RT-Thread线程操作函数 RT-Thread线程操作包含:创建 / 初始化线程、启动线程、运行线程、删除 / 脱离线程。 1.1 动态创建线程 函数比较简单,具体的看注释就好(本文余下的函数介绍类似,看注释): /* demo,用来接收动态线程返回的句柄 比如led2_thread = rt_thread_create(...); */static...
调度器钩子:rt_scheduler_sethook 调度器钩子函数可以查看当前线程的切换状态 。 RT-thread的时钟管理 时钟节拍: 1/RT_TICK_PER_SECOND,使用于线程的延时,时间片轮转,定时器超时等,是一种周期性中断。 实现原理:当硬件定时器每促发一次,就调用一次systick_handler,在该函数中调用rt_tick_increase()对全局变量rt...