您好,欢迎访问三七文档
嵌入式开发关键技术刘洪涛版权}华清远见嵌入式培训中心版权所有;}未经华清远见明确许可,不能为任何目的以任何形式复制或传播此文档的任何部分;}本文档包含的信息如有更改,恕不另行通知;}保留所有权利。内容提纲}嵌入式开发技术概述}嵌入式产品开发流程}当前热门的嵌入式技术嵌入式技术的特点}不是单纯的操作系统技术或处理器技术,而是二者的集合加上行业应用谷歌手机(QSD8250+android)嵌入式技术有哪些?推荐的组合}(Cadence+)ARM+Linux+Android嵌入式产品的特点}性能特点:}嵌入式产品范围广,不同的产品关注的方向不同。这些方向主要有:体积、成本、功耗、稳定性、实时性、功能、外观等。}技术特点:}软硬件结合}硬件、软件技术更新快,复杂程度不断提高}操作系统在嵌入式产品中应用越来越广}所有的通用计算机技术都有可能被应用在嵌入式产品中}需要和具体行业技术结合}开发难度大、周期短嵌入式产品开发流程}开发前期准备工作}需求分析、可行性分析}具体的技术开发}硬件设计、嵌入式系统构建、驱动编程、应用编程、GUI开发、电源管理、启动时间、算法优化、实时性优化、系统测试、产品模具结构设计及组装}开发后期工作}用户体验测试、产品送检、小批量生产测试、大批量生产。8需求分析、可行性分析9硬件设计}硬件方案设计}处理器、控制器选型}熟悉硬件产品的工作原理}硬件调试硬件工程师硬件工程师硬件概要设计说明硬件概要设计说明采购部采购部硬件原理图硬件原理图产品详细说明产品详细说明项目开发总体方案项目开发总体方案硬件工程师硬件工程师PCB设计PCB设计软件工程师软件工程师PCB制板PCB制板焊接调试焊接调试样机样机硬件详细设计说明硬件详细设计说明零部件BOM清单零部件BOM清单结构设计工程师结构设计工程师10高速电路板绘制}原理图、pcb绘制、信号仿真工具的熟练使用。}熟悉高速信号理论知识嵌入式系统构建与优化}嵌入式操作系统选型}Wince、linux、vxworks、andriod等}嵌入式操作系统构建}交叉开发环境构建、Bootloader移植、操作系统移植、文件系统构建、GUI库移植等}操作系统优化}内存优化}实时性优化12驱动编程}接口技术}GPIO、PWM、串口、I2C总线、SPI总线、CAN总线、网卡、声卡、显卡、存储控制器、DMA控制器、中断控制器、USB接口等。}操作系统的驱动技术}字符、块、网络设备编写方法}设备访问的控制方法}同步、互斥、睡眠机制}内存管理机制}时间、延时机制}中断、DMA申请机制13应用编程}I/O、文件、脚本编程}进程、线程管理及通讯}网络编程}数据库编程}GUI开发14电源管理}处理器支持慢速、待机、睡眠等模式}处理器的工作频率和功耗有关}操作系统对动态电源管理的支持通常由驱动工程师或系统工程师完成15启动时间}熟悉软、硬件的启动过程及依赖关系}方法:对启动过程进行划分,分别优化各个阶段16步骤主要耗时操作上电复位片内Firmware运行Bootloader对内核需要使用RAM进行查找和初始化;下载系统镜像到RAM并解压,传递内核参数内核内核初始化、搜索设备安装驱动、挂载根文件系统用户空间执行初始化脚本、启动图形界面、应用程序优化系统启动时间相关的点和方法}Bootloader的选择和启动优化}以s3c2410+linux系统为例,可以选择的bootloader有很多,如:u-boot,三星的bios,blob,vivi等等。}Bootloader应根据实际需要选择,而不是越大越好}U-boot启动优化点,延时优化,精简设备驱动,甚至修改u-boot第一阶段代码}内核优化}精简内核,去掉所有不需要的功能}精简驱动、可以延后加载的模块做成动态模块}分析系统硬件、软件性质,做到软硬件合理配置}根据系统硬件性质,确定是否选择压缩内核}适当分析内核启动代码,确定合适的内核加载地址(bootloader加载内核的内存位置)}开启内核PrintkTime等类似功能,分析系统启动中那些地方耗时较多}根文件系统优化}压缩跟文件系统上的库}根文件系统去掉多余的应用}分析根文件系统上各个应用耗时情况算法优化}嵌入式系统最好是“刚刚好”}时间、空间}需要对算法本身及嵌入式系统有深入的理解}算法举例:音视频设别算法、压缩解压算法、及各种行业相关的算法}算法的优化需要结合嵌入式系统}除了算法本身,还需要了解:¨处理器的cache特性、mmu特性,内存特性¨操作系统的调度、内存管理等18实时性优化}软实时、硬实时}注重任务的可控性}硬实时}超过时限完成任务会导致灾难性后果}软实时}超过时限完成对任务会带来系统性能的严重下降19通常由系统工程师完成内核制约实时性的因素}2.4内核不可抢占}中断关闭}自旋锁(spinlock)与大内核锁}中断总是最高优先级的}调度算法和调度点系统测试}测试方法}白盒、黑盒测试}功能测试}压力测试}性能测试}易用性测试}开发与测试的关系单元测试详细设计集成测试概要设计系统测试产品需求验收测试用户需求图:开发与测试的关系21Linux性能测试}Linux性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。}Linux负载测试和压力测试都属于性能测试,两者可以结合进行。}通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标变化情况。}压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得Linux系统能提供的最大服务级别的测试。主要性能测试指标}带宽(Bandwidth)}带宽测试包括:Memory、IPC和CachedI/O带宽。}其中,Memory带宽包括:copy,read,write,bcopy等。IPC带宽包括:Pipe,TCP。CachedI/O带宽测试包括:readandmmap。}延迟(Latency)}延迟测试包括:MemoryLatency、SIGhandlingCost、ProcessCreate、IPC、FSLatency等。中断延迟与测量}在2.6实时抢占内核中,当中断信号产生后,经过一定的硬件延迟后,处理器进行中断服务处理,包括处理器模式切换、中断向量枚举与查询以及底层简单处理、启动一定优先级内核线程进行中断服务所需时间等。此外,某些内核关键代码中使用了某些锁或原子变量,禁用了中断来保护较小的临界区,其中断关闭时间也应加以考虑。}从上述可得知,不可确定部分主要是硬件的关断时间。在实时内核中支持CONFIG_IRQSOFF_TRACER选项,记录从关闭中断后的时间开始到释放重新使能中断后的时间差,通过专用文件系统(ftrace)导出。平台相关的硬件延迟可结合辅助设备来进行测量,例如通过示波器测量并口输出输入信号来实际获取中断响应时间。性能测试}中断延迟BenchMark抢占延迟BenchMarkBenchmark测试系统:ARM公司VersatilePB926EJ-SCPU:Arm926EJ-S处理器频率:210MHZI/Dcache:32KB/32KB系统内存:128MB产品模具、结构设计及组装}属于机械部分工作}机械结构、机械工艺、工业设计等相关知识}模具、结构设计软件(CAD、PROE、UG)26产品送检}3C(ChinaCompulsoryCertification)认证,英文缩写为“CCC”即强制性产品认证}不同产品执行的检查项目不同}嵌入式产品通常有:高低温测试、震动测试、电磁兼容EMC测试、人体辐射测试等27产品维护与服务}要求熟悉产品的性能与操作。以及有一定的专业水平。非常看重工程师的表达沟通能力。热门的嵌入式技术}3G}物联网}云计算}机器人}3G软件应用}3G硬件终端物联网}基于Internet与移动网络、WSN网络、射频识别(RFID)装置、全球定位(GPS)、数据库、行业应用软件等技术,让所有的物品都与网络连接在一起,方便识别和管理。}世界上所有的物体从轮胎到牙刷、从房屋到纸巾都可以通过因特网主动进行交换。}智能家居智能医疗智能城市}智能环保智能交通智能司法}智能农业智能物流智能文博物联网物联网应用之智能家居}闪联智能家居在线体验厅}云计算}机器人}机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。涵盖了几乎所有的嵌入式技术如何学习嵌入式}找准合适自己的切入点}抓住实战机会、积攒开发经验}切忌浮躁}善于和自己的行业、市场需求结合、找到创新点36与行业技术结合}产品的开发过程需要和具体的行业技术结合}手持终端、汽车电子、医疗器械、工业控制、军工产品等37移动临床助理刘洪涛lht@farsight.com.n
本文标题:嵌入式开发关键技术
链接地址:https://www.777doc.com/doc-6279311 .html