文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式新手入门开发板选型指南

嵌入式新手入门开发板选型指南

嵌入式新手入门开发板选型指南
嵌入式新手入门开发板选型指南

第1章: 前言

近年来,嵌入式人才可谓炙手可热。随着这个行业的不断升温,越来越多的人加入到嵌入式开发的行列中,而学习嵌入式的队伍也在日渐扩大。

对于新手来说,如何迅速上手,进入嵌入式这一领域,是大家共同关注的问题。目前,各种嵌入式的学习资料,培训班层出不穷。新手在面对令人眼花缭乱的众多选择时,普遍感觉到无所适从。作者本人数年前初学嵌入式的时候对这一点也有深刻的体会。作者决定撰写这一部新手指南,完全是源于对自己工作了多年的嵌入式行业的热爱。希望通过整理的一些资料和数年的从业经验,让新人们在迈进嵌入式领域的时候,走得顺畅一些,少绕一些不必要的弯路。文中观点仅代表个人观点。

虽然本文是嵌入式新手指南,但新中更有新中手,本文不可能通俗到只要认识汉字就能一读即懂的程度。一些必要的知识还是需要具备的。读者至少需要具有基本的编程语言知识,C或者C++或者汇编或者其他….只要学过一门,并且试着写过一小段程序,同时对硬件系统有一些基本的知识。如果对基本的编程的思想没有一个了解的话,上手就比较困难了,建议先去补习一下。

学习嵌入式,大概分为以下几步:硬件平台选择,开发环境建立,应用程序编写,驱动程序编写;而对于嵌入式项目的开发,一般有以下几个步骤:硬件开发,交叉编译环境的建立,内核的移植,文件系统的建立,驱动程序的编写,应用程序的开发。

因此对于一个新手来说,第一件事就是拥有一块自己的开发板,然后先在开发板上学习嵌入式环境的建立以及应用程序的编写,接着学习编写驱动程序。作者也将按照这一顺序来撰写新手指南。

硬件平台是整个嵌入式学习的基础。光靠看看资料,自己不动手编程的学习是不可能有什么效果的。所以选择一款嵌入式开发平台,是必须的第一步。有了一套嵌入式开发平台以后,一边看资料,一边动手,进步就非常快。同时选择硬件平台的过程,也有利于大家加深对硬件系统的了解。

嵌入式开发环境的构建是在有了硬件平台之后的又一项重要的基础工作。包括上位机操作系统的安装和配置,编译器的安装和一些其他软件的安装。然后要将启动程序,内核和文件系统编译以后烧写到目标板上。在完成了这些准备工作之后,我们就能够真正进入到后面的开发学习阶段了。

学习应用程序:其实应用程序的复杂程度不比内核低,项目开发周期大多耗在应用程序的编写上。应用程序也是一个系统,比如大家都熟知的qtopia,要玩懂它的话还是要花上很多时间的。

对于想要深入研究嵌入式的朋友,学习驱动程序也是必不可少的一个环节。学习驱动程序和内核源码,现在市面上已经有很多好书了,其中LDD算是一部最完美的杰作。如果你熟悉单片机系统的开发,要想学会驱动程序的开发是很简单的。开发驱动之前先看别人写的书,理解了驱动的基本模型之后,再看内核文档里面对设备模型的概述(大家别怕英语啊,呵呵),如果理解了驱动编写的接口,再把其中某个模型拿出来通读,之后就可以自己动手编写了,这样的学习过程对于一个新手来说进步是最大的。驱动程序掌握后,内核中的很多知识自然就懂了,那时候你可能就具备了一定的开发能力了。

对于移植,可以借鉴开发板的开发方法来做。相信熟悉了内核的你肯定能很

好地理解。

经过以上几个阶段的工作之后,基本上算大功告成,又一个嵌入式工程师诞生了。理论上来说,完成了这几个部分学习的人,已经完全有能力参与嵌入式项目的研发工作。接下来需要的就是通过实战的磨练来积累经验。

在我们业内,很多资深的开发人员都有这样的感觉。嵌入式真是一个有着无穷魅力的领域。它提供我们的,不仅是开发的平台,更是创造的平台。通过这个平台,我们不仅一直创造技术,产品,财富。我们更是创造生活!

第2章:硬件平台的选择

硬件平台在嵌入式的学习中是必不可少的。但是对于对嵌入式知之甚少的新人来说,开发板的选择并不是一件容易的事情。

作者个人认为,作为初学者首先应该关注的开发板的技术支持。因为初学者在学习的过程中会不断遇到各种各样的问题。一个问题无法及时解决很有可能会导致整体进度的延误。而且有时候有的问题对于新手来说确实是死活都搞不定的。这种时候,技术支持就体现出关键性作用了。问题回答的及时性和技术人员解决问题的能力都是大家考量的重要标准。

其次应该关注的是,源代码支持以及使用手册的完整性。软件比如有没有提供ADS编译环境,编译器的完整性,内核的版本,串口调试软件等。而使用手册的完整程度也非常重要。跟着好的资料学习,就好像有人手把手教一样。这也对新手的学习进度有着重大影响。

再接下来应该关注的是,开发板的硬件资源和质量。主要需要关注的几个点是,用的什么处理器,NAND FLASH, NOR FLASH和SDRAM大小,接口(串口,摄像头接口,SD卡,USB,以太网,IDE等等)的齐全程度,供电电压,布局和走线的合理性。此外,有没有核心板也是非常重要的一点,因为有了核心板,可以方便的根据自己的项目要求或者功能需求进行硬件的设计。

当然,价格也是关键因素之一。因此在考虑产品和服务以外,性价比也是大家需要考察的一个重点。此外,大多数人购买开发板的同时,也会同时购买液晶屏(触摸屏),方便图形交互界面的开发。所以在考察开发板之外,也应该关注该产品有没有开发板与屏幕的优惠套装,以及所配屏幕的质量。

根据以上思路,作者将市面上最热门的3款来自不同公司的主流ARM9开发板作出了一个较为详细的评测,方便初学者自己判断,并且学习到评价开发板好坏的一般法则。

这次评测的三块开发板分别是:天嵌公司的TQ2440开发板,友善之臂的MINI2440开发板,和立宇泰公司的开发板SYS2440-B开发套件。

图1:立宇泰SYS2440-B开发板

图2:天嵌TQ2440开发板

图3:友善之臂mini2440 开发板

下面开始我们的对比评测。

一.技术支持:

从这三块开发板所属公司的知名度来看,立宇泰的知名度最高,然后是天嵌和友善之臂。其中,立宇泰和天嵌在从事开发板的研发和销售业务以外,为客户定制各种嵌入式产品解决方案也是其业务中重要的一块。大量的开发项目使得这两家公司的技术团队在嵌入式应用方面有着较为丰富的经验,工程师解决问题的能力也会比较强,用户在遇到问题的时候得到的支持也会较为有力。而友善之臂公司主要的业务是开发板的销售,技术支持上可能会存在一定的差距。

为了对三家公司的技术支持有更为直观的了解,作者以电话和网络方式,就这三块开发板的购买和技术事宜分别向各厂商进行了咨询。结果如下:立宇泰的产品主要由杭州公司直接销售。作者咨询产品情况的时候,感觉客服态度较好。当作者向技术人员咨询普通技术问题时,能够得到较为完善的解答。当作者询问比较复杂的技术问题时,技术人员无法解答,但把电话转接到他们的技术负责人那里,得到了完善的解答。(令作者十分惊讶的是,技术负责人竟然是个MM…)

天嵌的产品在广州和上海两地都设有销售和技术支持中心。作者咨询产品情况的时候,感觉客服态度较好。当作者向技术人员咨询普通技术问题和较为复杂的技术问题时,都得到了较为完善的解答。当作者提出要求想看看清楚GPS模块与开发板的连接口时,技术人员竟然专门去拍了接口和运行导航软件的照片发过来,令作者大为感动。

友善之臂的产品在全国有很多家经销商,而总公司负责华南地区销售。但从其网站上的经销商列表来看,很多经销商都是个人卖家,总体感觉比较混乱。当作者咨询产品情况的时候,客服态度较好。当作者向技术人员咨询普通技术问题时,客服无法解答,让作者咨询总公司。总公司技术人员可以解答普通问题,但作者询问到比较复杂的技术问题时,技术人员无法回答,说是过几天给回复。但一直没有给回复。

技术支持情况

立宇泰天嵌友善之臂

公司知名度★★★★★★★★★★

技术团队经验★★★★★★★★★★

销售渠道★★★★★★★★★★★★

客服态度★★★★★★★★★★★★★★★

解答普通技术问题★★★★★★★★★★★★★★

解答复杂技术问题★★★★☆★★★★★☆

技术支持综合评价★★★★☆★★★★☆★★★

二.使用手册完整性,软件支持及源代码支持:

作者就这三款ARM9开发板用户手册的完整性,软件支持是否齐全以及源代码支持的丰富性进行了比较。

在用户手册方面,天嵌TQ2440和友善之臂mini2440的手册都有400多页,其详细和全面程度,令作者的佩服之情油然而生。不过mini2440手册的内容在编排上似乎有一点点乱,TQ2440则更有条理一些,两者基本上难分高下。而立宇泰SYS2440的手册,无论在内容还是在编排上,都与前两者存在明显得差距,只能用简易手册来形容。

在源码支持方面,作者给出了下表:

立宇泰SYS2440-B 天嵌TQ2440 友善之臂mini2440

操作系统Linux 2.6.12

Windows CE 4.2

uCOS-II Linux 2.6.13

Windows CE 5.0

uCOS-II

Linux 2.6.13

Windows CE 5.0

uCOS-II

启动程序U-BOOT 支持TFTP高速网络

下载;需手动输入启

动参数;支持TFTP高速网络

下载;支持一键式设

置Linux和WinCE的

启动参数;支持usb

下载内核镜像、文件

系统,一键式操作

支持TFTP高速网络

下载;支持一键式设

置Linux和WinCE的

启动参数;支持usb

下载内核镜像、文件

系统,一键式操作

文件系统根文件系统采用

Yaffs 根文件系统采用

Yaffs

根文件系统采用

Yaffs

串口驱动两个串口驱动三个串口驱动三个串口驱动

以太网驱动10M CS9000驱动100M DM9000驱动100M DM9000驱动

USB摄像头驱动暂时不支持USB摄

像头支持使用中芯微301

P系列芯片的USB摄

像头

支持使用中芯微301

P系列芯片的USB摄

像头

由表可知,天嵌TQ2440与友善之臂mini2440的源码支持都做得较好,而立宇泰SYS2440-B的源码支持情况尚有一定差距。

在软件支持方面,三款产品在开发工具,内核源代码包,烧写软件,调试软件,图形界面,测试程序等方面都较为丰富。其中也以TQ2440和mini2440做的更好一些。

使用手册完整性,软件支持及源代码支持情况

立宇泰SYS2440-B 天嵌TQ2440 友善之臂mini2440 用户手册★★★★★★★★★★★★☆

源码支持★★★★☆★★★★★★★★★★

软件支持★★★☆★★★★★★★★

综合评价★★★☆★★★★☆★★★★☆

三.硬件资源: 作者就这三款开发板的硬件资源和质量进行了比较:

立宇泰SYS2440-B

天嵌TQ2440

友善之臂mini2440

CPU 三星 S3C2440A-40 三星 S3C2440AL 三星 S3C2440A Nand Flash 64M 64M 64M Nor Flash 1M 2M 2M SDRAM 64M 64M 64M 核心板 有

UART 口 3个,全部经RS232电平转换

3个,其中COM1经RS232电平转换 3个,其中COM1经RS232电平转换 以太网 10M CS8900A 芯片 100M DM9000芯片 100M DM9000芯片 USB 口 2路(一路Host,一路Slave ) 2路(一路Host,一路Slave ) 2路(一路Host,一路Slave ) SD 卡 1路 1路 1路 音频口 1 IN , 1 OUT 1 IN , 1 OUT 1 IN , 1 OUT JTAG 口 1个10针JTAG 口,1个20针JTAG 口 1个10针JTAG 口 1个10针JTAG 口 用户按键 4个 4个 6个 并口线 有 无 无 摄像头接口 有 有 有 GPIO 口 50针 40针 34针 电源电压

+9V

+5V 功耗低

+5V 功耗低

由上述比较可知,三款产品在处理器上基本一致,立宇泰SYS2440开发板在Nor Flash 上较其他两款产品来得小,在一定程度上影响了系统性能。其工作电压高达9V ,功耗也大于其他两款产品。但在接口方面,SYS2440凭借其3个RS232口略胜一筹。

在布局的合理性上,三款产品大同小异,质量上,三款产品的PCB 板做工也相当好。但作者发现mini2440的接口选材相当一般,在插拔的时候塑料部分可能会产生断裂的情况。

硬件资源情况

立宇泰SYS2440-B 天嵌TQ2440 友善之臂mini2440 系统性能★★★★★★★★★★★★★★

接口丰富程度★★★★★★★★★★★★★

系统能耗★★★★★★★★★★★★★

可扩展性★★★★★★★★★★★

布局和走线合理性★★★★★★★★★★★★

选材,质量★★★★★★★★★★★☆

综合★★★★★★★★★★★☆

四.性价比

在选择嵌入式开发板的时候,需要考虑产品的性能,服务,可扩展性以及价格。性能和服务,作者在前几节中已经提过了。所以在这一节,就和大家一起来研究以下参评产品的价格和可扩展性。可扩展性是产品非常重要的因素之一,因为嵌入式系统在实际应用中经常需要外界各种模块来实现一些功能。外接模块的丰富程度也关系到嵌入式学习能够扩展的范围。

用户在购买嵌入式开发板产品的同时,通常也会购买屏幕或者VGA转接板,方便图形界面的开发。因此,厂商通常会将屏幕和开发板打包,以优惠价格进行销售。当然,由于各家所配屏幕不同,屏幕的显示效果也不同。

立宇泰SYS2440-B 天嵌TQ2440 友善之臂mini2440 单板价格1300元550元499元

开发板+3.5’触摸屏1500元599元589元

开发板+7’触摸屏2100元1199元950元

开发板+VGA转接1600元619元640元

核心板800元350元无核心板

摄像头(130万象素)配套模块摄像头(30万象素)摄像头(130万象素)

GPS模块

由上述对比可知,天嵌TQ2440定位要略高于友善mini2440,而立宇泰SYS2440的价格要明显高出许多。下面我们来结合之前的打分,比较产品的性价比。

产品性价比

立宇泰SYS2440-B 天嵌TQ2440 友善之臂mini2440 公司技术支持★★★★☆★★★★☆★★★

软件、源码支持★★★★★★★★☆★★★★☆

用户手册★★★★★★★★★★★★☆

系统综合性能★★★★★★★★☆★★★★

做工,质量★★★★★★★★★★★☆

配套模块★★★★★★★★★★

价格★★★★★★★★★★☆

综合性价比★★★★★★★☆★★★☆

通过几个环节的全方位比较,我们终于得到了结果:

天嵌TQ2440 ARM9开发板以4星半的得分取得了最高的性价比。天嵌公司完善的技术支持,卓越的硬件性能和质量,丰富的软件和源码支持,较好的可扩展性使得该产品具有很强的竞争力。同时,相对较低的定价赋予了产品极高的性价比,使其取得了嵌入式爱好者的广泛青睐。

友善之臂mini2440开发板以3星半的得分获得第二名。该产品具有很强的硬件性能和丰富的软件、源码支持。不过友善之臂公司的技术支持质量还有待改善。该产品的定价也相对较低。总体上来说这是一款具有较高性价比的开发板,销售成绩一直不错。

立宇泰SYS2440以3星的成绩得到第三名。立宇泰公司的技术支持相当完善,产品的接口比较丰富,做工也相当不错。但是软件、源码支持和用户手册都不够全面。该产品的定价较高,使得产品的性价比大打折扣。但总体上来说,是一款不错的产品,得到大家的认可。

大家可以去以上三款ARM9嵌入式开发板的公司主页查看资料,验证作者文中观点的正确性:

立宇泰SYS2440-B 天嵌TQ2440 友善之臂mini2440

主页立宇泰杭州

https://www.wendangku.net/doc/aa4486583.html, 天嵌广州

https://www.wendangku.net/doc/aa4486583.html,

天嵌上海

https://www.wendangku.net/doc/aa4486583.html,

友善之臂广州

https://www.wendangku.net/doc/aa4486583.html,

五.小结

在学习嵌入式的开发环境、应用程序和驱动程序以前,为自己准备好开发平台,是十分必要的。在这一章,作者将市面上3款主流ARM9开发板进行了比较。通过这次比较,作者的目的并不在于评出哪块好哪块差,而是通过这次评测,教给想要学习嵌入式的新手们一种选择开发板的方法,一种评判的思路,方便大家的学习。

ARM+FPGA开发板规格书

2014

Revision History

阅前须知 版权声明 本手册版权归属广州创龙电子科技有限公司所有,非经书面同意,任何单位及个人不得擅自摘录本手册部分或全部,违者我们将追究其法律责任。本文档一切解释权归广州创龙电子科技有限公司所有。 ?2014-2018Guangzhou TronlongElectronicTechnologyCo.,Ltd. All rights reserved. 公司简介 广州创龙电子科技有限公司(简称“广州创龙” ,英文简称"Tronlong"),是杰出的 嵌入式方案商,专业提供嵌入式开发平台工具及嵌入式软硬件定制设计及技术支持等服务,专注于DSP+ARM+FPGA 三核系统方案开发,和国内诸多著名企业、研究所和高校有密切的技术合作,如富士康、威胜集团、中国科学院、清华大学等国内龙头企业和院校。 TI 嵌入式处理业务拓展经理ZhengXiaolong 指出:“Tronlong 是国内研究OMAP-L138 最深入的企业之一,Tronlong 推出OMAP-L138+Spartan-6三核数据采集处理显示解决方案,我们深感振奋,它将加速客户新产品的上市进程,带来更高的投资回报率,使得新老客户大大受益。” 经过近几年的发展,创龙产品已占据相关市场主导地位,特别是在电力、通信、工控、 音视频处理等数据采集处理行业广泛应用。创龙致力于让客户的产品快速上市、缩短开发周期、降低研发成本。选择创龙,您将得到强大的技术支持和完美的服务体验。 产品保修 广州创龙所有产品保修期为一年,保修期内由于产品质量原因引起的,经鉴定系非 人为因素造成的产品损坏问题,由广州创龙免费维修或者更换。 更多帮助

ARM嵌入式系统基础与开发教程丁文龙

第1章嵌入式系统概述 1.填空题 (1)嵌入式系统硬件平台嵌入式软件 (2)硬件抽象层HAL 板级支持包BSP 设备驱动程序 (3)嵌入式微处理器嵌入式微控制器嵌入式片上系统SoC 2.选择题 (1)B (2)A B D (3)D 3.简答题 (1)什么是嵌入式系统?列举几个熟悉的嵌入式系统的产品。 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。常见的有汽车、手机、MP3等等。 (2)嵌入式系统由哪几部分组成? 嵌入式系统从大的方面分嵌入式系统硬件平台和嵌入式软件两大部分,其中软件部分又具体分为若干层次。对于包含有操作系统的嵌入式系统来讲,嵌入式系统软件结构包含4个层次:设备驱动层、实时操作系统RTOS层、应用程序接口API层、应用程序层。 (3)简述嵌入式系统的特点。 系统内核小;专用性强;系统精简;软件固化;嵌入式软件开发要想走向标准化,就必 须使用多任务的操作系统;嵌入式系统开发需要开发工具和环境。

第2章ARM体系结构 1.填空题 (1)Cortex-R4处理器Cortex-A8处理器 (2)ARM Thumb (3)R13 R14 R15 (4)8 16 32 2.选择题 (1)A C D (2)A (3)B C D 3.简答题 (1)简述ARM可以工作的几种模式。 ARM体系结构支持7种处理器模式:用户模式、快中断模式、中断模式、管理模式、 中止模式、未定义模式和系统模式。 (2)ARM7内部有多少个寄存器? 在ARM7TDMI处理器内部有37个用户可见的32位寄存器,其中31个通用寄存器,6个状态寄存器。 (3)描述一下如何禁止IRQ和FIQ的中断? 在一个特权模式下,都可通过置位CPSR中的I位来禁止IRQ。 在一个特权模式中,可通过置位CPSR中的F标志来禁止FIQ异常。 (4)请描述ARM7TDMI进入异常或退出异常时内核有何操作? 当异常发生时,ARM处理器尽可能完成当前指令(除了复位异常)后,再去处理异常,并执行如下动作: ①进入与特定的异常相应的操作模式; ②将引起异常指令的下一条指令的地址保存到新模式的R14中; ③将CPSR的原值保存到新模式的SPSR中; ④通过设置CPSR的第7位来禁止IRQ;如果异常为快中断,则要设置CPSR的第6位禁止快中断; ⑤给PC强制赋向量地址值。 退出异常时: ①将LR中的值减去偏移量后移入PC,偏移量根据异常的类型而有所不同; ②将SPSR的值复制回CPSR; ③清零在入口置位的中断禁止标志。

Unity3D经典入门教程(精)

一、Unity基础 本部分是你开始Unity的关键。、这里将解释Unity的界面,菜单项,使用资源,创建场景,和发布。当你完全阅读了该部分后,你将能够理解Unity是如何工作的,以及如何使其更加有效的工作,和如何将简单的游戏放置在一起。 1. 界面学习 现在我们开始学习Unity,如果你还没有打开 Unity,你可以通过双击位于Application->Unity文件夹中的 Unity图标来运行它,当它第一次运行时你将看到如下的场景: Unity运行时的缺省场景,如果你打开过任何实例,你的屏幕会与上图不同 有很多需要学习的东西,让我们花费点时间来观察理解上述界面。我们将介绍每一个接口 元素。 概要主窗口的每一个部分都被称为视图(View)。在 Unity中有多种类型的视图,但是,你

不需要同时看见所有的视图。不同的布局模式(Layout modes)包含的视图是不同的。通过单击布局下拉控件来选择不同的布局,该控件位于窗口的右上角。 布局模式选择下拉列表 现在,单击布局选择,并单击Animation,切换到动画布局 (Animation layout)。还可以从菜单中选择Window->Layouts->Animation来切换。动画布局包含所有的视图,这是昀好的用来介绍它们的方法。

通过视图左上角的名称你可以迅速的分辨这些视图。这些视图是:场景视图(Scene View)-用于放置物体游戏视图(Game View)-表示游戏在运行时的外观层次视图(Hierarchy)-当前场景中的游戏物体的列表工程视图(Project)-显示当前打开工程中所有可用的物体和资源检视视图(Instpector)-显示当前选中物体的细节和属性时间线(Timeline)-用于为当前选中物体创建基本的时间线动画 场景视图(Scene View) 场景视图 场景视图(Scene View)是一个可交互的沙盘。你将使用它来选择并在场景中定位所有的游戏物体(GameObjects),包括玩家,摄像机,敌人等。在场景视图中操纵并修改物体是Unity非常重要的功能。这是昀好的通过设计者而不是玩家的角度来查看场景的方法。在场景视图中你可以随意移动并操纵物体,但是你应该知道一些基本的命令以便有效的使用场景视图。 第一个你应该知道命令是FrameSelected命令。这个命令将居中显示你当前选中的物体。你可以在层次视图(Hierarchy)单击任何物体,然后移动你的鼠标到场景视图上并按F键。场景视图将移动以居中显示当前选择的物体。这个命令是非常有用的,你将在场景编辑的

arm嵌入式系统基础教程课后答案.doc

arm 嵌入式系统基础教程课后答案【篇一:arm 嵌入式系统基础教程习题答案周立功】 /p> 1 、举出3 个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的 专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(embedded microprocessor unit, empu) 嵌入式微控制器(microcontroller unit, mcu) 嵌入式dsp 处理器(embedded digital signal processor, edsp) 嵌入式片上系统(system on chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实 时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了 开发周期。再次,嵌入式实时操作系统充分发挥了32 位cpu 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务 是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结 束项目 4 个阶段。识别需求阶段的主要任务是确认需求,分析投资 收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定 期监控进展,分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系 统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行 的初期,在客户和开发团队都还未投入大量资源之前,风险的评估

[学习引导]4412开发板之嵌入式技术学习步骤及项目案例

嵌入式技术的学习步骤(基于iTOP-4412) 北京迅为电子有限公司

嵌入式技术的知识体系 ?适用于iTOP-4412开发板及配套教程的学习步骤 ?嵌入式的知识面广泛,初学者难于入门 ?本节阐述嵌入式技术学习步骤,适用于初学者 ?力图起到提纲挈领的作用,在大量学习资料中有一个比较清晰的脉络?最后会介绍一个实战案例

首先要搞明白几个重要文件的意义?学习方法:首先要掌握基础架构 ?对于架构来说,最基本的东西就是要搞清楚几个概念(几个文件的意义): –bootloader引导程序(UBOOT) –linux操作系统内核(kernel) –文件系统(可能包含2个文件) ?推荐大家首先研读:“澄清几个基本概念-迅为精英版聊天记录.doc” –该文件在QQ群共享中 ?开发编译环境的搭建、源代码的编译和烧写、应用和驱动的建立等等都是围绕这几个文件展开的!

第二步:搭建开发编译环境 ?64位WIN7系统--》虚拟机--》ubuntu ?对于初学者,推荐按照教程的要求和步骤来做,这样少走弯路,效率更高 ?其他系统不是不可以,但可能会遇到各种安装和编译过程的问题 ?熟练掌握以后,再去创新,这时才可以去做各种不同的尝试 ?搭建开发环境,有的时候并不顺利,需要克服一些安装问题 ?迅为已经把安装步骤做了很大程度的简化,比如虚拟机上的ubuntu镜像,直接拷贝进去就可以用了,避免了通过网络安装各种插件 ?搭建完成,就可以按照教程学习源代码编译和系统的烧写。 ?再次强调:这些工作都是围绕那三个文件展开的(实际是4个文件) ?Linux或Android系统的编译和烧写都是依赖于这个开发环境的。

6、汇编学习从入门到精通(荐书)

汇编学习从入门到精通Step By Step 2007年12月15日星期六00:34 信息来源:https://www.wendangku.net/doc/aa4486583.html,/hkbyest/archive/2007/07/22/1702065.aspx Cracker,一个充满诱惑的词。别误会,我这里说的是软件破解,想做骇客的一边去,这年头没人说骇客,都是“黑客”了,嘎嘎~ 公元1999年的炎热夏季,我捧起我哥留在家的清华黄皮本《IBM-PC汇编语言程序设计》,苦读。一个星期后我那脆弱的小心灵如玻璃般碎裂了,为了弥补伤痛我哭爹求妈弄了8k大洋配了台当时算是主流的PC,要知道那是64M内存!8.4G硬盘啊!还有传说中的Celeon 300A CPU。不过很可惜的是在当时那32k小猫当道的时代,没有宽带网络,没有软件,没有资料,没有论坛,理所当然我对伟大的计算机科学体系的第一步探索就此夭折,此时陪伴我的是那些盗版光盘中的游戏,把CRACK_XXX文件从光盘复制到硬盘成了时常的工作,偶尔看到光盘中的nfo 文件,心里也闪过一丝对破解的憧憬。 上了大学后有网可用了,慢慢地接触到了一些黑客入侵的知识,想当黑客是每一个充满好奇的小青年的神圣愿望,整天看这看那,偷偷改了下别人的网页就欢喜得好像第一次偷到鸡的黄鼠狼。 大一开设的汇编教材就是那不知版了多少次的《IBM-PC汇编语言程序设计》,凭着之前的那星期苦读,考试混了个80分。可惜当时头脑发热,大学60分万岁思想无疑更为主流,现在想想真是可惜了宝贵的学习时间。 不知不觉快毕业了,这时手头上的《黑客防线》,《黑客X档案》积了一大摞,整天注来注去的也厌烦了,校园网上的肉鸡一打一打更不知道拿来干什么。这时兴趣自然转向了crack,看着杂志上天书般的汇编代码,望望手头还算崭新的汇编课本,叹了口气,重新学那已经忘光了的汇编语言吧。咬牙再咬牙,看完寻址方式那章后我还是认输,不认不行啊,头快裂了,第三次努力终告失败。虽然此时也可以爆破一些简单的软件,虽然也知道搞破解不需要很多的汇编知识,但我还是固执地希望能学好这门基础中的基础课程。 毕业了,进入社会了,找工作,上班,换工作成了主流旋律,每天精疲力尽的哪有时间呢?在最初的中国移动到考公务员再到深圳再到家里希望的金融机构,一系列的曲折失败等待耗光了我的热情,我失业了,赋闲在家无所事事,唯一陪伴我的是那些杂志,课本,以及过时的第二台电脑。我不想工作,我对找工作有一种恐惧,我靠酒精麻醉自己,颓废一段日子后也觉得生活太过无聊了,努力看书考了个CCNA想出去,结果还是被现实的就业环境所打败。三年时间,一无所获。 再之后来到女朋友处陪伴她度过刚毕业踏入社会工作的适应时期,这段时间随便找了个电脑技术工作,每月赚那么个几百块做生活费。不过这半年让我收获比较大的就是时间充裕,接触到了不少新东西,我下定决心要把汇编学好,这时我在网上看到了别人推荐的王爽《汇编语言》,没抱什么希望在当当网购了人生中的第一次物,19块6毛,我记得很清楚,呵呵。 废话终于完了,感谢各位能看到这里,下面进入正题吧。

嵌入式经典书籍100册

嵌入式工程师必读100本专业书籍 ——从小白到大牛你只差这100本书《大话数据结构》 《鸟哥的linux私房菜》 《疯狂android讲义》 《第一行代码》 《linux内核设计与实现》 《驱动设计开发》 《linux内核解密》 《unix环境高级编程》 《linux内核设计与实现》 《essential C++》 《嵌入式linux》 《linux设备驱动》 《c语言深度解剖》 《linux下的c编程》 《C Primer Plus(第五版)》 《ARM体系结构与编程(第二版)》 《lINUX设备驱动开发详解(第三版)》 《android开发艺术探讨》 《c++plus》 《Unix环境高级编程》 《与大数据同行——学习和教育的未来》 《用户体验的要素》 《编程与艺术》 《ARM嵌入式体系结构与接口技术》 《cortex-m0接口编程》 《C语言程序设计:现代方法》 《C++ Primer》

《数据结构》(严蔚敏) 《算法导论》 《Linux设备驱动开发》 《代码大全》 《深入理解计算机系统》 《UNIX环境高级编程》 《计算机安全原理》 《UNIX网络编程》 《HeadFirst设计模式》 《linux驱动》(宋保华) 《C++ primer4》 《qt5精彩实例》 《ldd3》 《C++高级编程》 《c语言教程》 《实战linux编程精髓》 《ARM教程》 《JAVA编程思想》 《HTML+CSS网页设计与布局从入门到精通》《C语言深度解剖》 《深度实践嵌入式Linux系统移植》 《unix高级编程》 《c嵌入式一站式教学》 《编译原理》 《深度实践嵌入式Linux系统移植》《UNIX环境高级编程》 《linux网络编程》 《C语言程序设计》 《unix环境高级编程》 《嵌入式linuxc语言程序设计基础教程》

嵌入式编程--开发板

开发板 目录[隐藏] 一.开发板简介 二.常见的PC机主板的分类 三.构成部分 四.开发板硬件驱动 五.嵌入式系统的现状和发展趋势 六.中国软件行业协会嵌入式系统分会介绍 [编辑本段] 一.开发板简介 开发板(demoboard)是用来进行嵌入式系统开发的电路板,包括中央处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等一系列硬件组件。开发板一般由嵌入式系统开发者根据开发需求自己订制,也可由用户自行研究设计。 在一般的嵌入式系统开发过程中,硬件一般被分成两个平台,一个是开发平台(h ost),一个是目标平台(target)即开发板。在此描述的开发平台指的是使用台式机,通过传输的界面,例如串口(RS-232)、串口、或是网络(Ethernet)与目标平台连接。 开发嵌入式系统,不可避免的是一定要先选择目标平台。在挑选一个目标平台时必须审慎评估,因为这涉及到有无方便的开发环境及技术支持。一般的板子除了集成型的CPU之外,最少需要一个输入及输出的界面、供下载影像文件(ROM image)的接口、内存(RAM)、FlashROM、电源模块等。为了开发初期的调试方便,还会在拉出几个特殊的引脚,如JTAG接口,以供外接的调试模块所使用。 当硬件及规格选定完成后,接下来就是进入最开始的系统开发与建立开放环境。如果项目所使用的嵌入式操作系统不是自己开发,而是向其他厂商购买的话,大都提供集成式开发环境(IDE)与仿真器(Emulator)让开发者可以加速整个开发的过程。

当你拿到的是系统厂商已经移植好的操作系统,并且确定有给予充分的文件之后,就可以针对自己的目标平台做集成的动作。 选定操作系统之后,通常都会指定开发平台上所使用的各项开发工具,例如编译器、连接器等。开发时需要设置的编译参数会依据每个环境不同而有所差异。这个部分必须依据硬件规格与指示说明编译出一个可以运行的映像文件,然后通过烧录工具烧录在目标平台上。 [编辑本段] 二.常见的PC机主板的分类 1.单片机: 1)51系列单片机 51 单片机目前已有多种型号,8031/8051/8751是Intel公司早期的产品,而ATMEL 公司的AT89C51、AT89S52则更实用。ATMEL公司的51系列还有AT89 C2051、AT89C1051等品种,这些芯片是在AT89C51的基础上将一些功能精简掉后形成的精简版。而市场上目前供货比较足的芯片还要算ATMEL 的51、52 芯片,HYUNDAI 的GMS97 系列,WINBOND 的78e52,78e58,77e58 等。 2)PIC系列单片机 在全球都可以看到PIC单片机从电脑的外设、家电控制、电讯通信、智能仪器、汽车电子到金融电子各个领域的广泛应用。PIC系列单片机又分:基本级系列,如P IC16C5X,适用于各种对成本要求严格的家电产品选用;中级系列,如PIC12C6XX,该级产品其性能很高,如内部带有A/D变换器、E2PROM数据存储器、比较器输出、PWM输出、I2C和SPI等接口;PIC中级系列产品适用于各种高、中和低档的电子产品的设计中。高级系列,如PIC17CXX 具有丰富的I/O控制功能,并可外接扩展E PROM和RAM,适用于高、中档的电子设备中使用。 3)AVR系列单片机 AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Redu ced Instruction Set CPU) 精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。 2. CPLD/FPGA CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL 和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。 许多公司如今都开发出了CPLD可编程逻辑器件。比较典型的就是Altera、Latt ice、Xilinx世界三大权威公司的产品,这里给出常用芯片:Altera EPM7128S(PLC C84)、Lattice LC4128V (TQFP100)、Xilinx XC95108 (PLCC84)

Linux C语言 socket编程 聊天室 可移植到arm开发板

sockets聊天室 1.1介绍 包括一个客户端和一个服务器。可实现多人聊天和两人一对一单独聊天。 1.2开发环境和工具 Linux gcc 1.3程序设计 服务器: 1. 声明一个client结构体,包含用户自己的socket描述符mid,自己的用户名name以及 与自己聊天对象的Socket描述符fid(默认是-1,即公共聊天室)。并定义一个结构体数组。 2. 服务器新建一个socket设置默认的ip为自动获取,调用bind()函数绑定服务器socket 与ip。 3. 开启listen()监听客户端的连接请求。 4. 在while循环里,用accept()等待连接,连接成功后,把accept()返回的socket描述 符存入client结构体数组中。 5. 每成功新建一个连接,就创建一个对应的子线程,接收并转发消息。 6. 定义void rec_snd(int n)这个函数,用于接收和转发消息。可选择公共聊天室和私聊, 私聊需要正确输入对方的名字。连接建立以后就可以发送消息。当接收的消息为bye 时,断开当前连接,如果是一对一私聊,一方断开另一方自动转入公共聊天室。 客户端: 1.新建一个socket,并与ip,端口进行绑定。 2.调用connect连接服务器。连接成功后新建一个线程用于发送消息, 主线程在while中调用read()接收服务器消息。 3.Snd()函数用于向服务器发送消息。 4._select()函数用于选择功能。 1.4应用演示 服务器端成功开启等待连接:

当有客户端连接时,会显示ip端口,socket标识符信息。客户端成功连接上服务器时会收到提示输入用户名: 输入姓名后会提示选择功能:

嵌入式软件工程师学习指南

嵌入式软件工程师学习 1. 嵌入式软件课程体系 自学嵌入式确实不大现实(当然也不是说没有这个可能),毕竟嵌入式难度也是比较大的。嵌入式的应用主要是几个方向: 一是系统开发:侧重开发环境搭建、内核原理、交叉编译等; 二是嵌入式Linux应用开发:侧重Linux应用编程、内核编译、系统调用; 三是底层驱动开发:侧重嵌入式Linux系统下的驱动开发、内核的深入分析。 不过初进门者主要往系统开发和应用开发发展,有了相关工作经验再进一步向底层驱动靠。 嵌入式课程的目标,想自学完课程,要掌握以下知识点: ◆Linux命令、工具和C编程基础 ◆嵌入式Linux C语言强化 ◆嵌入式Linux上的C编程训练 ◆Linux高级编程及编程训练 ◆嵌入式ARM处理器体系结构及编程训练 ◆嵌入式Linux内核环境搭建和编程训练 ◆嵌入式Linux驱动理论及驱动程序开发训练 ◆Android应用研究和系统开发 ◆Android体系结构和系统移植 ◆嵌入式ARM Linux项目实践和训练 嵌入式软件方面最重要的课程包括: (1)嵌入式微处理器结构与应用 这是一门嵌入式硬件基础课程,我院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM 处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C 语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人

arm9开发板实验报告1

轻工业学院 实训报告 实训名称: 项目一:编写从A/D转换器的通道x获取模拟数据,并将转换后 的数字量以波形的形式在LCD上显示的程序 项目二:触摸屏驱动程序设计 姓名:克歌 院(系):计算机与通信工程学院 专业班级:嵌入式09--01 学号: 1 指导教师:雪琴 成绩: 时间:2011年 8月 29日至 2011年 9 月 7 日

一、需求说明 1.巩固和强化学生的嵌入式系统的基本概念和开发流程,掌握基本知识和基本 技能。 2.掌握硬件开发平台、开发资源和软件开发环境,尤其是裸机嵌入式系统开发 方法。掌握汇编和C语言混合编程技巧,熟悉系统启动引导过程,能够成功移植嵌入式系统引导程序。培养和训练学生综合利用所学基本知识和基本技能进行小型裸机程序开发的技能。 3.明确思路和任务,查询相关书籍、资料,综合了解ARM的AD转换器和LCD 驱 动器,重点分析时S3C2440的LCD 驱动器的工作原理和初始化方法。分析与AD转换相关的寄存器,编写AD转换器的初始化函数,编写获取AD转换结果的函数。分析与LCD相关的寄存器,编写LCD 驱动器的初始化函数,配置显示方式。分析LCD绘图的API函数。编写主函数,将AD转换结果在LCD上以波形的方式显示,同时以串口输出到PC机。进入调试。实现转换数据实时输出,实现串口输出数据与LCD 波形显示的一致。 4.明确思路和任务,查询相关书籍、资料,重点分析S3C2440的触摸屏接口工 作原理和相关寄存器。编写触摸屏初始化函数,确定XY位置转换模式。编写触摸屏中断初始化函数,中断服务函数。编写屏幕校准函数。确定坐标计算公式。编写触点数据采集函数。编写主函数,进入调试。实现触摸屏坐标点x、y的正确读取。 二、功能描述 项目一:编写从A/D转换器的通道x获取模拟数据,并将转换后的数字量以波形的形式在LCD上显示的程序。 项目二:通过对AD转换器的配置——触摸屏自动测试x/y位置模式,选择进入到触摸屏驱动函数。在进行触摸屏测试时,先进入函数判 断是否启动A/D转换,如果不是的话就跳出此函数,如果是的话 进行下面的判断,看A/D转换是否结束,如果是,跳出函数,如 果不是运行程序,并输出x、y的值。再回到触摸屏驱动函数, 测试结束,清屏。

粤嵌开发板电子相册嵌入式课程设计

课程设计说明书题目:电子相册 课程名称:嵌入式系统 学院: 专业:学号: 姓名: 指导教师: 完成日期: 2017年6月10日

目录 1. 设计的工程背景 任务阐述 设计任务: 制作一个电子相册,要求每个人一种特效,结果显示在ARM开发板上。开发平台为LINUX。 电子相册简介: 以数字照片的存储和浏览为主要功能,具有内置数据存储器、USB等卡接口、强大的文件管理等特征。 背景: 在市场需求上,随着数码相机的普及,作为一种以数字照片的保存、回放和浏

览为核心的功能产品迎合了消费者需求,嵌入式linux的电子相册比一般电子相册更具优越性和实用性。目前市场,目前主流电子相册软件普遍体积庞大、占用内存多、硬件要求高。所以开发一个运行速度快,占用空间小,对硬件要求较低的功能实用的嵌入式Linux电子相册很有意义。 Linux开发优势: Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux 是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。 Linux是我国软件的国策,尤其是在IT行业,庞大的使用群体、开放的体系和丰富资源使得Linux将是日后普及和推广的重点。Linux的优越性日益凸显Linux将是我们学习和工作实用的首选。目前,很多网络技术、服务器、网络设备都是基于Linux操作系统,并且在不少时尚的手机、PDA、媒体播放器等消费类电子产品中已经广泛使用Linux作为操作系统。 在Linux软件国策的指引下,Linux已经得到很大的普及。很多学生已经自发地通过书籍、互联网等资源学习Linux。综上所述,提高技术水平就是以市场流行需求为导向进行研发,特别是像嵌入式种工程类的技术。在条件允许的情况下,我们甚至应该时刻与国际接轨,掌握当前最领先的技术。 任务分析 设计的目标是制作5种电子相册特效,每个人负责制作一种。在制作前期,首先要查阅资料,了解电子相册的背景和制作原理,对其形成大致的设计方案。然后,根据资料安装linux和虚拟机软件,搭建开发环境,安装交叉编译。最后,根据自己设计的方案进行尝试,不断修改错误,直到达到目标。 课题项目管理计划进度表

嵌入式系统开发基础1

青岛理工大学琴岛学院计算机系实验教材 Linux嵌入式系统 实验指导书

青岛理工大学琴岛学院计算机科学系 二0一0年四月

前言 随着后PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。 硬件方面,各大电子厂商相继推出了自己的专用嵌入式芯片,漫天而至的是mp3,PDA,无线上网装置,让人们充分感受到了这股强劲之势;软件方面,在Vxworks、pSOS、Neculeus 和Windows CE等嵌入式操作系统引领下,也出现了空前繁荣的局面,但这些专用操作系统都是商业化产品,其高昂的价格使许多面向低端产品的小公司望而却步,并且其源代码的封闭性也大大限制了开发者的积极性。 近两年在我国登陆并蓬勃发展的Linux,也已广泛应用于各类计算应用,不仅包括IBM 的微型Linux腕表、手持设备(PDA和蜂窝电话)、因特网装置、客户机、防火墙、工业机器人和电话基础设施设备,甚至还包括了基于集群的超级计算机。Linux在高端服务器的优越表现及其天生具有的突出特点,就注定它必将在低端嵌入式系统中再次给人们以惊喜,而基于嵌入式Linux操作系统的应用,必定给我们未来的工作和生活带来翻天覆地的变化。 Linux价格低廉、功能强大,可以运行在X86,Alpha,Sparc,MIPS,PPC,MOTOROLA,NEC,ARM等硬件平台上,而且开放源代码,可以定制。我们所介绍的硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-CUP 3000 平台、UP-CUP 2410-S 平台系列以及UP-CUP P270A 平台系列实验仪器。UP-CUP 3000 平台的CPU为ARM7TDMI内核的三星 S3C44B0X01芯片,由于没有MMU(内存管理单元)只能运行uClinux,UP-CUP 2410-S 平台系列的CPU为ARM920T内核的三星S3C2410芯片,由于有MMU可以运行标准的ARM-LINUX 内核。UP-CUP P270 平台系列实验仪器为Intel XSCALE ARM10系列CPU。通过这些硬件平台,我们可以学习嵌入式LINUX中的针对有MMU和无MMU的不同开发过程。UP-CUP 3000 平台和UP-CUP P270 平台系列产品及其相关资料可以访问博创公司的网站获得。本书以 S3C2410系列中的UP-CUP S2410 经典平台为例,详细介绍嵌入式 Linux的开发过程。 指导书参考与引用了许多相关资料,在此一并致谢。本指导书仅供内部学生学习使用。由于时间仓促,编者水平有限,书中疏漏之处在所难免,欢迎读者批评指正,并提出宝贵意见和建议,以便不断改进。 编者江艳飞 二0一一年四月 目录

初学者硬件开发步骤

嵌入式系统硬件开发自学方法简介 1.概述 最近因为工作的缘故,接触到了100多人的2012年的大学毕业生,他们今后的工作方向都是嵌入式系统的开发,具体来讲,也就是即将从事基于Android的智能手机、平板电脑等设备的开发,从我与他们的交流的情况来看,他们的困惑很多,具体表现以下几个方面: 1.1.想从事硬件开发的人,不知道一个硬件产品是如何做出来的,只有少数的人能够绘制简单的原理图和PCB,很多人对此几乎是一无所知。 1.2.一些想从事软件开发的人,分不清什么是驱动软件开发、上层应用软件开发,很多人只有点基本的C、C++语言的概念,在学校里自己写过几百行代码以上的人,也是寥寥无几,几乎搞不清楚自己以后到底想干什么和自己到底适合做什么工作。 1.3.因为开发一个产品是个复杂的事情,很多毕业生几乎是无法自己决定如何入手来开始他们的学习过程,基本上处于迷茫中。当然也有一些在学校参与过一些竞赛的同学,有一点基础的知识,绝大多数的人都需要重新开始思考他们该如何融入今后的工作。 1.4.基础知识薄弱,很多想搞硬件设计的人搞不清楚一些基本的模拟电路、数字电路的工作原理,想搞软件开发的人,对于软件编程的理念也了解不深,几乎都需要重新培训。 2.硬件开发学习的几个过程介绍 2.1.设计一个最小的基于单片机的嵌入式系统 任何硬件系统的设计,都要绘制原理图、印刷电路板,因此学会使用一种绘制原理图和印制板软件的使用,是未来从事硬件设计的基础,建议可以先购买一套简单的基于单片机的开发板,然后自己再将其复制出来,来锻炼自己的设计能力,这样子做有如下几个优点: 2.1.1.可以锻炼自己绘制原理图和印刷电路板的能力。 2.1.2.不用自己编写软件来测试自己的设计,可以利用开发的测试程序来验证自己的设计是否正确。 2.1. 3.可以锻炼自己采购器件的能力。 2.1.4.可以锻炼自己使用基本的工具的使用能力,例如:电烙铁、万用表等等。 2.1.5.花费比较低,一个人独立承担的话,也就是500元左右的花费,如果几个人合作开发的话,每个人花费100元左右就可以了,与学到的技能相比,这点花费根本算不了什么。 2.1.6.可以锻炼自己的综合素质,至少也可以了解一下如何将示范软件在自己设计的系统上运行起来,也可以了解一下嵌入式系统软件是如何开发出来的,为以后与软件设计人员在一

嵌入式软件开发入门教程

C语言是嵌入式软件开发人员必须熟练掌握的编程语言。作为C语言的初学者重点掌握基本数据类型、复合数据类型、流程控制、数组、指针、函数这几方面的基本知识。本人建议通过观看视频教学的方式进行学习,这样既快速又通俗易懂,当然前提是必须找到优质的教学视频资源。此外,可以配合入门书籍谭浩强的《C语言程序设计》进行学习。如果想深入的学习可以参考美国人写的人民邮电出版社出版的《C Primer Plus》。 方法/步骤2: C语言的磨炼 掌握了基本的C语言语法以后并不代表我们就学会了C语言,关键是如何灵活的去运用。我们可以练习编写C语言学习书籍的课后习题或者在网站上搜索C语言笔试题库进行练习。也可以百度寻找经典的C 语言编程案例进行学习。总之,就是将C语言运用的越熟练越好。至于开发环境可以选择VC++ 6.0 或者linux。 方法/步骤3: 硬件电路基础

嵌入式软件工程师还必须懂一些硬件电路的基本知识。当然,对于刚入门的软件开发人员没必要非常精通电路技术,熟悉基本的电子元器件的功能即可。例如,电阻、电容、电感的作用以及符号,三极管、MOS管导通截止的条件,微处理器、晶振的基本概念等。至于,以上这些基本知识我们可以通过童诗白的第四版《模拟电子技术基础》和网上查阅的资料进行学习。 方法/步骤4: 如何看懂原理图 作为嵌入式软件开发人员我们经常会和硬件打交道,我们的程序最终会被烧录到微处理器内部运行。所以,我们必须要会看硬件原理图,看懂之后才知道如何写程序。首先,我们要知道嵌入式硬件最小系统的组成部分,包括电源电路、晶振、微处理器、复位电路。然后以微处理器为中心向四周查看,主要看我们可以操纵的外设资源。以上知识的学习我们不妨经常浏览一下某些知名IT网站其他人上传的经典原理图。 方法/步骤5: 基本外设知识

经典嵌入式面试题

经典嵌入式面试题 C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不上在嵌入式系统上。如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去做这份工作。 从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解应试者C语言的水平。不管怎么样,看一下这人如何回答他不会的问题也是满有趣。应试者是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问题上卡住时是找借口呢,还是表现出对问题的真正的好奇心,把这看成学习的机会呢?我发现这些信息与他们的测试成绩一样有用。 有了这些想法,我决定出一些真正针对嵌入式系统的考题,希望这些令人头痛的考题能给正在找工作的人一点帮住。这些问题都是我这些

年实际碰到的。其中有些题很难,但它们应该都能给你一点启迪。 这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。为了让你能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为你所用,请自行按你的意思分配分数。 预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: ?; #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) ?; 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 ?; 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 ?; 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。

嵌入式工程师入门所需的基础能力

嵌入式工程师入门所需的基础能力 [缘起] 我自2002年接触单片机至今,已走过了15个年头。虽不是嵌入式应用行业出色的工程师或行业大牛,然一直都在嵌入式开发和物联网应用领域从事教育和开发工作。这几天正好为新学期的《物联网硬件技术基础》备课,对嵌入式应用工程师或者硬件工程师的入门所需基础能力做了小小的梳理。 这对于已在嵌入式应用行业耕耘多年的技术大牛来说,意义已经不大了,然而,对于刚刚入门或准备入门的嵌入式应用开发者来讲,我就斗胆和大家分享一下我体会和经验了。 【如何才算嵌入式工程师入门了?】 嵌入式应用工程师是一个软硬件兼顾的职业。当然,到了具体的工作岗位可能会有嵌入式硬件工程师和嵌入式软件工程师之分等。不管怎么细分,只要是做嵌入式应用开发的,你设计的软件就要在硬件上跑,你不熟悉硬件平台可以吗?你设计的硬件,也要考虑软件上面的事情,没有一定软件设计思维也是不行的。 对于一个嵌入式应用开发的入门者来说,是没有软件和硬件的偏向之分的,至少我是这样认为。因为对于基础的技能,必要有一个全面的掌握,这样你才能在嵌入式开发的道路上走得更远,才能具备从入门走向优秀的可能。 那么,如何才算是嵌入式工程师入门了呢? 我认为,至少能够独立设计和制作出一款嵌入式应用系统,就算是很少很小的系统也可以。 那么,要完成一款嵌入式应用小系统,你至少要做下面的一些工作: 1.设计并确定系统的功能模块,形成初步的设计概要文档。 2.选择嵌入式微处理器,确定系统的功能框图。 3.对主控芯片的引脚进行定义,形成引脚功能分配表。 4.根据功能框图,对主要的元器件进行选型。 5.设计并确定各个功能模块的电路设计细节。 6.利用Protel等电路设计软件,设计电路原理图。 7.原理核查无误,开始设计PCB图,并形成BOM表。 8.选择合适的厂商,委托其制作电路板,并购买电子元器件。 9.焊接电路板,并进行简单的测试,确保不短路、无虚焊等。 10.编写程序,对各个功能模块进行测试,确定都能正常跑起来。 11.编写和测试相应的应用程序。 12.整理资料,形成开发文档,如有必要,还可以记录自己的开发心得。 也许有人要问,入个门真的要这么复杂吗?现在有很多培训机构,上来就学习操作系统移植、驱动程序编写、项目应用开发,既高端又快速。我也不否认,这也是一条嵌入式应用快速成长的途径。如果你具备了上面描述的能力之后,再

Arm11开发板

Arm11开发板: 一、飞凌ARM11 OK6410 开发板(4.3LCD 256MB/2GB FLASH Android) 网址: https://www.wendangku.net/doc/aa4486583.html,/item.htm?id=7113066007&wwlight=cntaobaote2410-%7 B7113066007%7D 淘宝价:598 分为A板(双层板)和B板(单层整体板) 支持的操作系统:微软操作系统:WinCE7.0/WinCE6.0 Linux操作系统:2.6.28/2.6.36.2 谷歌操作系统:Android2.3.4 部分模块功能: 连接器OK6410-A采用通用0.8mm间距镀金连接器,在工控行业中应用十分广泛。其优秀的稳定性在飞凌承接的诸多项目中得以充分检验。而其他设计所用的2.0mm排针连接器插拔 次数有限,一般仅用于评估板中。此外,OK6410所用连接器可实现全机器焊接,杜绝 虚焊情况。而2.0mm排针只能通过手工焊接,不宜量产且容易虚焊。 核心板OK6410核心板引出320个管脚,几乎包括所有IO和总线XM0,可以满足各种扩展与应用需要,最大限度的发挥6410的能力。对于简单应用,可只连接需要的管脚,保留其 他部分。而“系统总线多会影响系统稳定性”的说法,纯属无稽之谈。按照这样的逻辑, 使用总线扩展芯片来扩展接口的产品系统就会不稳定,这与事实完全相违背。核心板引 脚过少势必导致集成度底、扩展能力差。值得说明的是,核心板作为二级受电模块,对 电源输入范围要求极小,比较核心板电压输入范围毫无意义。 液晶屏OK6410-A的液晶屏置于核心板上方,是出于对核心板免受外力撞击的保护设计考量,并且液晶屏与底板用螺丝固定,拆装方便。这是实际项目中最常用的设计方式。OK6410-A 的底板可固定3.5、4.3、5.6寸液晶屏,这在我们提供的产品图片中可清楚看出。对于 6410处理器来讲仅有一个LCD控制器,所谓3路LCD接口其实同一时间仅能实现一路 显示,另外两路纯属摆设。我们采用最通用的接口形式,可满足各种型号LCD屏。 原理图核心板提供的PADS和PDF两种格式原理图,底板为protel原理图及PCB布线图。RAM 提供128M和256M两个版本,用户可根据需要自由选择,让开发更具针对性。 Flash S3C6410处理器最大支持到8bit纠错,可完全满足UOM和UOD纠错要求,而UOE需要12bit纠错算法,已超出6410纠错范围,长期使用会导致数据紊乱,系统不稳定。 串口OK6410引出1个RS232和3TTL电平的串口,如需更多232串口,我们配套提供专业扩展模块。 按键OK6410-A提供6个独立按键 OK6410-B提供8个独立按键,并独家支持矩阵键盘,最多可额外扩展64个按键。完全满足各类按键应用需求。

相关文档
相关文档 最新文档