最近呢一直在忙着飞思卡尔智能车大赛的活,等待了许久今天终于出了规则。
今年各个组别对主控都有较大的变动,其中节能组甚至要求用STC主控,那么
上一个操作系统就是是有必要的。
然后前几天研究操作系统时也发现了不少的案例,在51上跑操作系统或者RTOS
真的开始有用武之地了。查了一些资料,其中有一个很不错的包,叫星光操作系统,
可以完美移植到多款51单片机上。
以下是具体的信息:
(1)支持AT89S52、STC89C52RC、STC90C58RDPlus、STC12C5A60S2、STC15F2K60S2、STC15W4K32S4、STC8A8K64S4A12和STC8F2K64S4单片机
(2)支持线程、信号量、屏障和信箱
(3)采用时间片轮转调度和抢占式调度,时间片为10毫秒
(4)支持以时钟周期为单位的延迟
(5)支持中断触发,使用中断系统默认的优先级
(6)提供组件、库和驱动,方便使用外设
(7)采用模块化设计,便于裁减和扩充功能
(8)只有一个文件使用8051汇编语言,其它文件使用C语言,具有良好的可移植性
星光操作系统的开发环境为Keil C51 V9.51a,使用9级优化,重点对大小进行优化,其最小编译结果如下所示:
表1 星光操作系统的最小编译结果
单片机 data xdata code
AT89S52 153 0 5141
STC89C52RC(6T模式) 99 57 5593
STC90C58RDPlus(6T模式) 99 57 5593
STC12C5A60S2 99 92 7407
STC15F2K60S2 99 96 8521
STC15W4K32S4 99 127 10835
STC8A8K64S4A12 99 138 12877
STC8F2K64S4 99 105 9335
在调试阶段,使用4级优化,调试通过后使用9级优化。如果9级优化后运行结果错误,增加调用栈的容量后重新编译。
星光操作系统支持的组件如下所示:
表2 星光操作系统支持的组件
名称 功能
LCM1601 1601液晶模块
LCM1602 1602液晶模块
LCM12864 12864液晶模块
DS18B20 1线接口温度传感器
DS1302 3线接口实时时钟
HS0038B 红外线解码器
AT24C02 IIC接口EEPROM
AT93C46 3线接口EEPEOM
28BYJ48 步进永磁减速电机
NRF24L01 2.4GHz无线收发器
NRF24L01Plus 2.4GHz无线收发器
Starlight_V0.2.zip
(4.86 MB, 下载次数: 35)
|