范文资源网

导航栏

×
你的位置: 范文资源网 >工作总结 >导航

嵌入式系统设计师工作总结(精华15篇)

时间:2018-10-20

嵌入式系统设计师工作总结(精华15篇)。

『一』嵌入式系统设计师工作总结

一、填空题(每空2分,共18分)

1、PC机开机的初始化工作一般由BIOS完成,而嵌入式系统的.初始化工作一般由完成。

2、ARM内核三级流水线机制是指指令运行过程中经过的、译码、执行三个阶段。

3、ARM寄存器SPSR被称为寄存器。

4、uClinux与标准Linux的最大区别在于。 5、嵌入式系统是以应用为中心、以为基础、软硬件可、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

6、ARM的数据存取指令Load/Store是唯一用于寄存器和存储器之间进行的指令。

7、µC/OS中,为保护任务之间的共享数据和提供任务之间的通信,提供了操作系统任务间通信方法有:、邮箱、消息队列,事件标志。

二、单项选择题(每题2分,共24分)

1、下列哪一项不属于嵌入式系统软件结构一般包含的四个层面。( )

A、 嵌入式处理器 B、 实时操作系统(RTOS) D、 实际应用程序层 C、 应用程序接口(API)层

2、一条ARM数据处理指令,例如“ADD R0,R1,#immed”中使用的立即数 #immed 是有一定限制的,下列立即

数表示中合法的是( )。 A、0x00001234 C、0x0000F008 D、 0x F080000

3、μCOS-II操作系统不属于( )。

A、RTOS B、占先式实时操作系统

D、嵌入式实时操作系统 C、非占先式实时操作系统

4、 ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是( A )。

B、 R0 =( R2<< 1) + R3

C、 R3= R0+ (R2 << 1)

D、 (R3 << 1)= R0+ R2

5、ARM寄存器组有( D )个寄存器。

A、7

C、6 B、32 D、37

6、 每种嵌入式操作系统都有自身的特点以吸引相关用户,下列说法错误的是( D )。

A、 嵌入式Linux提供了完善的网络技术支持;

B、 CLinux是专门为没有MMU的ARM芯片开发的;

C、 C/OS-Ⅱ操作系统是一种实时操作系统(RTOS);

7、存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则2000H存储单元的内容为( D )。

A、0x21 C、0x65

B、0x68 D、0x02

8、下列不是嵌入式系统的特点的是( C )

A、嵌入式系统需要专用开发工具和方法进行设计。

B、嵌入式系统是技术密集、资金密集、高度分散、不断创新的知识集成系统。

D、嵌入式系统通常是面向特定任务的,而不同于一般通用PC计算平台,是“专用”的计算机系统 9、寄存器R15除了可以做通用寄存器外,还可以做( A )

A、 程序计数器

B、 链接寄存器 D、 基址寄存器

C、 堆栈指针寄存器

10、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDR R0,[R1,#8]!后R0的值为( D )。

A、 0x2000 C、 0x2008

B、 0x28

D、 0x87

11、FIQ中断的入口地址是( A )。

A、0x0000001C C、0x00000018

B、0x00000008 D、0x00000014

12、ARM指令集是( B )位的。

A、 16 C、 8

B、 32 D、 24

三、判断题(每题2分,共14分)

1、若定义任务task1的优先级为12,则不能再定义其他任务的优先级也为12。

( T ) ( ) ( F ) ( T ) ( T ) ( T ) ( T )

2、ARM处理器在未定义模式下可以处理存储器故障,实现虚拟存储器和存储器保护。 3、μCOS-II操作系统中移植成功后即可使用文件系统。

4、在ARM的数据处理指令中,大多数均可在指令助记符后加S来设置状态寄存器的条件码。 5、ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。

6、当操作数寄存器Rm的状态位bit[0]为1时,执行BX Rm指令就可从ARM状态进入Thumb状态。 7、ARM处理器结构体系中具有T变种的处理器核可以工作在ARM状态和Thumb状态。

四、简答题(共16分)

1、ARM异常发生时,ARM内核对异常的响应过程是怎样的、 (4分) 1、(4分)

答:1,保存CPSR到SPSR_(1’) 2,设置CPSR相应位(1’)

以进行模式切换,根据需要,设置IRQ和FIQ中断屏蔽位 3,保存异常返回地址到R14_(1’) 4,PC跳转到异常向量表相应地址处(1’)

2、什么是BootLoader、主要有几种工作模式及主要功能是什么、 (6分) 答:简单说来,Bootloader就是操作系统内核运行的一段小程序,完成进行初始化系统硬件设置的任务,包括CPU、SDRRAM、Flash、串口等初始化,时钟的设置、存储器的映射。

分为启动加载模式和下载模式。

(1)启动加载(Boot laoding)模式又称为“自主”(Autonomous)模式,是指 Bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。

(2)在下载模式下,目标机上的 Bootloader 将先通过串口连接或网络连接等通信手段从宿主机下载文件。 3、S3C44B0的存储系统中,0xc000000和0xc080000的含义是什么、它们之间的512kbyte空间做什么用、 (6分) 答:0xC000000是 SDRAM的起始地址,系统的程序存储空间从0xC080000开始。512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。


『二』嵌入式系统设计师工作总结

分类:主要由微处理器构成的嵌入式系统,常常用于小型设备中(如温度传感器、烟雾和气体探测器及断路器)。

不带计时功能的微处理器装置,可在过程控制、信号放大器、位置传感器及阀门传动器等中找到。

带计时功能的组件,这类系统多见于开关装置、控制器、电话交换机、包装机、数据采集系统、医药监视系统、诊断及实时控制系统等等。

在制造或过程控制中使用的计算机系统,这也就是由工控机级组成的.嵌入式计算机系统,是这四类中最复杂的一种。也是现代印刷设备中经常应用一种。

特点:嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对微处理器的选择更具有竞争力。

嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

『三』嵌入式系统设计师工作总结

从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。

嵌入式系统的出现最初是基于单片机的。70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。

最早的单片机是Intel公司的 8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4 个8位并口、1个全双工串行口、两个16位定 时 器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的'一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。

从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。

其中比较著名的有Ready System 公司的VRTX、Integrated System Incorporation (ISI)的PSOS和IMG的VxWorks、QNX公司的QNX 等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。

90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了Palm OS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,Delta Os等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。

『四』嵌入式系统设计师工作总结


嵌入式系统是现代科技发展的重要组成部分,广泛应用于电子设备、汽车电子、通信、机械控制等领域。为了提高嵌入式系统的开发能力和提供高质量的技术人才,我参加了为期一个月的嵌入式培训课程。通过这次培训,我深刻意识到了嵌入式系统的重要性,并且掌握了一些关键的技术和实践经验。


培训课程从基础知识入手,对嵌入式系统的概念和应用进行了详细的介绍。通过理论学习和案例分析,我们了解了嵌入式系统的基本构成和主要特点。同时,我们还学习了一些常用的嵌入式开发工具和技术,如C语言编程、汇编语言、硬件接口驱动等。通过这些基础课程,我们对嵌入式系统的整体框架和实际开发过程有了较为清晰的认识。


培训课程注重实际操作和实验项目的实践,以提高学员的实际动手能力。在课程中,我们进行了一系列的实验和项目,如LED灯控制、数码管显示、电机驱动等。通过这些实验项目,我们可以亲自动手搭建嵌入式系统,并进行相应的编程和调试工作。这种实践环节的设计很实用,让我们更好地理解了嵌入式系统的工作原理和实际应用。同时,我们也学会了如何利用调试工具和技巧来解决实际开发中遇到的问题。


培训课程还邀请了一些嵌入式系统领域的专家和从业者,为我们进行专题讲座和经验分享。专家们介绍了一些新技术和发展趋势,如物联网、人工智能在嵌入式系统中的应用等。他们通过实例和案例,向我们展示了一些实际项目的挑战和解决方案。这些讲座不仅丰富了我们的知识面,还提供了与实际开发人员交流的机会,这对我们的专业发展非常有帮助。


培训课程还组织了一次小组项目实践,旨在培养我们的团队合作和解决问题的能力。我们被分成若干个小组,每个小组负责一个实际项目的设计和开发。在项目中,我们需要充分发挥自己的技术能力,与队友密切合作,解决实际问题,并按时完成任务。通过这次小组项目的实践,我们锻炼了自己的团队协作和沟通能力,也加深了对嵌入式系统开发流程的理解。


通过一个月的嵌入式培训课程,我对嵌入式系统有了更加深入的认识和了解。我掌握了一些关键的技术和实践经验,如嵌入式系统的设计和开发、常用编程语言和工具的应用、硬件接口和驱动的开发等。同时,我还提高了自己的实际动手能力和团队合作能力。这些知识和技能将对我日后的工作和职业发展产生积极的影响。


小编认为,嵌入式培训课程让我受益匪浅。通过课程的学习和实践,我深入了解了嵌入式系统的重要性和应用领域。我掌握了一些关键的技术和实践经验,并提高了自己的实际动手能力和团队合作能力。我相信,这次培训将为我未来的工作和职业发展打下坚实的基础。

『五』嵌入式系统设计师工作总结

一、实践目的

了解处理器的发展

掌握WinCE嵌入式系统开发方法和开发流程。

掌握WinCE嵌入式C#编程方法。

掌握WinCE嵌入式网络通信技术。

掌握Bluetooth编码技术

二、实践要求

1.了解WinCE操作系统的裁剪及定制;

2.设计蓝牙广播系统(包括服务器端和客户端);

3.设计蓝牙文件传输系统(包括服务器端和客户端);

4.应用程序安装和部署。

三、实践内容

(1)了解Wince平台

了解处理器的发展,什么是嵌入系统,嵌入式系统的应用,以及窗体与控件的概念,掌握WinCE嵌入式C#编程方法,对实验平台有一定的认识,更进一步的`认识蓝牙。了解编写应用程序的流程,理解了Windows窗体,学会了使用基本控件如标签、文本、按钮、列表框和组合框,掌握窗体的常用属性和方法。

(2)蓝牙搜索、浏览与发送,蓝牙设备列表,配对设备清空,删除。

四、原理介绍

1.嵌入式系统:

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

一般由硬件设备、嵌入式操作系统、嵌入式应用软件组成。具有专用性、高效简洁性、高可靠和低能耗性、自身特殊性的特点。

『六』嵌入式系统设计师工作总结

电梯服务器硬件平台框图本设计是以采用 S3C6410为一款带MMU的ARM微处理器,可在上面运行标准的Linux操作系统,以减少软件开发时间。S3C6410集成了256M DDR RAM,SLC NAND Flash(1GB)或MLC NAND Flash(2GB)存储器,使其有足够的空间存储程序和数据。DM9000网卡和RJ45接口为接入Internet做好硬件准备,USB接口主要用于USB摄像头。嵌入式电梯服务器硬件设计框图如图2所示。

『七』嵌入式系统设计师工作总结

职位描述:

岗位职责:

1、负责ipc、专业及家用摄像机等摄像机项目设备端程序的编写及软件调试;

2、根据产品规划需求进行概要设计,嵌入式软件程序的详细设计;

3、配合云后台、应用客户端完成相关接口及协议的定义,sdk对接的代码实现

任职要求:

1、熟悉海思、安霸等摄像机芯片平台方案系列处理器的架构及相关编程技术;

2、熟悉linux系统内核、驱动模块的软件移植、开发和维护,熟悉ubl,uboot,内核移植,熟悉文件系统制作及烧写;

3、熟悉c/c++语言,了解汇编语言,有良好的编程风格;

4、熟悉tcp/ip网络编程,熟悉socket编程,有基于arm架构的嵌入式linux编程或视频设备开发经验者优先;

5、熟悉hisilicon的hi3559a方案者、有专业摄像机或gimbal开发经验者优先

『八』嵌入式系统设计师工作总结

我国户口迁移政策内容十分广泛,涵盖了干部、职工及其家属、学生、军人及其家属等各类群体。接下来由小编为大家整理出嵌入式系统设计与开发师可以申请入户深圳吗,仅供参考,希望能够帮助到大家!

嵌入式系统设计与开发师可以申请入户深圳吗

嵌入式系统设计与开发师可以申请入户深圳。

等级要求:专项能力三级。

拓展内容:

一、嵌入式系统开发专项职业能力考核报名条件

1、基本条件

高中毕业(或同等学历)

2、同时符合以下条件之一:

(1)取得相关专项职业能力四级及以上证书满1年。

(2)取得相关职业中级及以上职业资格证书满1年。

(3)具有中等职业学校及以上,与本专项职业能力对应专业或相关专业的毕业证书。

(4)中等职业学校及以上,与本专项职业能力对应专业或相关专业二年级及以上的在校学生。

(5)具有本专项职业能力对应专业或相关专业的初级专业技术资格。

相关专项职业能力是指:运动控制系统设计与管理、过程控制系统设计与管理、矩形PLC控制系统设计、单片机控制系统设计(开发)。

相关职业是指:电工、可编程序控制系统设计师。

相关专业是指:自动化类、计算机类和电气工程类的专业。

二、考核流程

(1)考核方式

社会化考核。

(2)考核办法

①包括技术知识考试和操作技能考核两个科目。技术知识考试和操作技能考核均实行百分制,成绩达到60分及以上者为合格。单科合格成绩两年内有效,双科均合格者核发三级专项职业能力证书。

②技术知识考试采用闭卷笔试方式;操作技能考核采用现场实际操作方式,每位考评员应独立评分,取平均分为操作技能考核科目成绩。

(3)考核时间

技术知识考试120分钟,操作技能考核120分钟。

『九』嵌入式系统设计师工作总结

简单定义:嵌入到对象体系中的专用计算机系统。

三要素:嵌入式系统的三个基本要素是嵌入性、专用性与计算机系统。

(1)嵌入性是把软件嵌入到Flash存储器中,

(2)专用性是指针对某个具体应用领域和场合,量体裁衣式的定制适用该场合的专用系统,

(3)计算机系统是指必须具有计算机系统的组成,核心是计算机系统。

三个要素决定了嵌入式系统是嵌入到对象体系中的一种专用的计算机系统。

嵌入式系统設計与开发原则与步驟

1.设计与开发原则

既然嵌入式系统是嵌入到对象体系中的专用的计算机系统,因此嵌入式系统设计的基本原则:物尽其用。这一原则表明,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,以最小成本实现更高的.性能,同时尽可能采用高效率的设计算法,以提高系统的整体性能,换句话说同,“物尽其用”就是“够用就好”,以最高性价比来设计嵌入式应用系统。

2、设计与开发步骤

嵌入式系统的设计步骤包括需求分析、体系结构设计、硬件设计,软件设计,执行机构设计、系统集成和系统测试。各个阶段之间往往要求不断的修改,直至完成最终设计目标。

『十』嵌入式系统设计师工作总结

摘要:文章通分析计算机专业《嵌入式系统》教学,从系统教学的课程设置、师资队伍发展、教学结构和人才培养四个角度加强分析,探索嵌入式系统教学模式相关思路。

关键词:嵌入式系统;教学模式;计算机专业

对于嵌入式系统来说,应用是它的核心,计算机技术是它的基础。如果应用系统对计算机的型号有严格要求,才适用于嵌入式系统。由于嵌入式系统所占空间较小,有很强的功能,并且运用起来较为方便,所以现在已经被应用到多个领域。每一年,全球嵌入式系统可以带来一万亿多美元的产值。由于市场对于嵌入式系统人才的高需求,所以越来越多的高校加大对于这一专业人才培养。另外,很多高校中的电子专业和通信工程专业都加大对于嵌入式系统课程的研究。文章通过分析现在高校中对于嵌入式系统教学存在的问题,进一步分析加强嵌入式系统教学的相关措施。由于现在的高校对于嵌入式系统是探索阶段,所以主要存在以下问题。

1.计算机专业《嵌入式系统》教学存在问题

1.1缺少高质量的教材。通常情况下,由于嵌入式技术与行业背景联系密切,因此在选择课程时,高校必须考虑理论和实际应用有机结合,选择高质量的教材。通过选择高质量的教材,才能实现教学和实践有机结合,才不会使学生迷失在理论中。不过,通过近些年来的教学经验可以得知,因为技术发展速度越来越快,所以如果教材难以与时俱进,那么教学工作就难以和时代相适应,对学生产生一定的负面影响。

1.2内容深度不够。对于嵌入式系统来说,它是一门新兴技术,尽管现在很多高校开设对这门课程,但是由于师资力量不足,缺乏对相关教师的专业化培训,导致在一定时间内难以跟随时代变革,所以高校的嵌入式系统教学内容深度不足,教学质量不高。

1.3缺少实践性。对于嵌入式系统来说,它的实践性和应用性很强,在教学工作中,实践环节扮演着重要角色。举例来看,对于驱动程序设计和指令编程等环节,只有学生实践增多,才可以掌握知识,真正理解嵌入式系统。不过,对于很多学校来说,尽管开设嵌入式系统课程,但由于设备不足,导致工程和应用难以相结合,很难做出相关的课程设计和毕业设计,所以实践能力较差,难以激发学生学习兴趣。

2.计算机专业《嵌入式系统》教学的一些思考

对于嵌入式系统来说,它涉及的知识面宽泛,同时又极强的综合性,在社会上发展较快,学习难度高。事实上,对于任何专业来说,都有其自身特点,所以对于嵌入式系统来说,不能直接抄袭其它专业的教学体系,要切实根据本专业学生特征,分析课程的特点,制定适合自己的教学模式。在近几年,通过教学实践得知,在计算机开设嵌入式系统课程时,如果想实现良好的教学效果,就要解决以下几个问题:第一,在选择芯片时。是选择ARM芯片或是其它芯片;第二,在选择系统时,要选择嵌入式Linux操作系统还是其它操作系统;第三,在选择处理器时,是选择ARM7还是ARM9。

3.计算机专业《嵌入式系统》教学措施

综合来看,在对于嵌入式系统进行教学时,不仅要关注课堂教学的实际效果,还要通过多样化的手段进行辅助,以此来提高教学效果。

3.1建立开放实验室。通过购买ARM7和ARM9的《嵌入式系统》教学实验设备,实现实验室的组建。对于计算机专业《嵌入式系统》教学中,要设置两个实验层次,第一是基础性实验,第二是综合性实验。对于基础实验来说,通过实验使学生对于嵌入式软件和硬件有基本了解,掌握其开发流程与基本环境,实现基本程序开发。而对于综合应用实验来说,为了让学生对于所学知识展开运用,就要依据一定的题目,自主设计相关应用程序。对于实验室来说,实行全天开放,学生可以通过课余时间加强研究,推动课程时间教学有效实施。

3.2充分利用课程设计和毕业设计课程。在嵌入式系统的教学工作里,设计和毕业设计占据重要角色。因为程序设计周期较长,所以要通过课题探讨,使学生完成课题。而在这期间,学生一方面要进行软件设计,还要进行软件编程,同时还要兼顾电路设计,进行硬件和软件的调适。这样一来,学生的知识和实践有机结合,既培养了学生的思考探究能力,又提高了实践能力,最终实现课程建设的目的。

3.3成立兴趣小组.对于学生自身来说。要充分按照兴趣爱好,进行嵌入式系统兴趣小组组建。通过小组组建,充分利用实验设施进行小组课题研究,使学生一方面可以更深入的研究嵌入式系统,另一方面还提高了合作意识,进一步培养学生的创新意识和科研能力,实现同学间的交流与合作,把实践和知识有机结合。对于指导老师来说,他们要定期进行专题讨论,推动学生嵌入式系统研究的知识面拓宽,提高教学质量。

3.4计算机专业《嵌入式系统》师资团队建设。对于嵌入式系统来说,它是一门新兴学科,所以必须加大对于师资力量建设的关注。通过实践经验的提高,加强学习交流,以此来建立高水平嵌入式系统教学队伍。一方面,教师要有理论经验,另一方面还要有实践经验。对于高校来说,要重视嵌入式系统教师的培养,加大投入来实现培养。另外,对于嵌入式系统教师来说,要加大培训力度,进行师资队伍建设。充分利用好寒暑假等空闲时间,实现到相关企业的项目开发,增加实践经验。只有这样,教师的教学工作才能与时俱进,实现新知识和技术的引入,提高师资水平的同时,实现课堂教学效果的提高。通过开展学术交流,利用讲座的形式进行专题研究,实现学校和学习之间的合作交流,加强师资对于建设,实现合作中的共同提高。

3.5以学生为主导,开展“项目化”教学和开辟“学习论坛”。对于嵌入式系统来说,由于其自身的特殊性,所以要实现生产和实践有机结合。另外,对于学院来说,必须按照人才培养需要,实现有目的的教学。在教学方式上,要改变传统教学模式,通过项目化教学实现教学方法的改变,将重心转移到学生身上去,实现从课本教学到项目教学的转化,实现由关注课堂教学变成关注实践经验。另外,在开展项目化教学时,要充分认识学生的重要地位,发挥学生的主观能动性,实施参与式教学以提高其学习积极性。对于学院来说,必须加大对于实践能力的重视力度,实现对学生的强化训练,使老师发挥辅助作用。对于嵌入式系统的老师来说,必须有进行项目开发的经验,有强大的知识基础,引导学生独立思考的同时进行指导。在进行实际的工程实训时,通过成立项目小组的方式实现深度合作,形成别具一格的研发小组,在每个小组中要项目经理,实现人员调配和课题研究工作。另外,研发小组要自主设计和分析,在遇到技术上的难题时,要通过网络、图书馆等方式自行解决。

4.结论

在计算机专业里,嵌入式系统发展较晚,发展较快。由于高校的计算机专业里嵌入式系统发展较晚,所以必须通过实践的方式加强对师资力量建设。另外,通过小组学习和实验室的结合,实现教学水平的提高。只有通过多方努力,才可以建设计算机专业的嵌入式系统人才,为社会发展培养人才。

『十一』嵌入式系统设计师工作总结

摘要:通过UML语言对嵌入式系统建模,急准确地完成了分析人员与用户需形式化层次上的一致性,也为程序开发人员建立了清晰的程序结构和行为准则,大大缩短了系统开发周期,并使系统的升级和重用成为可能。本文通过一个用Atmel89C52单片机实现简单变频调速器系统,说明UML应用与嵌入式系统的分析设计方法。
关键词:嵌入式系统面向对象分析设计UML有限状态机

1概述

随着我国装备制造业的发展,嵌入式系统已经成为制造业的核心技术。它被广泛地应用到工业控制、仿真系统、医疗仪器、信息家电、通信设备等众多领域。目前,围绕嵌入式系统展开研究和开发,已经成为计算机软硬件技术发展最活跃的方向之一。

嵌入式系统不同于通常纯粹的软件系统或硬件系统,而是软件与硬件通过在一起的,有些功能既可以用软件实现,也可以通过硬件实现。另外,嵌入式系统设计所面临的挑战不仅涉及到计算机软件和硬件,也会涉及到许多非计算机工程中的问题,诸如机械尺寸问题、功耗问题和制造成本问题等。即使是计算机工程方面的问题,大部分系统在实时性、可靠性和多速率等问题方面也都有特别要求。

目前,实现嵌入式系统的硬件方法主要有:定制逻辑(ASIC)、现场可编程门阵列(FPGA)和嵌入式微处理器三种。在实际系统实施中,绝大多数系统是采用嵌入式微处理器方式,如单片机、单板机或嵌入式微处理器芯片等。这是因为用微处理器实现嵌入式系统是一种十分有效的方法,它使得在不同价位上设计不同特性的产品系列成为可能,并且能够扩充新特性以满足飞速发展变化的市场需求。

2嵌入式系统设计面临的问题和解决办法

过去嵌入式系统分析和设计方面的主要问题为:①分析设计没有一个统一的标准;②分析设计方法不统一;③从分析设计到制作和编程没有一个始终一贯的工程化方法,使得产品形成的每一个过程人为因素影响十分严重;④分析设计的成果不能被开发类似项目或产品的重用。以上4个方面的问题成为多年来制约嵌入式系统发展的主要瓶颈,使得大部分从事嵌入式系统应用开发的组织和团体,基本上是采用小组甚至是作坊式的动作模式。这使得开发较复杂或大型系统的工作变得十分困难甚至无法进行,或因为系统需求的不断变化或小组成员的流动导致项目失败。我们知道,人类之间要想达成对任何事件的交流,前提是实现对该事物形态(或表现形式)和行为的标准化,之后才可能实现对该事物形态(或表现形式)和行为的标准化,之后才可能实现对其的存储、处理和交流。嵌入式系统制作过程产品以上4方面问题的主要原因是没有一个对嵌入式系统需求、分析、设计、制作、测试和维护过程的结构特征和行业特征统一的工程化描述方法。目前,面向对象技术正是建立在对真实世界抽象思维的基础上,统一建模语言(UML)为这种思维提供了可视化工具,解决了以上难题。使用UML对嵌入式系统建模,不仅可以使系统分析设计实现标准化,而且完全可以实现系统分析、设计和制作、测试分别由不同的项目成员在统一、一贯的方式下完成,也使得系统分析和设计模型在相似系统中重用成为可能。

3系统建模

面向对象的嵌入式系统建模同任何软件密集型系统建模一样,从系统中的类建模开始。为了解类的结构,首先对系统工作过程作一个总体陈述。无论是采用问题空间词汇抽象方法还是采用用例(usecase)驱动建模方法,目标都是找到系统以类或对象作为构造块的类图。如果采用用例驱动的系统分析方法,该内容也可以用用例视图加以模型规格说明,然后使其作为系统白盒测试依据。由于使用用例视图做的规格说明篇幅比较大,本文仅用文字描述说明这部分内容。

本文所例举的系统为一小型变频调速器系统。对任何一个三相交流电机,在输入单相交流电源的情况下,实现6Hz到[9Hz,50Hz]区间内任一频率的稳步启动运转。系统用户界面包括2位数码显示器、一个运行/停止指示器、电源开/关指示器、6个按钮键盘和电源开关。2位显示器用于显示电机当前正在运转的频率,6个按键分别代表启动、停机、正点动、反点动、频率加和频率减。启动命令使电机从6Hz以每步0.2Hz的步长稳步提升到当前设置频率上后在该频率上稳定运转;正点动命令使电机稳定在6Hz上正向运转;反点动命令时,电机转动频率与正点动上同,但旋转方向相反;频率加命令在电机运转时使电机以1Hz/s的速率增加运转频率和当前预置频率,在电机停止时仅改变预置频率;频率减命令与频率加命令相反;停机命令则无论电机运行在什么状态下,都使电机停止运转。

系统类图如图1所示。图中有2个硬件类Button*和Light*,1个主动类Microcontrollor和3个一般类Convertor、Watchdog和Display。Button*类代表所有按钮;Light*类代表2个发光数码管和1个运行指示灯;主动类Microcontrollor是系统主控模块,完成所有对象的调度和管理;3个一般类为3个功能独立的程序模块。

图2为系统实施图。微处理器节点是系统的主控节点,采用Atmel89C52。其内部8KBFlashROM和128BRAM资源已能满足系统需要,因此不再增加外部存储器。与其它节点的连接完全通过其本身的串并接口就可完成。按钮节点代表所有按钮,在系统变化时也可以用键盘取代,本例为6个单独机械按钮。显示节点代表系统显示部分,本例为2个数码管和1个表示电同运行状态的发光二极管。运行监控节点具有两部分功能,其一是通过WatchDog技术监视微处理器的运行状况,另一个是监视变换器输出的脉冲宽度。变换器邛树熊设计为专用电路,通过微处理器并行口接受三相正弦脉冲,根据电机功率转换成本相电机线圈所需要的脉冲电压。三相电机节点不属于嵌入式系统本身,但为了说明本嵌入式系统与控制对象关系而布置在同一实施图中。

图3为系统有限状态机行为模型。系统开机上电后,经过初始化处理自动进入到等待状态,在等待状态,Microcontrollor对象根据用户键盘按钮命令,调度相应的操作对象。当用户发出正或反点动命令时,系统进入点动运行态,此时Convertor对象输出6Hz正或反相序三相脉冲。当用户松开正或反点动按钮时,系统返回等待状态。在系统预置频率设定正确的`情况下,用户按启动按钮时,系统先进入到启动运行态。在此状态时系统从6Hz开始按每步0.2Hz的步长稳步增加电机运转频率,直到达到预置频率时进入到稳定运行态。在稳定运行态用户可以改变预置频率,步长为1Hz。每次预置频率的改变事件,都会产生从稳定运行态到启动运行态的交替变动。当系统运行出现故障时,进入到故障处理状态处理,完成后自动返回到等待状态。

4系统实现

4.1数据处理

由于本文例举的系统为一小型变频调速嵌入式系统,所有三相正弦波形的PWM脉冲都由Atmel89C52的P1.0~P1.5端口输出。当把任何频率正弦波形分解成N等分时(N为6的整数倍),则要用N个等幅而不等宽的矩形脉冲来等效,每个脉冲区间如图4。每个频率正弦波划分为6个相序,每个相序为60°。每个相序分为N/6个区间,每区间分为7个小区间。每个区间采用中心对称脉冲波形,因此在每个小脉冲边沿只有一相功率驱动开关换相而使驱动电源电流平衡变化。在任何一相换相时,由软件自动加死区保护(死区时间一相上下臂开关同时关闭,如图4中竖双线间部分),以免功率驱动开关在换相瞬间上下臂同时导通而损坏元件。

虽然对于不同频率每个相序内脉冲区间数和占空比有所不同,但输出的波形却是相同的。又因为每个区间的7个小区间波形是中心对称的,因此在输出最后3个小波形时,只要把前3个小波形的占空时间和输出波形数据倒读并输出就可以完成。另外,每个脉冲区间仅需要4个占空定时T区间,t2,t3,t4(见下节说明),并且每个相序仅需要4个脉冲波形数据就可以了。三相正弦波区间数据关系如表1.

表1三相正弦波区间数据关系

相序IIIIIIIVVVI电压关系Ua>Ub>UcUb>Ua>UcUb>Uc>UaUc>Ub>UaUc>Ua>UbUa>Uc>Ub波形数据2AH,29H,19H,152AH,26H,25H,152AH,26H,16H,152AH,1AH,16H,15H2AH,1AH,19H,15H2AH,29H,19H,15区间数N/6N/6N/6N/6N/6N/6小区间定时t4,t3,t2,t1,t2,t3,t4
4.2系统资源配置

当系统的分析与设计采用面向对象方法时,并不意味着所使用的编程语言也一定是面向对象的。事实上,这种分析设计方法的具体实现可以使用任何编程语言(如汇编语言或C语言);但是,在程序设计上要尽可能地使用面向对象的思想,如体现程序结构方面的封装性、消息传递等。这种才会使程序结构清晰,便于应付随着需求变化而产生的不断更新和系统维护。

在实现本系统时,系统最重要的资源是程序存储器和定时器。由于采用了上小节所讨论的数据处理技术,大大压缩了数据空间。在实现时,把6Hz~50Hz频率空间划分成7个大的区段,使每个区间的脉冲周期在900μs左右,区间周期定时使用单片机内部的T2定时器的常数自动重装入方式。由于区间周期与输出频率关系是确定的(T区间=1/Nf频率),片内T0定时器用于区间内小区间t2、t3、t4定时,而t1定时由t1=T区间-2×t2-2×t3-t4计算得到。T1定时器用于监视系统输出的脉冲宽度,当P1口任何一端输出脉冲宽度超过1000μs时,系统通过中断进入故障处理状态。另外,系统还设一WatchDog电路X5045,监视系统程序运行情况。当程序运行异常时,系统通过复位进入到故障处理状态。系统的显示接口通过单片机串行接口实现。

5讨论

由于嵌入式系统的实现工具基本上都是非面向对象的,因此如何使面向对象的分析设计与非面向对象的实现工具之间的衔接就成为了一个值得探讨的问题。另外,嵌入式系统一般都具有不同于大型软件系统的具体要求,如实时性、可靠性、机械尺寸、能耗(如电池供电)要求等,因此在实现系统时还应根据开发者的经验进行特别处理。但是,采用面向对象建模后再实现系统实现的方法,为系统建立了可视化的组织结构和行业结构,实现了用户需求的可视化表示,缩短了系统的开发周期,很好地适应了用户需求的变化。

『十二』嵌入式系统设计师工作总结

嵌入式系统产品日臻完善,并在全世界各行业得到广泛应用。嵌入式系统产品的研制和应用已经成为我国信息化带动工业化、工业化促进信息化发展的新的国民经济增长点。下面是小编整理的关于嵌入式系统安装配置,欢迎大家参考!

ARM嵌入式系统上OpenCL测试

1). 简介

相比曾经,如今科技设备对处理性能和速度要求越来越高。为了应对这种技术需求,许多公司发明了不少方法来获得更好的处理性能。例如苹果公司,发明了 Open Computing Language (OpenCL)。2008年6月,苹果公司向Khronos Group 提交了 OpenCL 工作建议。历经五个月的研发,OpenCL 1.0 于 2008 年 11 月发布。

OpenCL 是为个人电脑、服务器、移动设备以及嵌入式设备的多核系统提供并行编程开发的底层 API。OpenCL 的编程语言类似于 C 语言。其可以用于包含 CPU、GPU 以及来自主流制造商如 NXP®、NVIDIA®、Intel®、AMD、IBM 等的处理器的异构平台。OpenCL 旨在提高应用软件如游戏、娱乐以及科研和医疗软件的运行速度和响应。

在本博文中,我们使用Toradex公司基于NXP iMX6QSoC的计算机模块产品ApalisiMX6Q 来测试 OpenCL,对比两个应用 - 一个运行在 GPU 上,另一个则在 CPU。最后我们将分享本次测试的结果。

2). 测试硬件平台

Toradex 的. Apalis iMX6Q 计算机模块采用 NXP 的 iMX6 四核处理器,其提供的处理性能特别适合于多媒体应用。该处理器具有 4 个 ARM® Cortex®-A9 核,最高主频为 800MHz。除了处理器,Apalis 系统模块还具有高达 2GB DDR3 RAM(64bit)和 4GB eMMC Flash。

除了具备出色的图形和多媒体处理能力,该处理器还具有 Vivante GC2000 3D GPU,其能够支持 OpenCL EP (Embedded Profile)。因此,我们能充分够利用 i.MX6QGPU 处理能力。

3). Toradex Embedded Linux 镜像中添加 OpenCL

我们假设你已经具有能够编译 Apalis iMX6 镜像的 OpenEmbedded 编译环境。你可以参考Toradex开发者中心OpenEmbedded(core) 文章。

4). GPU 和CPU 代码

我们使用数列求和应用作为基本的演示例程。第一部分代码运行在 GPU 上,第二部分则在 CPU 上。应用执行完毕后打印其所消耗的时间。使用 OpenCL 所需的头文件是 cl.h,位于文件系统的 /usr/include/CL 目录。链接程序所需的库文件是 libGAL.so 和 libOpenCL.so,位于 /usr/lib 目录。

为了计算消耗的时间,我们创建带分析功能的队列,在结束的时候获取分析的结果。

OpenCL 代码见如下GitHub链接:

giobauermeister/OpenCL-test-apps/tree/master/cl_sample_timer

CPU 代码是简单的 C 程序,和上面一样计算同样的队列求和。为了计算消耗的时间,我们使用 time.h中的库。代码见如下链接:

giobauermeister/OpenCL-test-apps/tree/master/proc_sample

5). 交叉编译应用

同一个 Makefile 可以用于交叉编译 GPU 和 CPU 应用,如以下面链接Makefile为例,不过你需要注意下面的三个变量。根据你的系统做相应的调整:

giobauermeister/OpenCL-test-apps/blob/master/proc_sample/Makefile

a). ROOTFS_DIR -> Apalis iMX6 文件系统路径

b). APPNAME -> 应用的名字

c). TOOLCHAIN -> 交叉编译工具的路径

在应用所在的目录中保持 Makefile 文件,然后运行 make。最后将编译生成的文件复制到 Apalis iMX6 开发板上。

6). 在执行两个应用程序后,我们得到以下结果:

--------------------------------

### Processor time

Execution time in miliseconds = 778.999 ms

Execution time in seconds = 0.779 s

### GPU time

Execution time in milliseconds = 12.324 ms

Execution time in seconds = 0.012 s

--------------------------------

根据以上结果,我们可以很清楚地看到在 Apalis iMX6Q GPU 上使用 OpenCL 能够加速队列求和运算。

7). 总结

用户想要使用 Apalis iMX6Q GPU ,除了其他的方法,还可以使用 OpenCL 提高计算性能。正如本博文所描述,借助 OpenCL,可以在不同设备从图形显卡到超级计算机以及嵌入式设备,运行代码。用户还可以进一步结合,例如在 OpenCV 中使用 OpenCL 提高计算机视觉的性能。这个演示可以作为开发无图形界面应用的例程。

『十三』嵌入式系统设计师工作总结

嵌入式操作系统是相对于一般操作系统而方的,它除具备了一般操作系统(嵌入式linux系统)最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,嵌入式操作系统的功能还有以下两个方面:

1.构成一个易于编程的虚拟机平台

嵌入式操作系统构成一个虚拟机平台,EOS把底层的硬件细节封装起来,为运行在它上面的软件(如中间件软件和各种应用软件)提供了一个抽象的编程接口。软件开发在这个编程接口的上进行,而不直接与机器硬件层打交道。EOS所提供的编程接口实际上就是操作系统对外提供的系统调用函数。

2.系统资源的管理者

嵌入式操作系统是一个系统资源的管理者,负责管理系统当中的各种软硬件资源,如处理器、内存、各种I/O设备、文件和数据等,使得整个系统能够高效、可靠地运转。

运行在嵌入式环境中的EOS其目标是为了完成某一项或有限项功能,而非通用型的操作系统,因此在性能和实时性方面有严格的限制,能耗、成本和可靠性通常是影响设计的重要因素,要求占用资源少,适合在有限存储空间运行,要求系统功能可以根据产品的设计要求进行剪裁、调整。

所有的EOS都有一个内核(kernel),内核是系统当中的一个组件,它包含了任务管理、存储管理、输入/输出(I/O)设备管理和文件系统管理四个功能模块。其中:

任务管理:对嵌入式系统中的运行软件进行描述和管理,并完成处理机资源的分配与调度;

存储管理:用来提高内存的利用率,方便用户的.使用,并提供足够的存储空间;

I/O设备管理:方便设备的使用,提高CPU和输入/输出设备的利用率;

文件管理:解决文件资源的存储、共享、保密和保护等问题。

不同的嵌入式系统的EOS所包含的组件可能各不相同,内核设计也可能各不相同的,完全取决于系统的设计以及实际的应用需求。

『十四』嵌入式系统设计师工作总结

简介

一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,如图1-1所示,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。

硬件层

硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。

1、嵌入式微处理器

嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。

嵌入式微处理器的体系结构可以采用冯·诺依曼体系或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令系统CISC(Complex Instruction Set Computer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。

嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,目前全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。

2、存储器

嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器。

1>Cache

Cache是一种容量小、速度快的存储器阵列它位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率。Cache的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使处理速度更快,实时性更强。

在嵌入式系统中Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。

2>主存

主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的.应用而定,一般片内存储器容量小,速度快,片外存储器容量大。

常用作主存的存储器有:

ROM类 NOR Flash、EPROM和PROM等。

RAM类 SRAM、DRAM和SDRAM等。

其中NOR Flash 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。

3>辅助存储器

辅助存储器用来存放大数据量的程序代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。

嵌入式系统中常用的外存有:硬盘、NAND Flash、CF卡、MMC和SD卡等。

3、通用设备接口和I/O接口

嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。

目前嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。

中间层

硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特点。

硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。

操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。

实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。

1、嵌入式系统硬件初始化

系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。

片级初始化

完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。

『十五』嵌入式系统设计师工作总结

嵌入式系统驱动程序设计2016

一个嵌入式应用软件都会在某些时候访问最底层的固件和进行一些硬件控制。驱动的设计和实施是确保一个系统能够满足其实时性要求的关键。以下5个窍门是每一个开发者在设计驱动程序时应该考虑的,跟随.jinpinTjian ul li a小编看看这些设计方法。

1.使用设计模式

设计模式是一个用来处理那些在软件中会重复出现的问题的解决方案。 开发人员可以选择浪费宝贵的时间和预算从无到有地重新发明一个解决方案,也可以从他的解决方案工具箱中选择一个最适合解决这个问题的方案。在微处理器出现之初,底层驱动已经很成熟了,那么,为什么不利用现有的成熟的解决方案呢?

驱动程序设计模式大致分属以下4个类别:Bit bang、轮询、中断驱动和直接存储器访问(DMA)。

Bit bang模式:当微控制器没有内外设去执行功能的时候,或者当所有的内外设都已经被使用了,而此时又有一个新的请求,那么开发者就应该选择Bit bang设计模式。Bit bang模式的解决方案很有效率,但通常需要大量的软件开销来确保其实施的能力。Bit bang模式可以让开发者手动完成通信协议或外部行为。

轮询模式用于简单地监视一个轮询调度方式中的事件。轮询模式适用于非常简单的系统,但许多现代应用程序都需要中断。

中断可以让开发者在事件发生时进行处理,而不用等代码手动检查。

DMA(直接存储器访问)模式允许其它外围设备来处理数据传输的需求,而不需要驱动的干预。

2.了解实时行为

一个实时系统是否能满足实时需求取决于它的驱动程序。写入能力差的驱动是低效的,并可能使不知情的开发者放弃系统的性能。设计者需要考虑驱动的两个特点:阻塞和非阻塞。一个阻塞的驱动程序在其完成工作之前会阻止其他任何软件执行操作。例如,一个USART驱动程序可以把一个字符装入传输缓冲区,然后一直等到接收到传输结束标志符才继续执行下一步操作。

另一方面,非阻塞驱动则是一般利用中断来实现它的功能。中断的使用可以防止驱动程序在等待一个事件发生时拦截其他软件的执行操作。USART的驱动程序可以将一个字符装入传输缓冲区然后等主程序发布下一个指令。传输结束标志符的设置会导致中断结束,让驱动进行下一步操作。

无论哪种类型,为了保持实时性能,并防止系统中的.故障,开发人员必须了解驱动的平均执行时间和最坏情况下的执行时间。一个完整的系统可能会因为一个潜在的风险而造成更大的安全问题。

3. 重用设计

在时间和预算都很紧张的情况下为什么还要再造轮子呢?在驱动程序开发中,重用、便携性和可维护性都是驱动设计的关键要求。这里面的许多特征可以通过硬件抽象层的设计和使用来说明。

硬件抽象层(HAL)为开发人员提供一种方式来创建一个标准接口去控制微控制器的外设。抽象隐藏实现细节,取而代之的是提供了可视化功能,如 Usart_Init和Usart_Transmit。这个方法就是让任何USART、SPI、PWM或其他外设具备所有微控制器都支持的共同特点。 使用HAL隐藏底层、特定设备的细节,让应用程序开发人员专注于应用的需求,而不是关注底层的硬件是如何工作的。同时HAL提供了一个重用的容器。

4.参考数据手册

微控制器在过去的几年里变得越来越复杂。以前想要完全了解一个微控制器需要掌握由一个大约包含500页组成的单一数据手册。而如今,一个32位微控制器通常包含由部分的数据手册、整个微控制器系列的资料表、每个外设数以百计的资料以及所有的勘误表组成的数据手册。 开发人员如果想要完全掌握这部分的内容需要了解几千页的文件。

不幸的是,所有这些数据手册都是一个驱动程序能真正合理实现所需要的。开发人员在一开始就要对每个数据手册中包含的信息进行收集和排序。通常它们中的每一个都需要被访问以使外设启动和运行。 关键信息被分散(或隐藏)在每种类型的数据手册中。

5.谨防外设故障

最近我刚好有机会把一系列的微控制器驱动移植到其他的微处理器上。制造商和数据手册都表明PWM外设在这两个系列的微控制器之间是相同的。 然而,实际情况却是在运行PWM驱动器的时候两者之间有很大的不同。该驱动程序只能在原来的微控制器工作,而在新系列的微控制器上却无效。

在反复翻看数据手册之后,我在数据手册中一个完全不相关的注脚里发现了PWM外设上电时会处于故障状态,需要将一个隐藏在寄存器中的标志位清零。在驱动程序实现的开始,确认外设可能出现的故障并查看其他看似无关的寄存器错误。

文章来源://www.zy185.com/gongzuozongjie/118570.html

工作总结相关文章

更多>