浅谈单片机开发---操作系统

原创 2012年04月01日 18:59:39

工作中分析了一下现状,项目繁多,需求不一,团队成员单片机开发经验缺乏,编程风格各异,几乎没有可以重复利用的模块,无现成提高开发效率与测试的工具。

为使开发更迅速,流程更标准,同时也让系统模块化更强,拥有更好的复用性,需要有一个单片机操作系统。现有的操作系统琳琅满目,开源的无技术支持,商用的价格高,最重要的是我们的系统虽然繁杂,但更倾向于控制型,使用这些操作系统对团队开发要求较高,而且占用资源多,所以使用这种类型的操作系统就显的大才 小用了。但我们更不希望裸奔,为此,我们需要开发适合自己团队的系统。

我们的目标是:1、传统的开发模式;2、标准化的开发流程;3、高效的开发效率;4、丰富的接口(或工具)

有了这个大体目标,根据我们现有或规划的项目需求,设计了我们的操作系统AEOS。

AEOS工作简介与原理:

AEOS是一种非调度式操作系统,结构小巧,极易移植,占用空间小,可根据需要裁减。由于其非调度的特性,符合我们传统的开发模式,但对于多任务开发则较为麻烦。它提供了任务管理、时间管理、事件管理等基本功能。

AEOS以定时的方式执行任务,为了每个任务都可以获得CPU资源,要求任务执行时间尽可能的短,如果时间较长则需要通过状态机来实现,等待资源或者延迟处理的时候通过跳转状态来释放CPU资源。

任务管理:

AEOS最多支持32个普通任务和32个紧急任务,没有优先级之分,每个任务都需要规定执行周期。普通任务的实时性较差,其性能取决于每个任务构建合理性,每个任务执行时间都需要尽可能的短,如果任务执行的时间比较长则使用状态机API来实现,这样才能保证每个任务都能够较快的获取CPU资源。紧急任务 的实时性很高,但也要求任务的执行时间更为严格,必须属于微秒级别才能使用。

AEOS有一个统计任务,该任务用户可根据需要选择是否打开,打开则会通过可调的执行周期打印出各个任务的执行时间与当前CPU占用率。这个对于系统调试阶段非常重要,这个有助于我们分析任务设计的合理性。

时间管理:

AEOS的时基由1ms的定时中断产生,任务的执行都是由这个时基为基础。AEOS提供了程序断点计时的功能,可方便计算出程序段的执行时间,这些功能有助于验证开发的合理性,也有助于状态机设计中的超时处理。

事件管理:

AEOS的事件与传统OS的事件定义不同,这里的事件一般都用于中断处理。在中断服务程序中只做简单的数据保存,保存后产生相应事件,系统就会自动调用事件处理函数,而且这种事件处理的优先级高于普通任务。

AEOS还提供了子事件处理,可用于中断处理较复杂,且多个应用程序都需要获取这个中断资源的时候,等同于一个中断虚拟出多个中断源,每个应用程序可根据自己需要是否要调用该中断源。


      

      

如何从单片机开发过度到嵌入式开发--谈我的经验

我从事单片机开发有3年多了,从最早写51汇编语言,到后来用C语言写代码,能移植到各种型号单片机上运行,如PIC,freescal,samsung,STC等单片机我都做过。三星单片机编译系统(IAR)最...

PIC单片机开发环境--MPLAB X IDE

熟悉开发环境是学习单片机的第一步,现在介绍下PIC得开发环境,PIC的开发环境有老的 MPLAB IDE, 和最新的MPLAB X IDE. MPLAB X IDE 比老的MPLAB IDE, 编写代...
  • Augusdi
  • Augusdi
  • 2013年08月07日 14:25
  • 4228

普中单片机开发板HC6800-EM3 v2.2 3.0无法烧录下载程序解决

普中科技单片机在淘宝上买了很久了,一直没用,现在要做设计,就拿来看看。这一看不要紧,刚开始就坑死人了写不进程序。研究了一晚上。其实很简单就是短路帽没接对。   l 开发板:普中Prechin HC...

51单片机开发系列五_矩阵按键扫描

51单片机开发系列五 矩阵按键扫描 象棋小子    1048272975 在嵌入式系统中,用的最多的输入设备就是按键,用户的应用需求可通过相应按键传递到系统软件中,软件转而完成用户请求,实现简单的人机...

51单片机开发系列三_数码管动态扫描显示

51单片机开发系列三 数码管动态扫描显示 象棋小子    1048272975 数码管由于发光亮度强,指示效果好,非常适合于电梯楼层等数值显示应用中。对于一位数码管,可以采用静态显示,但实际应用中都是...

Linux下51单片机开发

鉴于目前在linux下开发51单片机的文章均为转载,而且未经过亲试,造成以讹传讹,一下开发方案经由本人测试: 1. 系统fedora 24 2. 编译环境sdcc 3. 下载环境: stcflash...

单片机开发——点亮你的LED小灯

LED(light-emitting diode),即发光二极管,俗称 LED 小灯,它的种类很多,参数也不尽相同,我们板子上用的是普通的贴片发光二极管。这种二极管通常的正向导通电压是 1.8V到 2...

AVR单片机开发环境搭建(Atmega162)

一、开发环境搭建 CodeVisionAVR C Compiler用于程序的编辑以及编译.AVR Studio 4与USB AVR JTAGICE mkll-CN 用于在线调试和程序烧写。 ...

Atmel Studio-SAM单片机开发 ---PIO

atmel sam d21 IO输入输出

单片机开发之数字温度计制作

要求(一)基本功能 1. 测温范围-50℃—110℃ 2. 精度误差不大于0.1℃ 3. LED数码直读显示 (二)扩展功能 1.实现语音报数(不开发) 2.可以任意设定温度的上下限报警...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈单片机开发---操作系统
举报原因:
原因补充:

(最多只允许输入30个字)