RT-Thread 学习笔记(一)---系统节拍tick
来源:互联网 发布:windows store下载 编辑:程序博客网 时间:2024/05/29 11:07
基础知识,本人学习记录,仅供参考。
系统rt_tick大小定义在rtconfig.h中:
/* Tick per Second */
#define RT_TICK_PER_SECOND100
默认大小为100/秒,即10ms
时钟采用SysTick定时,初始化在startup.c文件中:
rtthread_startup() -> rt_hw_board_init() -> SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
SysTick中断处理函数在board.c中:
SysTick_Handler();
在SysTick_Handler();中对tick进行计数的函数为:
rt_tick_increase();
rt_tick随着系统运行不断增加
跟进去分析下rt_tick_increase();函数:
1 /** 2 * This function will notify kernel there is one tick passed. Normally, 3 * this function is invoked by clock ISR. 4 */ 5 void rt_tick_increase(void) 6 { 7 struct rt_thread *thread; 8 9 /* increase the global tick */10 ++ rt_tick;11 12 /* check time slice */13 thread = rt_thread_self(); //获取当前线程id14 15 -- thread->remaining_tick;16 if (thread->remaining_tick == 0)17 {18 /* change to initialized tick */19 thread->remaining_tick = thread->init_tick;20 21 /* yield */22 rt_thread_yield(); //线程让出处理器函数,判断当前线程tick时间到达,出让处理器使用权23 }24 25 /* check timer */26 rt_timer_check();27 }
根据函数说明可知:这个函数通知内核经过了一个tick,通常这个函数由时钟中断处理函数调用。
最后进行定时器链表检查,rt_timer_check()检测当前tick时间是否达到定时器timeout时间。
RT-Thread提供软件定时器,由操作系统提供系统接口,构建于硬件定时器基础之上,使系统能够提供不受限制于硬件资源的定时服务。
未完待续!!!
阅读全文
0 0
- RT-Thread 学习笔记(一)---系统节拍tick
- RT-Thread 学习笔记(一)---配置RT-Thread开发环境
- STM32 + RT Thread OS 学习笔记[一]
- rt-thread学习笔记(一)-开发环境
- Linux系统节拍定时器(system tick timer)
- rt-thread学习笔记开篇
- RT-Thread的线程(任务)处理【RT-Thread学习笔记 2】
- 【RT-Thread学习笔记 2】RT-Thread的线程(任务)处理
- RT-Thread 学习笔记(五)---编辑、下载、调试程序
- RT-Thread 学习笔记(六)——串口
- STM32 + RT Thread OS 学习笔记[二]
- STM32 + RT Thread OS 学习笔记[三]
- STM32 + RT Thread OS 学习笔记[四]
- STM32 + RT Thread OS 学习笔记[五]
- STM32 + RT Thread OS 学习笔记[六]
- STM32 + RT Thread OS 学习笔记[七]
- RT-Thread基础一
- 学习rt-thread
- 内联函数、递归函数和重载函数
- 【STM32】获取STM32官方固件库
- RT-Thread V2.1.0 重构工程(IAR为例)
- RT-Thread从开源代码生成自己的工程
- Android7.0下载Apk自动安装
- RT-Thread 学习笔记(一)---系统节拍tick
- RT-Thread 学习笔记(二)---线程创建及任务间通信之中断锁
- 汇编语言基础知识(cortex-M3 指令)
- RT-Thread 学习笔记(三)——读取MCU ID及FLASH大小
- HDU1062 Text Reverse
- RT-Thread 学习笔记(四)——添加RTGUI组件
- RT-Thread 学习笔记(五)—— RTGUI代码解读
- HDU 5719Arrange(类似排列组合问题)
- The connected J-Link is defective,Proper operation cannot be guaranteed.......