基于Atmel-View的电子相框实现

[10-10 20:36:41]   来源:http://www.88dzw.com  电子制作   阅读:8476

文章摘要: 图3 带蓝牙模块UI功能流程www.88dzw.com4Nucleus操作系统的嵌入 Nucleus Plus是美国源代码操作系统商ATI公司推出的新一代嵌入式操作系统,属于抢先式实时多任务操作系统内核, 95%的代码使用ANSI C编写,非常便于移植于各种处理器家族。在通讯、国防、工业控制、航空/航天、铁路、网络、POS、自动化控制、智能家电等领域的广泛应用。Nucleus Plus通常作为一个C 库文件实现。实时的Nucleus Plus应用被链接到Nucleus Plus库。目标文件可以下载到目标机,或者放到ROM 里。在一个典型的目标环境,假设所有服务被应用,Nucleus Plus

基于Atmel-View的电子相框实现,标签:电子小制作,http://www.88dzw.com


 

图3 带蓝牙模块UI功能流程

www.88dzw.com

4 Nucleus操作系统的嵌入

Nucleus Plus是美国源代码操作系统商ATI公司推出的新一代嵌入式操作系统,属于抢先式实时多任务操作系统内核, 95%的代码使用ANSI C编写,非常便于移植于各种处理器家族。在通讯、国防、工业控制、航空/航天、铁路、网络、POS、自动化控制、智能家电等领域的广泛应用。

Nucleus Plus通常作为一个C 库文件实现。实时的Nucleus Plus应用被链接到Nucleus Plus库。目标文件可以下载到目标机,或者放到ROM 里。在一个典型的目标环境,假设所有服务被应用,Nucleus Plus指令集的二进制映象文件需要大概20K 字节的内存。

总的来说,Nucleus Plus极大的提高了实时应用程序的开发工作。这些可以转变成更低的开发投资和更短的开发周期。自从Nucleus Plus支持应用程序移值到新的处理器系列上以来,应用的开发投资已经被保障了。

4.1多任务系统的实现

Atmel-View实质上还是一个单任务的嵌入式定制系统,现有功能的运用主要基于串行运行。但随着应用的深入功能模块的扩展,单任务系统逐渐显得力不从心。

蓝牙模块的运行需要多任务系统的支持,在蓝牙服务的开启状态下,需要不断监听无线请求,在接受到蓝牙传输请求后进行传输处理。使用单任务方式来支持蓝牙服务的监听显然是不合理的,那样Atmel-View将停止运行其功能。

本设计使用Nucleus Plus提供系统级的多任务调度,将Atmel-View模块和蓝牙模块作为同等的任务进行加载运行。选择Nucleus Plus作为任务调度系统,在于其易用性、代价小、嵌入式特性。

4.2 初始化

INT_Initialize 子程序在Nucleus Plus系统中是最先运行的。对大多数的目标环境,硬件复位向量必须包含在INT_Initialize 地址中。INT_Initialize 负责所有与目标硬件相关的初始化。与目标硬件相关的初始化通常包括设置不同种类的处理器控制寄存器,中断向量表,全局的C 数据元素,一些Nucleus Plus变量和系统堆栈指针。当INT_Initialize 完成,控制转移到高级Nucleus Plus初始化子程序INC_Initialize上。注意控制不会返回INT_Initialize。

INC_Initialize 调用每个Nucleus Plus组件的初始化子程序。在所有Nucleus Plus初始化完成之后,INC_Initialize 调用用户供应的初始化子程序Application_Initialize。

Application_Initialize 子程序负责定义初始化应用环境。初始化应用任务,邮箱,队列,管道,信号量,事件集,内存池和其他Nucleus Plus对象都在子程序中被定义。在Application_Initialize 返回后,INC_Initialize 开始初始化任务调度表。

4.3 任务

任务就是目的明确的半独立程序段。大多数现代实时应用都要求多任务。另外,这些任务的重要等级经常变化。管理这些竞争、实时任务的运行是Nucleus Plus的主要目的。每个任务都有五种状态:运行、就绪、挂起、中止、完成。

4.4 任务通信与同步

Nucleus Plus 为通信目的提供邮箱(mailbox),队列(queues),管道(pipes)。邮箱,队列,管道是独立的公共设备。任务之间和其他系统设备之间的联系由应用程序确定。这些通信设备之间主要的差别是数据通信的类型。在Atmel-View模块和蓝牙模块的进程间通信方式,这里选择使用队列和信号量来实现。

4.4.1 队列的应用

在菜单系统的应用中,需要加入对蓝牙模块的支持。除了构建蓝牙设定菜单外,在蓝牙进程开启并实时运行的状态下,需要通过队列方式的进程间通信来获取蓝牙进程的传输请求状况。当传输请求发生后,菜单系统将及时进行反应,提示用户当前处于蓝牙传输过程并且程序阻塞于此。当传输结束后,同样通过队列消息来得到通知,继续菜单系统的程序逻辑。

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作