hook函数是指在系统运行期间,将用户定义的函数(hook函数)嵌入RT-Thread系统内核函数的一个机制。当某些重要系统函数调用时,hook函数被触发,从而可以进行一些额外的处理。这种机制将RT-Thread系统的功能扩展到了应用程序部分。 2.作用 hook函数具有以下三个作用: (1)底层驱动操作:在驱动层面上,由于底层硬件的差异,不可...
内存堆管理用于管理一段连续的内存空间,在第三章中介绍过 RT-Thread 的内存分布情况,如下图所示,RT-Thread 将“ZI 段结尾处” 到内存尾部的空间用作内存堆。 图: RT-Thread 内存分布 内存堆可以在当前资源满足的情况下,根据用户的需求分配任意大小的内存块。而当用户不需要再使用这些内存块时,又可以释放回堆...
线程通过调用函数 rt_thread_create/init() 进入到初始状态(RT_THREAD_INIT);初始状态的线程通过调用函数 rt_thread_startup() 进入到就绪状态(RT_THREAD_READY);就绪状态的线程被调度器调度后进入运行状态(RT_THREAD_RUNNING);当处于运行状态的线程调用 rt_thread_delay(),rt_sem_take()rt_mutex_take(),rt_...
从4.1.0版本开始,RT-Thread在保证向前兼容的基础上对原有的HOOK方式进行了改进,实现了如下的效果: ●与原有使用函数指针进行“运行时刻”HOOK的方式兼容,依赖原有方式进行代码插入或HOOK的模块无需修改; ●使用RT_USING_HOOK作为总开关,当未定义该宏时,将关闭所有HOOK功能...
可以插入任意代码块——其中就包括函数指针、对普通函数的调用等等 2、使用方法 2.1 总开关 在rtconfig.h定义宏开关RT_USING_HOOK将开启HOOK功能。默认情况下,在该宏未定义时,所有HOOK功能都将被强制关闭,不会生成任何代码。 2.2 向前兼容 在4.1.0之前,RT-Thread提供了一套基于函数指针运行时注册的HOOK机制。新版...
在rtconfig.h定义宏开关RT_USING_HOOK将开启HOOK功能。默认情况下,在该宏未定义时,所有HOOK功能都将被强制关闭,不会生成任何代码。 2.2 向前兼容 在4.1.0之前,RT-Thread提供了一套基于函数指针运行时注册的HOOK机制。新版本中,在开启HOOK功能的前提下,定义宏开关RT_HOOK_USING_FUNC_PTR将开启与过去相同的基于函数...
RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及 配合CubeMX开发快速上手) RT-Thread记录(二、RT-Thread内核启动流程 — 启动文件和源码分析 一、RT-Thread线程操作函数 RT-Thread线程操作包含:创建 / 初始化线程、启动线程、运行线程、删除 / 脱离线程。
一、RT-Thread线程操作函数 1.1 动态创建线程 1.2 静态创建线程 1.3 启动线程 线程创建的一个细节—创建和初始化? 句柄是什么? 1.4 删除线程和脱离线程 1.5 挂起和恢复线程 1.6 其他线程辅助函数 1.6.1 获得当前线程 1.6.2 让出处理器资源 1.6.3 线程睡眠(延时函数) ...
一、RT-Thread线程操作函数 RT-Thread线程操作包含:创建 / 初始化线程、启动线程、运行线程、删除 / 脱离线程。 1.1 动态创建线程 函数比较简单,具体的看注释就好(本文余下的函数介绍类似,看注释): /* demo,用来接收动态线程返回的句柄 比如led2_thread = rt_thread_create(...); */static...
RTT在空闲的时候可以使用钩子函数执行些简单的任务,例如LED闪烁之类的程序,利用这个功能我们可以做个工作状态指示灯 要使用钩子必须在配置里打开钩子的配置,在rt-config.h里添加HOOK宏定义(如果没有的话)define RT_USING_HOOK 然后在应用程序里设置钩子函数 ifdef RT_USING_HOOK rt_thread_idle_sethook(...