/***************************************************/
/* Release Notes for RTX51 TINY Version 2 */
/* PK51 PROFESSIONAL DEVELOPERS KIT */
/***************************************************/
This file contains release notes and last minute changes relating to the
RTX51 TINY Real Time Operating System Version 2.
Information in this file, the accompanying manual, and software is
Copyright (c) 2002 Keil Software and Keil Elektronik. All rights reserved.
Contents
========
1. What's New in RTX51 TINY Version 2
1.1. Code Banking Support
1.2. Explicit Task Switch (Function: os_switch_task)
1.3. RUN Status Flag for Tasks
1.4. CPU IDLE Mode for Power-Reduction
1.5. Add User Code to the 8051 CPU Hardware Timer Routine
1.6. Handling for Interval Events (Function: os_reset_interval)
2. Reduced Code/Data Size and Improved Performance
3. Problems solved in RTX51 TINY Version 2.02
4. Example Programs
1. What's New in RTX51 TINY Version 2
RTX51 TINY Version 2 has been completly restructured to gain flexiblity,
accelarate performance, and reduce code/data space requirements. Also
several new features are added to this popular Real-Time Kernal.
The following section describes the new features in RTX51 TINY Version 2:
1.1. Code Banking Support
You can now use RTX51 TINY together with code banking application. Code
banking support is enabled in the file CONF_TNY.A51 with the CODE_BANKING
configuration variable. As with all other code banking applications you
need to configure the file L51_BANK.A51. Note: The banking configuration
file L51_BANK.A51 V2.12 or higher is required.
1.2. Explicit Task Switch (Function: os_switch_task)
The function os_switch_task lets a task give up the CPU and let another
task execute. If the task calling os_switch_task is the only task that is
ready for execution, it will resume running immediately.
Function prototype:
void os_switch_task (void);
Program Example:
void long_job (void) _task_ 1 {
float f1, f2;
f1 = 0;
while (1) {
f2 = log (f1);
f1 += 0.0001;
os_switch_task (); // execute other tasks
}
}
1.3. READY Status Flag
In addition to the signal flag, each task has also a READY status flag.
A new function allows you to set the READY status flag. If the READY
status flag of a tasks is set, the task will always stay in the Ready
state. The os_wait function will immidiatly continue to the execute
when the READY status flag is set. When a task becomes active, the status
of the READY status flag is cleared and the previous status is signaled as
retrun value of the os_wait and os_switch_task function.
The os_wait function requires no specific argument (like K_SIG for the
signal flag) to wait for the READY status flag.
Compared to the os_send_signal function, the os_set_ready function executes
faster. os_set_ready does not check for valid taskid arguments.
Function Prototypes
void os_set_ready (unsigned char taskid);
void isr_set_ready (unsigned char taskid);
Set the READY status flag of the task specified by taskid.
The value of the READY status flag is indicated by the return value RDY_EVENT of the
os_wait and os_switch_task function. When a task becomes ready, the READY status flag
of these task is automatically cleared.
1.4. CPU IDLE Mode for Power-Reduction
Many 8051 variants can be switched into an IDLE mode where the CPU is gated
off the clock signal. In IDLE mode, the CPU stops instruction execution.
However peripherals including the interrupt system still continue their
operation. RTX51 Tiny invokes the IDLE mode when no task is in the status
READY. Typcially the IDLE mode is terminated by an CPU interrupt, i.e. the
RTX51 Tiny System Clock Interrupt.
On most 8051 variants the IDLE mode is started by setting bit 0 (IDL) in
the PCON register. However, the configuration file CONF_TNY.A51 provides
the macro CPU_IDLE for the configuration of the IDLE mode activation code.
1.5. Add User Code to the 8051 CPU Hardware Timer Routine
In RTX51 Tiny Version 2 it is possible to add user code for the RTX51
System Timer Interrupt routine. In this way you may use the fixed clock
rate of the RTX51 System Timer Interrupt to execute own routines. The user
code can be configured with macro HW_TIMER_CODE in the configuration file
CONF_TNY.A51.
1.6. Handling for Interval Events (Function os_reset_interval)
RTX51 Tiny maintains a software timer for each task. This software timer is
used as interval timer when os_wait is called with a K_IVL event argument.
The interval time specified is substracted from the software timer on the
entry of the os_wait function.
When two event arguments are used (signal and interval might be combined with
K_SIG | K_IVL) with os_wait and the signal event occurs, the software timer might
not be elapsed and this may result in incorrect interval times on further os_wait
calls with the K_IVL event argument. The function os_reset_interval overcomes this
problem and resets the interval time.
Example:
void maintask (void) _task_ 0 {
os_create_task (1);
while (1) {
event = os_wait2 (K_SIG | K_IVL, 100);
switch (event) {
case TMO_EVENT:
a = event;
break;
case SIG_EVENT:
b = event;
os_reset_inverval (100); // correct interval time on a signal event
break;
}
}
}
2. Reduced Code/Data Size and Improved Performance
RTX51 Tiny Version 2 is fully scalable and shows significant code size
reductions when:
a) Round Robin Task Switching is disabled with the setting TIMESHARING
EQU 0 in the configuation file CONF_TNY.A51.
b) not all RTX51 Tiny system functions are used.
c) Stack Checking is disabled with the setting FREE_STACK EQU 0 in the
configuration file CONF_TNY.A51.
Compared to RTX51 Tiny Version 1 the code size requirements are reduced.
However also the overall system performance is improved. When you disable
Round Robin Task Switching even the data requirements are reduced.
3. Problems solved in RTX51 TINY Version 2.02
The following known problems of RTX51 Tiny are corrected in Version 2.02:
a) RTX51 Tiny V1.06: isr_send_signal function may destroy the READY status
when an interrupt occurs during os_wait, whereby the current task is
waiting for the signal from this interrupt.
b) RTX51 Tiny V1.06: K_IVL and K_SIG event cannot be combined in os_wait
since it is not possible to correct the interval timer. In RTX51 Tiny
V2.0 the function os_reset_interval allows you to correct the interval
timer.
c) RTX51 Tiny V1.06: TIMESHARING (round-robin time) cannot be set to 1.
In in this case it can happen (when the interrupt appears before the
robin-time is set) that the timeout is delayed 256 system clock ticks.
d) RTX51 Tiny V1.06: When user interrupts are longer than a RTX51 Tiny
System Clock Timer Tick, the RTX51 Tiny System Clock Timer is called
recursively. This overwrites the values SAVEPSW and SAVEACC with wrong
values and causes typically a system crash.
In RTX51 Tiny V2.0 it is recommended that you set LONG_USR_INTR EQU 1
in the configuration file CONF_TNY.A51 if your application contains an
interrupt function that may take longer for execution than the RTX51
Tiny System Clock Timer Interval time. It might be also required to
set this flag when your code executes most of the time interrupt code
with high interrupt priority.
e) RTX51 Tiny V2.00 BETA: os_wait did not reset the SIGNAL event, when
the signal was already set
没有合适的资源?快使用搜索试试~ 我知道了~
单片机keilc安装程序
共751个文件
h:213个
c:93个
a51:74个
5星 · 超过95%的资源 需积分: 10 49 下载量 171 浏览量
2009-09-09
13:35:18
上传
评论
收藏 17.08MB RAR 举报
温馨提示
完整单片机keilc安装程序,单片机编程者必备,结合protuce软件仿真!!!!
资源推荐
资源详情
资源评论
收起资源包目录
单片机keilc安装程序 (751个子文件)
L51_BANK.A51 42KB
L51_BANK.A51 42KB
L51_BANK.A51 42KB
L51_BANK.A51 42KB
L51_BANK.A51 42KB
INSTALL.A51 37KB
ISD51.A51 27KB
ISD51.A51 27KB
ISD51.A51 27KB
ISD51.A51 27KB
ISD51.A51 27KB
ISD51.A51 27KB
ISD51.A51 27KB
ISD51.A51 27KB
INSTALL.A51 20KB
RTX51TNY.A51 18KB
L51IBank.a51 16KB
Conf_tny.A51 16KB
Conf_tny.A51 16KB
Conf_tny.A51 16KB
CONF_TNY.A51 16KB
INSTALL.A51 15KB
INSTALL.A51 14KB
XBANKING.A51 12KB
INSTALL.A51 12KB
INSTALL.A51 12KB
START900.A51 11KB
START900.A51 11KB
START900.A51 11KB
START900.A51 11KB
START900.A51 11KB
XBANKING.A51 11KB
TEMPLATE.A51 11KB
XBANKING.A51 10KB
XBanking4XRAM.A51 10KB
INIT.A51 9KB
INIT.A51 9KB
START390.A51 9KB
START390.A51 9KB
INIT_MX.A51 9KB
MON_BANK.A51 8KB
XBANKING.A51 8KB
XBANKING.A51 8KB
startup400.a51 8KB
START_MX.A51 7KB
START390.A51 7KB
START390.A51 7KB
START390.A51 7KB
START_MX.A51 7KB
START_MX.A51 7KB
INIT_TNY.A51 7KB
START_AD.A51 6KB
MX51BANK.A51 6KB
MX51BANK.A51 6KB
STARTUP.A51 5KB
STARTLPC.A51 5KB
STARTUP.A51 4KB
HWCfr.a51 3KB
HWCfr.a51 3KB
HWCfr.a51 3KB
HWCfr.a51 3KB
SETJMP.A51 3KB
cca.a51 3KB
CONF_TNY.A51 3KB
ROM.A51 3KB
CONF151.A51 2KB
START751.A51 2KB
INST390.A51 2KB
ASAMPLE1.A51 1KB
MX_INST.A51 1KB
ASAMPLE2.A51 804B
ASAMPLE3.A51 344B
VERS.A51 331B
RIGHT.A51 326B
AD4Input 15KB
AD8Input 15KB
AD_Interrupt 12KB
Banking 6KB
INSTALL.BAT 6KB
AXSAMPLE.BAT 258B
ASAMPLE.BAT 251B
GENRTX.BAT 236B
layout.bin 435B
SETUP.BMP 137KB
DHRY.C 28KB
DES.C 17KB
TRAFFIC.C 15KB
TRAFFIC.C 15KB
MEASURE.C 13KB
MEASURE.C 13KB
SERIAL.C 7KB
SERIAL.C 7KB
WHETS.C 7KB
SAMPL517.C 7KB
Test.c 6KB
MCOMMAND.C 5KB
AD4Input.c 5KB
MCOMMAND.C 5KB
AD8Input.c 5KB
AD_Interrupt.c 4KB
共 751 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
- sharon00262013-08-30很好用的,序列码也有
xuyuanye19881214
- 粉丝: 13
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言基础-C语言编程基础之Leetcode编程题解之第33题搜索旋转排序数组.zip
- 基于Python实现的手写数字识别系统源码.zip
- 从网页提取禁止转载的文字
- C语言基础-C语言编程基础之Leetcode编程题解之第32题最长有效括号.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第31题下一个排列.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第30题串联所有单词的子串.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第29题两数相除.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第28题找出字符串中第一个匹配项的下标.zip
- 实验报告模板(1).docx
- C语言基础-C语言编程基础之Leetcode编程题解之第26题删除有序数组中的重复项.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功