热搜关键词: 电路基础ADC数字信号处理封装库PLC

pdf

《RL-ARM 实时库用户指南》中文版

  • 1星
  • 2016-04-27
  • 2.53MB
  • 需要1积分
  • 100+ 次下载
标签: RTX

RTX

ARM

ARM

《RL-ARM  实时库用户指南》中文版

简介:RL-ARM™  用户指南包含关于RealView®  实时库构成的细节信息。本手册包括以下几章:1.  RL-RTX  描述了RL-ARM实时操作系统的结构,包括任务优先级、上下文切换、单个CPU下如何管理多个任务以及在RL-RTX中用到的其他一些  RTOS特性;  2.RL-FlashFS  描述了  RL-ARM中Flash文件系统的结构,包括文件创建、保存、读取以及在标准的flash,RAM或是存储卡设备中修改文件。3.RL-TCPnet  描述了RL-ARM中TCP/IP协议栈组的结构,包括多种TCP/IP特性,以及帮助你创建可以联网的嵌入式运用程序  4.RL-CAN  描述了RL-ARM中CAN设备的结构,包括如何采用RTX内核建立CAN运用程序。5.Example  Programs  列举了一些RL-ARM例程以及描述如何对其进行测试。6.Library  Reference  描述了在  RL-ARM所有的库程序  7.Appendix  包含  µVision®  调试对话框,以及术语表。

RL-ARM: RL-ARM User's Guide
RL-ARM
实时库用户指南
页码,1/335
RL-ARM™
用户指南包含关于
RealView
®
实时库构成的细节信息。
本手册包含以下几章:
n
RL-RTX
描述了RL-ARM实时操½系统的结构,包括任务优先级、上下文切换、单个CPU下如½管理多个任务以及
在RL-RTX中用到的其他一些
RTOS特性。
RL-FlashFS
描述了
RL-ARM中Flash文件系统的结构,包括文件创建、保存、读取以及在标准的flash,RAM或
是存储卡设备中修改文件。
RL-TCPnet
描述了RL-ARM中TCP/IP协议栈组的结构,包括多种TCP/IP特性,以及帮助½创建可以联½的嵌入
式运用程序。
RL-CAN
描述了RL-ARM中CAN设备的结构,包括如½采用RTX内核建立CAN运用程序。
Example Programs
列举了一些RL-ARM例程以及描述如½对其进行测试。
Library Reference
描述了在
RL-ARM所有的库程序。
Appendix
包含
µVision®
调试对话框,以及术语表。
n
n
n
n
n
n
RL-ARM
支持基于ARM的微控制器,是对RealView
MDK-ARM™
开发工具的补充。
注意:
n
RealView® MDK-ARM开发工具包中并不包括RL-FlashFS、RL-TCPnet,以及RL-CAN
,这些只在RL-ARM
立的产品中可以找到。
修订历史
n
n
n
n
n
n
n
2006.11:
增加对SD/MMC
Flash
存储卡
的支持。
2006.11:
将所有的½数描述移到库参考单元。
2006.10:
初始对接½络。
2005.10:
增加
互斥½, 堆栈校验,
Flash
文件系统,
以及
CAN驱动。
2005.6:
第二次修订
2005.2:
第一次修订
2004.11:
初始版本
Copyright
©
Keil, An ARM Company. All rights reserved.
RL-RTX
RTX内核是一个实时操½系统(RTOS),可以同时运行多½数或是任务。在嵌入式运用中这是非常有用的。½然也可
以不用RTOS开发实时程序不需要,例如通过循环执行一个或多个任务。½有像RTX这样的实时操½系统,可以解决众多的
调度、维护、定时等问题。
RTOS
可以自由地调度系统资源,比如CPU和内存,并且提供一种任务间通信机制。
RTX内核是一个强大的实时操
½系统,可以很容易地½用和运行基于
ARM7TDMI、ARM9或是 Cortex-M3 CPU
内核的微控制器。
RTX程序½用标准的C结构编写,运用RealView®
编译器进行编译。RTX.H 头文件定义了RTX½数以及宏,可以让
file://C:\Documents and Settings\admin\Local Settings\Temp\~hhB0BC.htm
2010-7-21
RL-ARM: RL-ARM User's Guide
½松地声明任务并达到RTOS所有特性。
在新工程中½用RTX内核
将通过一步步的介绍让读者了解怎样创建RTX运用程序。
页码,2/335
Copyright
©
Keil, An ARM Company. All rights reserved.
概述
RTX内核可以½松地½用实时执行器,该实时执行器为基于ARM CPU核的微控制器提供。RTX内核提供了一组C½数以及C
宏,可以让开发者½用在CPU中并行运行的任务去创建实时运用程序。
这个部分提供了RTX内核基本的信息,列出了时钟信息,以及解释了并行执行任务的概念。
Copyright
©
Keil, An ARM Company. All rights reserved.
功½描述
RTX的基本功½就是开始和停止任务(进程),除此之外还支持进程通信,例如任务的同步、共享资源(外设或内
存)的管理、任务之间消息的传递。
Copyright
©
Keil, An ARM Company. All rights reserved.
基本½数
开发者可以½用基本½数去开启实时运行器,去开始和终结认为,以及去传递任务间的控制(½½调度)。开发者可以赋予
认为优先级。½在就绪队列中有多个任务的时候,RTX内核通过执行优先级来确定下一个运行的任务(强占调度)。
Copyright
©
Keil, An ARM Company. All rights reserved.
进程通信
RTX提供了几种不同的进程通信方法:
n
事件标志
事件标志是实现进程同步的主要方法,每个进程有16个事件标识可供½用,所以最多½等待16个不同的事件。也可以
同时等待多个事件标志,这种情况下,如果这些事件标志是与的关系,那么这些事件标志必须½被½½后该进程才½继续运
行;如果这些事件标志是或的关系,那么这些事件标志中的一个或几个被½½后该进程就可以继续运行。
事件标志也可被ARM中断功½½½。在这种机制下,通过½用ARM中断½数设½任务等待的标志,可以½异步的外部事
件和RTX核的任务同步。
n
信号量
在多任务实时操½系统中,需要特别的方法访问共享资源。否则,这些任务对共享资源的同时访问可½会导致数据的
不一致或外设的错误操½。
解决访问临界资源问题的主要方法是信号量。信号量是包含了虚拟标志的½件对象。内核将标志给第一个请求的任
务。在任务将其返回给信号量之前,没有其他的任务可以获取这个标志。只有拥有标志的任务才½访问公共资源,这就阻止
了其他的任务访问和扰乱公共资源。
½信号量的标志不可用时,访问它的进程将被挂起,一旦标志被返回,这个进程就会被唤醒。为了解决错误的等待条
件,必须引入超时机制。
n
互斥量
file://C:\Documents and Settings\admin\Local Settings\Temp\~hhB0BC.htm
2010-7-21
RL-ARM: RL-ARM User's Guide
页码,3/335
互斥量是解决进程同步问题的另一种方法。它们用½对临界区的访问控制,只有拥有互斥量的进程才½访问临界区,
其他试图访问临界区的进程将被阻塞。
n
信箱
有时进程之间需要交换消息,这在½络中是很常见的,例如TCP-IP、UDP、ISDN等。
消息就是包含协议消息或帧的内存块的指针,这样的内存块可以动态的分配和提供给用户。为了防止内存泄漏,用户
有责任正确地分配和回收内存块。
如果接收进程访问信箱中的消息不存在,它将被挂起,直到该消息被发送进程发送到信箱中,该被挂起的接收进程才
会被唤醒。
Copyright
©
Keil, An ARM Company. All rights reserved.
技术规范
描述
支持的进程数
支持的信箱数
支持的信号量数
支持的互斥量数
支持的信号量数
支持的用户定时器数
RAM
要求
代码要求
硬件要求
用户进程优先级
进程切换的时间
中断停止时间
RX Kernel
最多256
无限制
无限制
无限制
每个进程16个
无限制
最少500字节
小于5
K字节
一个或多个片上时钟可用
1 - 255
小于5µsec
@60MHz, 0 ws.
小于1.8
µsec
@60MHz, 0 ws
注意
n
n
n
n
无限制是说不受RTX核操½系统的限制,½是要受到系统内存资源的限制;
RTX核的默认配½是:10个任务、10个用户定时器、禁止栈的检查;
这里的“信号”就是事件的意思;
RAM的限制是由并发执行的进程数来决定的。
Copyright
©
Keil, An ARM Company. All rights reserved.
时序规格
½数
初始化系统(os_sys_init),
启动进程
创建定义的进程,没有进程切换
创建定义的进程,切换进程
撤消进程(通过os_tsk_delete)
进程切换(通过os_tsk_delete_self)
进程切换(通过os_tsk_pass)
进程切换(upon
set event)
时间性½
36.3
12.9
14.6
5.9
8.8
4.6
7.3
file://C:\Documents and Settings\admin\Local Settings\Temp\~hhB0BC.htm
2010-7-21
RL-ARM: RL-ARM User's Guide
进程切换(upon
sent semaphore)
进程切换(upon
sent message)
设½时间(没有进程切换)
发送信号量
(没有进程切换)
发送消息(没有进程切换)
获得进程标识符
(os_tsk_self)
IRQ中断服务子程序的中断响应时间
IRQ中断服务子程序的最大等待时间(lockout)
IRQ中断服务子程序的最大中断延迟 (response + lockout)
5.5
6.1
2.5
1.9
2.8
1.0
0.4
2.2
2.6
页码,4/335
注意
n
n
n
这里的时间数据是在LPC21xx上执行的结果,系统时钟为60MHz,单½是µs,代码在处理器的内部Flash中执行;
这些时间数据由µVision3调试器和SARM.DLL½件仿真器(1.50e版本)测得的。
中断服务子程序及调用中断服务的程序½由RealView编译器编译。在不½用RTX核时,RVCT快速中断程序也有同
样的中断响应时间。Interrupt
response for ISRs includes the ISR prolog as generated by RealView
Compilation Tools. The RVCT fast interrupt procedures have the same interrupt response time
without the RTX kernel.
Copyright
©
Keil, An ARM Company. All rights reserved.
怎样½用RTX内核
处:
RTX核的实时响应是基于多任务并发执行的思想,将系统必须响应的任务被分成几个更小的任务,这样做有许多½
n
n
n
n
n
n
n
现实世界的事件通常是由并发事件组成的,这种模式可以被映射到½件中;
不同的事件在需要时可随时发生,将一个任务分割成可以独立执行的进程,½得这种情况可以实现;
任务的优先级是可改变的;
一个大的模块可以分割成几个小的模块,这样做有利于程序的理解及模块的管理;
通过将一个½件分割成独立的几个部分可减小系统的复杂性,同时减少错误的发生,½测试更容易;
系统的扩展更加容易,只需要在系统中增加任务就可以实现;
RTX核的实时性为实时应用程序提供了许多方便,例如可以提供一个½的中断处理、任务的周期性响
应及等待½数的时限等。
Copyright
©
Keil, An ARM Company. All rights reserved.
第一个RTX运用程序
这部分给出了一个非常简单的½用RTX核的应用程序例子。
这个应用程序有两个任务,
task1和task2,这两个任务
必须在一定的时间(如50ms)后重复执行,½task1执行完后暂停20ms,然后继续执行task2。
现在,一步一步构建这个应用程序。
1.
将操½代码写入到task1和task2中。
在RVCT中½用C语言的扩展关键字_task声明这两个任务。
void task1 (void) __task
{
.... place code of task 1 here ....
file://C:\Documents and Settings\admin\Local Settings\Temp\~hhB0BC.htm
2010-7-21
RL-ARM: RL-ARM User's Guide
}
void task2 (void) __task
{
.... place code of task 2 here ....
}
2.
运行任务之前启动实时运行器,然后,在C程序的main()½数中调用os_sys_init()
½数。
将任务ID½为一个参数传递到os_sys_init½数中,½程序运行时就直接执行task1。
首先执行rask1。在task1执行时调用
os_tsk_create
创建task2。
void task1 (void) __task
{
os_tsk_create (task2, 0);
.... place code of task 1 here ....
}
void task2 (void) __task
{
.... place code of task 2 here ....
}
void main (void)
{
os_sys_init (task1);
}
3.
将操½写入到死循环中,不可预知地重复执行两个程序。
页码,5/335
首先,系统½数
os_dly_wait()
任务暂停几个系统时间间隔。RTX核通过对ARM处理器片上定时器的编程来实
现系统定时器,默认情况下,系统间隔10ms,½用0号定时器,不过这可以调整。
系统½数
os_evt_wait_or
的½用是用于让task1等待task2完成,而
os_evt_set½用是传送信号给task2。
这个例子中½用的是3号事件标志。task2必须在task1完成20ms之后才½启动。同样的½数可以在task2等待task1以
及传送信号给task1时½用。以下列举了运行RTX例程所有的要求:
/* Include type and function declarations for RTX */
#include "rtl.h"
/* id1, id2 will contain task identifications at run-time */
OS_TID id1, id2;
/* Forward declaration of tasks. */
void task1 (void) __task;
void task2 (void) __task;
void task1 (void) __task
{
/* Obtain own system task identification number */
id1 = os_tsk_self();
/* Create task2 and obtain its task identification number */
id2 = os_tsk_create (task2, 0);
for (;;)
{
/* ... place code for task1 activity here ... */
file://C:\Documents and Settings\admin\Local Settings\Temp\~hhB0BC.htm
2010-7-21
展开预览

猜您喜欢

推荐帖子 最新更新时间:2024-11-13 03:56

雷达设计将迎来重大变革-可重新配置PA
由于射频功率放大器 (PA)是决定通信质量的关键器件,因此雷达系统的性能好坏与射频功率放大器 (PA)相关。目前,现代雷达系统大多数都是多频段雷达,遗憾的是,大多数功率放大器 (PA) 都不适合多频段雷达系统,值得庆贺的是-Qorvo推出了一款可重新配置功率放大器 (PA) ,一起来看一下这个新产品吧。   QPA0007 PHS package and evaluation boa
alan000345 RF/无线
有关JTAG 与 I/O 功能之间的 MSP430 引脚复用
     四个引脚 P1.7 - P1.4 在 20 与 28 引脚 MSP430F1xx 器件上均同时具有 I/O 与 JTAG 功能。这些引脚的默认功能是,当器件通电时具有 I/O 功能。当测试引脚拉高时,则将这些引脚选为 JTAG。当使用交互式系统内调试程序时,这些器件的 FET 会将这些引脚处于 JTAG 模式下。有关在使用调试程序时从 JTAG 模式发布引脚的信息,或参阅《FET 工具用
Aguilera 微控制器 MCU
R7F0C809 RESET设置为输入端口 选项字节设置
本帖最后由 bkn1860 于 2015-8-26 14:14 编辑 R7F0C809  RESET设置为输入端口 当需要把R7F0C809的RESET端口当做输入口使用的时候,需要将PORTSELB设置为0,PORTSELB默认是1,R7F0C809规格书的第十八章介绍了选项字节的内容具体设置方法如下: 1.       打开工程,在工程的CA78K0R(build Tool)上点击
bkn1860 瑞萨电子MCU
细数T-BOX中TI的明星产品之车载以太网 | 第一节 DP83TC811S-Q1:车载以太网让您的T...
第一节 DP83TC811S-Q1:车载以太网让您的T-BOX如虎添翼 近年来“车联网”概念的热度一直都居高不下。说起车联网,当然就不得不提车载以太网以及车联网的核心组成部分之一---T-BOX! 本文将会从车载以太网100BASE-T1说起,深入剖析车载以太网特点,并且详细介绍TI的明星产品DP83TC811S-Q1的优点以及在T-BOX的应用中的优势所在。 什么是车载以太网?
alan000345 TI技术论坛
结题——单身狗治愈忧伤:TI 买买买!
再次感谢我们神奇的小编主笔 大家好,我是小编。今天是2018年11月12日。一万点防御BUFF加持也无法弥补昨天给我带来的伤害。今天不想上班,因为昨天小编我又当了一次“双十一编外人员”来,跟我一起学习官方解释:(划重点,必考。) @单身狗 一脸桃花一脸翔的路过,还是穿着灰色格子衫。我惊讶的问他是不是有对象了?一半香艳一半屎,估计是个男性对象。那我怎么办?单身狗一脸满足的回答说:对象我有
soso TI技术论坛
给Android制造补丁升级包
本帖最后由 Wince.Android 于 2015-3-18 08:44 编辑 是这样的,我的Android先前已经发布了一个Android20150312.tar.bz2的1.7G的包了,但是过了几天我改了一些东西升级成Android20150316.tar.bz2的包了,我这边是很轻松了,都在我的电脑里面,但是我难道要再发一次Android20150316.tar.bz2客户吗?好像没有
Wince.Android 嵌入式系统
晒出我使用MSP430编译器的经验与技巧!
活动页面:晒出我使用MSP430编译器的经验与技巧! 活动时间:7月15日-8月17日 活动要求: 1、以“【MSP430 编译器使用经验】+自拟”为标题在本版块发帖。2、内容可以是CCS、EnergiaI或IAR等编译器的使用技巧、开发经历。3、字数大于200,最好能图文并茂,格式不限。4、所有内容须为原创,且在EEWORLD首发。转载或大段摘录,视为自动放弃获奖资格。评奖设置 \0
EEWORLD社区 微控制器 MCU
NXP-EVB-P6UL(I.mx6ul)的3G网络测试《一》
本帖最后由 szypf2011 于 2017-9-9 15:06 编辑   之前得到了一块I.mx6ul的评估板,EVB-P6UL。最近调通了这块评估板的3G模块功能,所以想跟大家分享关于3G网络测试的一些心的!!!  先简单的说下这个块板。EVB-P6UL是盈鹏飞(http://www.embedall.com/)公司基于NXP I.MX6UL为主控的评估控制主板。它可以用于工业控制,或医疗
szypf2011 ARM技术

评论

wdliming
不错哦,对于英文阅读能力有限的小白还是很有帮助的 中文资料有帮助
2020-08-14 11:46:21
Rainy_Day04321
不错哦,对于英文阅读能力有限的小白还是很有帮助的
2019-10-15 15:13:05
登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×