1 MDK RL—RTX和COrtex—M3概述
MDK开发套件源自德国Keil公司,是ARM公司现在最新推出的针对各种嵌入式处理器的软件开发工具。MDKRL—IUX是一个实时操作体系(RTOS)内核,彻底集成在MDK编译器中。广泛运用于ARM7、ARM9和Cortex-M3设备中。它能够灵敏处理多使命调度、保护和时序组织等问题。根据RL—I订X的程序由规范的C言语编写,由Real—View编译器进行编译。操作体系依附于C言语使声明函数更简单,不需要杂乱的仓库和变量结构装备,大大简化了杂乱的软件规划,缩短了项目开发周期。
Cortex—M3是一个32位的核。它是首个根据ARMv7M架构,首要针对价格灵敏但又具有高体系效能需求的嵌入式运用规划,如微操控器、轿车车体体系及网络设备等。它内核紧凑,功用更高,选用了Thumb一2指令集架构,中止时刻更短,规范化内存映射,带有内置SysTick的集成式NVIC。 SysTick能定时地发生反常恳求,作为体系的时基,计时更精确。
MDK RL—RTX和Cortex—M3都源自ARM公司。ARM公司将其无缝整合在MDK开发套件中,因而将RL—RTX移植到Cortex—M3上十分合适。RL—RTX作为一个全功用的内核,能够结合实时软件库中的其他组件。例如,参加实时库中RL—Flasht文件体系组件,就能够读写规范SD卡和 MMC卡上面的文件;参加RL—TCPnet组件,可运用于HTTP Web,ServeI’、TFTP Server和SMTP Client等。可扩展性强,运用广泛。
2 根据COrtex—M3硬件渠道的构建
STM32F103VB是ST公司根据Cortex—M3的处理器。它有1个128 KB Flash,1个20 KB SRAM,4个16位定时器,100个可编程的I/0引脚,具有I2C、SPI、USB、15SART和CAN接口,2路10通道12位A/D转换器,RTC功用模块,WDT功用和高档电源办理功用。
体系的数据缓存RAM和程序存储器Flash为芯片自带,体系外接A/D转换器构成操控器。根据Cortex-M3核的最小体系框图如图1所示。
根据该渠道,规划一个超温报警器。运用美国半导体Dalias公司的智能温度传感器DS18820采样,LCD显现温度数值,假如短时刻内温度超出正常温度,蜂鸣器宣布100 dB警报且LED灯闪耀示警。能够进一步在该渠道上进行扩展,参加GPS和GPRS模块,当温度超出设定规模时,GPS将现场经纬度以及时刻经过GPRS 以短信方法发送给监控中心,GPRS模块主动拨打有关人员移动电话或固定电话报警。
3 MDK RL—RTX的装备与移植
RL—RTX在使命办理方面不只支撑抢先式使命切换,并且支撑时刻片轮转切换。在根据时刻片的轮转使命机制下,CPIJ的履行时刻被划分为若干时刻片,由 RL—RTX分配一个时刻片给每个使命,在该时刻片内只履行这个使命。当时刻片到,鄙人一个时刻片中无条件地履行别的一个使命。一切使命都轮询一次后,再回头履行第一个使命。
RL—RTX最多能够界说256个使命,一切使命都能够一起激活成为安排妥当态。RL—RTX用户使命具有表1所列的几个状况。
一般情况下,使命切换由时刻片操控,但有时需要用事情操控使命切换。RL—RTX事情首要有超时(Timeout)、距离(Interval)和信号 (Signal)三种。
Timeout:挂起运转使命指定数量的时钟周期,调用OS_DLY_WAIT函数的使命将被挂起,直到延时完毕才回来到Ready状况,并可被再次履行。延时时刻由SysTick衡量,能够设置从1至OxFFFE的任何值。
Interval:时刻距离,使命在该时刻距离中不运转,该时问距离与使命履行时刻独立。
Signal:用于使命间通讯,能够用体系函数进行置位或复位。假如一个使命调用了wait函数等候Signal未置位,则该使命被挂起直到Signal 置位,才回来READY状况,可再被履行。
RL—RTX中首要的体系函数阐明如表2所列。
RL—RTX为每个使命都分配了一个独自的仓库区,各个使命所用仓库方位是动态的,用task_id记载各仓库栈底方位。有多个嵌套子程序调用或运用很多的动态变量时,自由空间会被用完。使能栈查看(Stack Checking),体系会履行OS_STK_0VERFLOW()仓库过错函数进行仓库犯错处理。RL—RTX仓库办理如图2所示。
RL—RTX挑选Cortex上定时器1发生周期性中止,相邻中止之间的时刻便是时刻片的长度。在其中止服务程序中进行使命调度,并判别履行了推迟函数的使命的延时时刻是否到。这种周期性的中止形成了RL—RTX的时钟节拍。选用Cortex—M3的处理器STM32F103VB的CPU时钟频率为72 MHz,VPBDIV分频值为4,输出的时钟频率为18 MHz。体系引荐的时刻片为1~lOO ms。