一、嵌入式系统简介
1、 嵌入式系统的基本特征
(1) 专用的嵌入式CPU
该CPU具有高效率、低功耗、体积小和集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部完成,有利于嵌入式系统设计趋于小型化,移动能力增强,与网络耦合紧密。
(2) 专用性和算法的性
设计成完成某一特定任务,和相应具体任务有机结合在一起,具有较长的生命周期。
(3) 多种技术的结合体
计算机技术、半导体技术以及
电子技术和各行业的具体应用紧密结合在一起的系统。
(4) 软硬件紧密的相互依赖性
专用性决定了设计目标是单一的,硬件和软件的依赖性强,用利于版权的保护。
(5) 系统对用户透明提供各类ARM开发板/开发工具https://edmarket.com.cn/plist-3-855.html
用户使用只是按照预定方式使用,不需要用户编程和修改。
(6) 大多具有实时性
如工业仪表、控制装置、数控系统、信息家电等。
(7) 系统资源有限
速度和存储容量以及扩展接口有限。
(8) 多为分布式系统
更易于保证硬实时要求、更便宜和更易于实现。
2、 嵌入式软件的特点
(1) 多具有实时性
指操作系统内核采用了一种算法,使tc(context swich)和ts(system call)尽可能小、尽可能是常量和可确定。所谓可确定是指tc和ts有一个上限,而不是一个统计的结果,即不会出现峰值,不会随系统任务的增多而增多提供各类ARM开发板/开发工具https://edmarket.com.cn/plist-3-855.html。
(2) 有并发处理能力
能并发处理各个事件驱动,采用多任务运行机制。
(3) 具有快速启动、出错处理和自动复位能力
能从只读
存储器中快速启动,具有高容错机制,在系统出现死机前自动重启。
(4) 应用软件和操作系统一体化设计
硬件和软件一起设计,以解决特定的问题,不同的系统有不同的配置。
(5) 交叉开发环境
提供各类ARM开发板/开发工具https://edmarket.com.cn/plist-3-855.html
二、嵌入式系统软件开发流程
1、 需求分析
2、 设计思路
(1) 概要设计
(2) 详细设计
(3) 详细写出测试项目(包括测试类别、测试过程、测试预测结果)
3、 编码
(1) 各芯片代码模块化,有利于移植
(2) 需要注意一些小问题(如边界条件、内存越界访问、空指针等)
ⅰ
typedef struct
{
……
USHORT Wtr;
UCHAR Delay;
UCHAR Mode;
} SetLogicSubnetReqStruct;
void Oam_SetLogicSubnet_Req(UCHAR* pMsg)
{
DatagramHead *pDatagramHead;
UCHAR *pData;提供各类ARM开发板/开发工具https://edmarket.com.cn/plist-3-855.html
SetLogicSubnetReqStruct *pSetLogicSubnetReq;
ULONG i, count;
USHORT SubNet_ID, E_From_Tsn1, E_To_Tsn1, W_From_Tsn1, W_To_Tsn1,
E_From_Tsn2, E_To_Tsn2, W_From_Tsn2, W_To_Tsn2, E_S_B_Tsn, E_P_B_Tsn, W_S_B_Tsn, W_P_B_Tsn;
UCHAR SelfID, Num, E_ID, W_ID, Delay, Mode;
UCHAR Wtr;
……
Wtr = pSetLogicSubnetReq->Wtr;
……
}
ⅱ
STATUS sysCpmEnetAddrGet(int unit,UINT8 *addr)
{
char *buff = NULL;
#ifdef INCLUDE_NVRAM
getCpmMacAddr(buff, MAX_ADR_SIZE);
……
}
4、 测试提供各类ARM开发板/开发工具https://edmarket.com.cn/plist-3-855.html
(1) 单元测试(在单机上测试)
(2) 联调(主要测试接口)
(3) 系统调试(测试功能)
三、VxWorks嵌入式实时操作系统
1、 BSP(Board Support Package)的概念
2、 满足应用对时间的响应要求
3、 多任务内核(实时调度、任务间通信、互斥访问)
4、 标准库文件
5、 可抢占式调度、快速、系统小而且可配置
6、 所有任务工作在同一个地址空间内,所有任务运行在特定优先级模式
7、 VxWorks开发环境Tornado
(1) Launch
(2) WindSh
(3) CrossWind
(4) Browser
(5) Project Facility
(6) WindView
(7) Simulator
四、单盘软件主要应用举例
将以下划分的各个功能模块依次添加到UserAppInit()函数中以完成各单盘的上电初始化过程,在各个功能模块中按照单盘的具体情况填写相应程序段。提供各类ARM开发板/开发工具https://edmarket.com.cn/plist-3-855.html
如果需要其他特殊功能模块可以在适当的位置自行添加。