RT-Thread API参考手册
3.1.1
嵌入式实时操作系统
|
系统钩子函数 更多...
宏定义 | |
#define | RT_OBJECT_HOOK_CALL(func, argv) do { if ((func) != RT_NULL) func argv; } while (0) |
内核对象钩子函数 | |
函数 | |
rt_err_t | rt_thread_idle_sethook (void(*hook)(void)) |
设置空闲线程钩子函数 更多... | |
rt_err_t | rt_thread_idle_delhook (void(*hook)(void)) |
从空闲钩子链表中删除指定的钩子函数。 更多... | |
void | rt_interrupt_enter_sethook (void(*hook)(void)) |
设置进入中断钩子函数 更多... | |
void | rt_interrupt_leave_sethook (void(*hook)(void)) |
设置中断退出钩子函数 更多... | |
void | rt_malloc_sethook (void(*hook)(void *ptr, rt_size_t size)) |
设置内存分配钩子函数 更多... | |
void | rt_free_sethook (void(*hook)(void *ptr)) |
设置内存释放钩子函数 更多... | |
void | rt_mp_alloc_sethook (void(*hook)(struct rt_mempool *mp, void *block)) |
设置内存池分配钩子函数 更多... | |
void | rt_mp_free_sethook (void(*hook)(struct rt_mempool *mp, void *block)) |
设置内存池释放钩子函数 更多... | |
void | rt_object_attach_sethook (void(*hook)(struct rt_object *object)) |
设置内核对象添加钩子函数 更多... | |
void | rt_object_detach_sethook (void(*hook)(struct rt_object *object)) |
设置内核对象脱离钩子函数 更多... | |
void | rt_object_trytake_sethook (void(*hook)(struct rt_object *object)) |
设置线程尝试获取内核对象钩子函数 更多... | |
void | rt_object_take_sethook (void(*hook)(struct rt_object *object)) |
设置线程获取内核对象钩子函数 该函数将设置一个钩子函数,当线程获取到内核对象后将调用该钩子函数。 更多... | |
void | rt_object_put_sethook (void(*hook)(struct rt_object *object)) |
设置线程发送内核对象钩子函数 该函数将设置一个钩子函数,当线程发送内核对象时将运行该钩子函数。 更多... | |
void | rt_scheduler_sethook (void(*hook)(struct rt_thread *from, struct rt_thread *to)) |
设置调度器钩子函数 更多... | |
void | rt_thread_suspend_sethook (void(*hook)(rt_thread_t thread)) |
设置线程挂起钩子函数 更多... | |
void | rt_thread_resume_sethook (void(*hook)(rt_thread_t thread)) |
设置线程恢复钩子函数 更多... | |
void | rt_thread_inited_sethook (void(*hook)(rt_thread_t thread)) |
设置线程初始化钩子函数 更多... | |
void | rt_timer_timeout_sethook (void(*hook)(struct rt_timer *timer)) |
设置定时器超时钩子函数 该函数将设置一个钩子函数,当定时器超时时将调用该钩子函数。 更多... | |
系统钩子函数
为了在运行时跟踪和记录RT-Thread的活动,引入了一种钩子机制。
钩子函数是在一些特殊检查点调用的一类函数。 钩子函数包括:
rt_err_t rt_thread_idle_sethook | ( | void(*)(void) | hook | ) |
设置空闲线程钩子函数
系统运行空闲线程的时候会运行这个钩子函数。
hook | 指定的钩子函数 |
rt_err_t rt_thread_idle_delhook | ( | void(*)(void) | hook | ) |
void rt_interrupt_enter_sethook | ( | void(*)(void) | hook | ) |
设置进入中断钩子函数
该函数将设置一个中断钩子函数,当系统进入中断时会调用该函数。
void rt_interrupt_leave_sethook | ( | void(*)(void) | hook | ) |
设置中断退出钩子函数
该函数将设置一个钩子函数,当系统退出中断时会调用该函数。
void rt_malloc_sethook | ( | void(*)(void *ptr, rt_size_t size) | hook | ) |
设置内存分配钩子函数
该函数将设置一个钩子函数,当从堆内存中分配内存块时将调用该钩子函数。 钩子函数会在内存分配完成后进行回调,并把分配到的内存块地址和大小做为参数传递给钩子函数。
hook | 钩子函数 |
ptr | 分配到的内存块指针 |
size | 分配到的内存块大小 |
void rt_free_sethook | ( | void(*)(void *ptr) | hook | ) |
设置内存释放钩子函数
该函数将设置一个钩子函数,当内存块被释放会内存堆时将调用该钩子函数。 钩子函数会在调用内存释放完成前进行回调。 回调时,释放的内存块地址会做为入口参数传递进去(此时内存块并没有被释放)。
hook | 钩子函数 |
ptr | 待释放的内存块指针 |
void rt_mp_alloc_sethook | ( | void(*)(struct rt_mempool *mp, void *block) | hook | ) |
设置内存池分配钩子函数
该函数将设置一个钩子函数,当从内存池中分配内存块时将调用该钩子函数。
hook | 钩子函数 |
void rt_mp_free_sethook | ( | void(*)(struct rt_mempool *mp, void *block) | hook | ) |
设置内存池释放钩子函数
该函数将设置一个钩子函数,当内存块被释放回内存池时将调用该钩子函数。
hook | 钩子函数 |
void rt_object_attach_sethook | ( | void(*)(struct rt_object *object) | hook | ) |
设置内核对象添加钩子函数
该函数将设置一个钩子函数,当对象添加到内核对象管理器时将调用该钩子函数。
hook | the hook function |
void rt_object_detach_sethook | ( | void(*)(struct rt_object *object) | hook | ) |
设置内核对象脱离钩子函数
该函数将设置一个钩子函数,当对象从内核对象系统脱离时将调用该钩子函数。
hook | the hook function |
void rt_object_trytake_sethook | ( | void(*)(struct rt_object *object) | hook | ) |
设置线程尝试获取内核对象钩子函数
该函数将设置一个钩子函数,当线程尝试获取内核对象时将调用该钩子函数。
内核对象指的是: semaphore - 信号量被线程获取 mutex - 互斥量被线程获取 event - 事件被线程接收 mailbox - 邮件被线程接收 message queue - 消息队列被线程接收
hook | 钩子函数 |
void rt_object_take_sethook | ( | void(*)(struct rt_object *object) | hook | ) |
设置线程获取内核对象钩子函数 该函数将设置一个钩子函数,当线程获取到内核对象后将调用该钩子函数。
内核对象指的是: semaphore - 信号量被线程获取 mutex - 互斥量被线程获取 event - 事件被线程接收 mailbox - 邮件被线程接收 message queue - 消息队列被线程接收 timer - 定时器被启动
hook | 钩子函数 |
void rt_object_put_sethook | ( | void(*)(struct rt_object *object) | hook | ) |
设置线程发送内核对象钩子函数 该函数将设置一个钩子函数,当线程发送内核对象时将运行该钩子函数。
hook | 钩子函数 |
void rt_thread_suspend_sethook | ( | void(*)(rt_thread_t thread) | hook | ) |
设置线程挂起钩子函数
钩子函数会在系统挂起线程时调用。
hook | 指定的钩子函数 |
void rt_thread_resume_sethook | ( | void(*)(rt_thread_t thread) | hook | ) |
设置线程恢复钩子函数
钩子函数会在系统恢复线程调用。
hook | 指定的钩子函数 |
void rt_thread_inited_sethook | ( | void(*)(rt_thread_t thread) | hook | ) |
设置线程初始化钩子函数
钩子函数会在线程初始化的时候调用。
hook | 指定的钩子函数 |
void rt_timer_timeout_sethook | ( | void(*)(struct rt_timer *timer) | hook | ) |
设置定时器超时钩子函数 该函数将设置一个钩子函数,当定时器超时时将调用该钩子函数。
hook | 钩子函数 |