01 - Conf_tny.A51
Conf_tny.A51是RTX51 Tiny的OS配置文件,每一个RTOS都会有配置文件,让开发者自定义调度算法、时基等,方便内核的剪裁,打开C:\Keil_v5\C51\RtxTiny2\Examples\Ex1下的Conf_tny.A51文件,一般只关心2个内容,一个是INT_CLOCK
,另一个是TIMESHARING
,如下:
; RTX-51 TINY Hardware-Timer
; ==========================
……
;
; Define Hardware-Timer tick time in 8051 machine cycles.
INT_CLOCK EQU 10000 ; default is 10000 cycles
;
; Define Round-Robin Timeout in Hardware-Timer ticks.
TIMESHARING EQU 5 ; default is 5 Hardware-Timer ticks.
; ; 0 disables Round-Robin Task Switching
;
……
02 - 关注的配置
INT_CLOCK
是配置用户Task的心跳Tick
,也就是对于用户任务而言,一个Tick
就是一个心跳,用户任务都在Tick
下进行工作,根据8051系统的单片机时钟初始化配置,填上实际的数值,比如如果想让一个Tick
是2ms,那么就要配置对应的INT_CLOCK
数值,需要和实际硬件时钟配置相对应,假设8051的时钟频率为12Mhz不分频,那么配置1000为1ms,于是1 Tick = 1 ms
TIMESHARING
是配置调度器算法:
当TIMESHARING == 0
的时候,选择协议调度,任务的切换需要主动进行,如果一个任务不进行任务的切换动作(wait / switch……),那么这个任务将一直运行,其它任务得不到运行。
当TIMESHARING > 0
的时候,选择时间片调度,也是就是分配给每一个任务固定的时间片TIMESHARING * Tick (ms)
,如果在此时间内任务没有主动切换,则由调度器挂起任务,切换到下一个可执行的任务中
03 - 总结
- Conf_tny.A51配置文件一般只关注INT_CLOCK和TIMESHARING
- 01-【RTX51 Tiny入门】-RTX51 Full & Tiny简介
- 02-【RTX51 Tiny入门】-资源占用情况
- 03-【RTX51 Tiny入门】-内核组成
- 04-【RTX51 Tiny入门】-任务和调度器
- 05-【RTX51 Tiny入门】-OS API函数
- 06-【RTX51 Tiny入门】-查看RTX51 Tiny官方例程
- 07-【RTX51 Tiny入门】-使用RTX51 Tiny
- 08-【RTX51 Tiny入门】-Conf_tny.A51配置文件
- 09-【RTX51 Tiny初级】-K_TMO与K_IVL的区别和使用场合
- 10-【RTX51 Tiny初级】-os_send_signal()和os_set_ready()的区别和使用场合
- 11-【RTX51 Tiny初级】-os_wait和os_switch_task区别和使用场合
- 12-【RTX51 Tiny初级】-解决多重调用问题(MULTPLE CALL TOSEGMENT)
- 13-【RTX51 Tiny高级】-进行Task的划分与拆分
- 14-【RTX51 Tiny高级】-修改默认产生时间片的定时器T0为其它定时器
- 15-【RTX51 Tiny高级】-考虑Round-Robin的开启与关闭
- 16-【RTX51 Tiny高级】-解决Task之间的通讯和耦合问题
- 17-【RTX51 Tiny高级】-Task ID隐藏的优先级问题
- 18-【RTX51 Tiny高级】-系统架构的设计