第一篇:嵌入式软件开发学习历程之经验谈
嵌入式软件开发学习历程之经验谈
我是今年5月份到粤嵌教育去学习嵌入式软件开发的,还没开始学习的时候,我看了一些有关嵌入式软件开发的教学视频,当时觉得很难,老是理不清思路,我想我死定了,去粤嵌培训的钱会不会白交了。但到粤嵌学习一个月后,我开始有了清晰的学习开发思路,学习起来十分得心应手。下面我就谈谈在粤嵌的学习经验吧,给想学习嵌入式软件开发(http://www.xiexiebang.com/topics/project/)的各位朋友留下点建议。
嵌入式软件开发并不像想象的那么难,主要是因为有硬件开发板,一般人敬而远之,其实对于高校理工科的毕业生(如自动化、电子、信息等专业),懂一定的C语言知识,是否懂硬件其实关系不大,这样的条件就可以学习嵌入式软件开发了,现在,嵌入式的人才很多都是半路出家,由其他的行业转行过来,由于没有系统掌握嵌入式的相关知识,对于这部分人,企业其实是不满意的,这也是需要到专业的培训机构去培训的原因,并寻找项目实践的机会,增加项目经验,只有这样才能弥补横在企业与求职者间的鸿沟。“开放式实验,企业化运作”这一原则贯穿了整个嵌入式开发(http://www.xiexiebang.com/topics/project/)过程,粤嵌教育给我提供的是真正的项目实战,真正企业所需要的技术能力,深入浅出地把我带入嵌入式的世界,帮助我学到实质的操作技能。
第二篇:嵌入式linux学习经验谈
打印版本,(转载)前面废话省略,进入正题:
一、废话(已删)。
二、起步:你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix
如何选择版本:北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的linux开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。
对于初学linux的人来说,我建议是使用redhat,原因如下:
1)现在很多书都是以redhat为例讲的,为了与书本协调一致
2)周围的人都用redhat,交流比较方便
3)redhat应用范围广,有典型性和代表性
4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上而应集中精力学习最有用的东西。
【注】现在觉得RH很死板,AS,ES等用在服务器上或许不错,Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake,因为她长得漂亮:)
如果你并不打算深入学习linux,而是有诸如适应北京市政府办公平台迁移到linux上这种需要,那么中软,红旗等中文linux是不错的选择
我强烈建议:自己亲自动手把linux装到你的硬盘上,你必须学会独立安装linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单
从此现在开始,请不要以windows的工作方式来考虑问题,应该尝试挖掘linux身上的“天才unix”的气质。
三.进阶
掌握至少50个以上的常用命令
理解shell管道“|”,文件流重定向“>”及追加“>>”等
熟悉Gnome/KDE等X-windows桌面环境操作
掌握.tgz.rpm.biz等软件包的常用安装方法
学习添加外设,安装设备驱动程序(比如modem)
熟悉Grub/Lilo引导器及简单的修复操作
熟悉系统固有目录的名称及公用
学会用mount命令访问其他文件系统
了解vi,gcc,gdb等常用编辑器,编译器,调试器
学习linux环境下的简单组网
建议:买一本不需要太厚的linux教材,大致可以满足要求(现在的书越来越多了,还带很多图,我当时可没这么多书)
四.高级应用
澄清一些概念:linux的普通操作与真正的系统管理不能相提并论,后者需要很多知识
1.英语
即使你不学linux,我也强烈建议你学好英文[U.S.english]。因为实质上计算机语言就是英文和字符,所谓的多国语言只是外部包装。你必须能无障碍的阅读大量的英文技术文档在搜索引擎找到的英文网站和网页中熟练的检索最好能有用英文直接交流的能力,摆脱了这个障碍,你的学习和理解速度就能快很多,你就有机会拉开和别人的差距。
2.shell[sed/awk]
shell是命令解释器,是内核与用户界面交流通道,shell写的小脚本有点类似于win下的.bat但shell比.bat强大的多,shell不只是解释命令,更是一种编程语言,有时候几百行的c用shell几十行就能代替完成工作,因为shell的工作方式建立在系统已有的众多应用程序之上
这也是CS中的一个重要思想。此外,shell可以实现工作自动化,这个概念也比较重要sed,awk用来处理文本,历来很常用。
3.Perl/PHP
漂亮的脚本,CGI的首选,比ASP好,应用面很广
4.CC++
C、C++是linux/unix的核心语言,系统代码都是C写的5.ASM
系统底层及内核,硬件,设备驱动程序,嵌入式开发都需要。//走核心路线的话,cc++,asm最重要
6.Java,Python,Tcl,XML
五、系统管理篇
在熟悉linux的基础上还需要掌握至少一种unix。我首推Solaris,其次是FreeBSD比如运营级系统一般是
Solaris+Oracle/DB2之类的学习apache、ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、MySQL/PostgreSQL/Oracle、Bind等各种应用服务器的构架及电子商务的应用熟悉TCP/IP协议族,学习诸如apache+php+proftp+mysql+quota的实现以及大型局域网,分布式集群等各种企业级应用解决方案熟悉多用户管理,数据库管理,文件系统,逻辑存储管理,日志分析,备份与灾难数据修复系统补丁,内核升级,以及在此基础上的防火墙构架等以保障系统安全在内的各种系统管理技能。我觉得,如果在此基础上再掌握路由/交换设备便是一个不错的系统管理员
各种基于linux的解决方案可参考相关书籍和文献,必要时用google或各大linux站点站内搜索引擎寻找最新文档,以避免错误和漏洞有几本技术大全和技术内幕我认为都是这方面不错的书
六、深入学习linux
我个人理解的读linux内核需要的基础:在此之前,希望先把应用层的东西学一下,那样会比较好理解
1.C
如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种),建议再看一下《The C Programming Language》Second Edition这本圣经(如果想学缓冲区溢出,这点C的功力可能是不够的,还有
2.asm(AT&T语法,保护模式)
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍有80x86 Intel语法的基础就行,有兴趣可以看看Intel的官方网站
3.数据结构(离散数学)
计算机专业的核心课程,重要性我就不说了
4.操作系统原理
看懂这个再去读linux吧
5.微机原理/组成原理(数字电路)
底层直接和硬件打交道,所以这个也要
6.了解linux/unix
我想至少你要会操作吧,了解unix的API
7.软件工程/编译原理
这方面的经典书去可以搜到很多我觉得APUE这种书不适合初学者,还是先看看UPE之类的吧。APUE: 《advanced programming in the unix environment》,中文名《unix环境高级编程》,作者:W.Richard.Stevens(共有6本经典),尊为“圣经”。他的书为全世界黑客所拜读!UPE:《unix programming environment》,中文名《unix编程环境》比较适合初学者的,深入浅出,其中有一些比较重要的思想。
另外,介绍linux下应用层编程的书也有很多,比如
在这里你能明白“黑客”及“haching”一词所代表的真正意义.希望我写的这篇文章能造就更多的黑客,而不是骇客七、一些资源
// 下载软件不错
.cn
学习嵌入式系统的经验【转载】
实践当然是最锻炼人的方式,但是我想在校生很少有这样的机会,别说本科生,硕士生也未必有条件。所以我想学习嵌入式要从个人的知识背景和现实条件出发,订立合适的阶段目标,在允许的条件下多动手多思考。
三、一般情况下硬件设备是比较短缺的,所以可以在软件方面和嵌入式系统开发模式上下功夫。提醒大家一点,嵌入式系统开发设计的内容很多,所以大家不要乱,在了解嵌入式系统开发的体系结构后,一步一步的下手,最容易上手的是Linux
下的C,比如uC/OS II(有开放源代码),虽然可能无法在硬件上仿真,但也不必着急。无论对初学者还是自以为是高手的人来说,编程水平(这可不受硬件条件限制)绝对是没有止境的。而锻炼编程水平需要的条件只是一台PC而已,条件比较容易具备。有了较高的编程水平(嵌入式主要是C,当然OO的几种语言c++,java是发展趋势),等到有机会的时候及时补充硬件知识,会很快成为高手的。
四、还有,一定记住,学习嵌入式,“要想办法,不要找理由”。当年在dos下用tc编程时的条件,现在回想起来简直就是奇迹。
五、我推荐一条发展道路吧,仅供参考,六、1、C开发经验
条件:Linux
方法:随便,主要是掌握ANSI C编程(不包括gtk,qt等图形可视化开发)
七、2、网络、操作系统、体系结构
条件:Linux,各种书,算法、例程。
方法:通过C编程实现简单的网络等知识的算法和过程。
八、3、嵌入式系统概念
条件:各个嵌入式网站,讨论组,书籍
方法:少提问(尤其是等着天上掉馅饼,这主要是防止增长惰性,也解决不了实际问题),多思考。
九、4、嵌入式开发实践
条件:各种嵌入式系统开发工具的demo版,包括编译器,仿真器。可以找高手们要,也可以下载。
方法:这里有两个分支,一个是基于MCU/MDSP的嵌入式系统开发,一个是象Palm OS,WinCE,uC/OS II等RTOS下的应用软件开发。对硬件感兴趣,想成为真正高手的由第一个分支入手,以后进入第二个分支;如果十分厌烦硬件,只想停留在软件开发上的,可以只由第二个分支入手,以后就和pc上的开发没有什么本质上的区别了,找份不错的工作应该没问题,可以不用进行下面的步骤了,感兴趣可以参考第6条。
十、5、硬件开发
条件:各种嵌入式芯片、存储器等电路器件,protel99等电路设计软件,电路板制作。
方法:这时候该有开发条件了,最起码是51系列,这个比较方便。电路的设计内容较多,不过看起来吓人,实际上比软件要简单的多。只要下功夫,实践会告诉你一切。
十一、6、硬件工程/软件工程/项目管理
条件: 各个芯片详细资料和使用经验,软件工程知识,项目管理知识,培训,大型项目
参与经验方法:已经是高手了,但是学无止境,沾沾自喜于已有的知识是致命的。那个下一步。你该是管理者了。
十二、抛砖引玉,以上出自我的经验,欢迎各路高手们补充,初学者提问。
【后记】嵌入式系统,从小的方面来说,大家都做过。一个单片机为核心的小的电子系统,包括了软件和硬件。但是,在很多人的心目中,单片机就是51,软件就是自己从头用汇编写的监控程序,然后实现自己的功能。事实是这样的吗?单片机==51吗?市场上的单片机何止上千种,从4位到8位到16、32、64位,功能差的只有控制功能,功能强的运算能力超过一般台式机,我们所作的,是根据自己的需求,熟练程度,资源以及性价比来选择所需。拿我比较熟悉的ARM来说,移动通讯市场的控制器至少85%采用ARM作为其内核,手持设备以及嵌入式装置的市场份额其至少占60%,但我估计大部分的同学可能还不知道ARM是个什么,更别说去搞基于ARM的开发了。同样从软件的角度来讲,嵌入式系统的规模越来越大,对可靠性和实时性的要求越来越高,再也不是自己从头做一个监控程序,利用键盘驱动的时代了,大多数的嵌入式系统都采用了操作系统。这就对开发人员提出了更高的要求,需要对操作系统的原理比较了解。大家也许学过操作系统,但有几个人去接触过操作系统的源代码呢(当然,也许大家读过Linux的源代码,不过规模较大)。
第三篇:嵌入式软件开发工程师
嵌入式软件开发工程师:将软硬件完美结合嵌入式软件开发工程师——职业概述
嵌入式软件开发工程师是利用嵌入式技术设计、开发、维护、管理符合功能、性能要求的软件产品的工作人员。他们为改变人们的生活创造了种种便利条件,他们开发的各种软件正在不同的嵌入式系统中为人们的生活和工作“不辞辛苦”地运行着。
嵌入式软件开发工程师——职业大揭秘
揭秘一工作内容
1.从事数据产品嵌入式(底层)软件开发和设计工作;
2.进行数据产品相关软件子系统的方案设计;
3.进行数据产品相关的技术交流、标准及专利相关工作;
4.进行嵌入式软件系统的需求分析和模块设计;
5.对客户的软件技术进行支持。
揭秘二职业要求
在专业方向和学历水平上,嵌入式软件开发工程师应具有本科及以上学历,计算机、电子、通信及相关专业毕业。而具体的实践经验和工作能力方面,精通C/C++语言,有扎实的编程基础和一定的编程经验;熟悉软件项目的一般开发流程;熟悉ARM或其他微处理器架构;除此之外,良好的沟通和团队协作能力也是必不可少的。
揭秘三职业前景
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统产品正不断渗透进各个行业,作为包含在这些硬件产品中的特殊软件形态,其产业增幅不断加大,而且在整个软件产业中所占的比重日趋提高。
据预测,在未来的几年内,嵌入式系统的发展将会为几乎所有的电子设备注入新的活力,加上Internet的迅速发展和廉价微处理器的出现,嵌入式系统将在我们的日常生活里形成一个更大的应用领域。
家电的智能化也为嵌入式开辟了广阔的空间,像我们平常常见的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(SetTopBox)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都可以应用在嵌入式系统中。
揭秘四薪酬水平
手机和3G成为业内焦点后,在就业市场上嵌入式软件工程师开始紧俏,其工资水平也相应攀高,比其他IT业界同行大约高出50%。初入门的开发人员平均月薪一般都在5000元左右,有3年以上经验者年薪大都在10万元以上,有10年工作经验的高级嵌入式工程师年薪可达30万元左右。在一些大城市,比如北京,一个成熟的嵌入式软件工程师平均月薪在8000~10000元之间。嵌入式软件开发工程师职业发展“路在何方”
嵌入式学院负责人、北京华清远见嵌入式培训中心总经理季久峰认为,从事嵌入式工作有两大优势:一是工作强度相对较低。做嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事,所开发的产品通常是通用的,不会因客户的不同而修改,一个产品型号开发完了,往往还有较长一段空闲时间进行充电和休整;二是职业发展相对顺利,从事嵌入式软件的人,所涉及的专业技术范围终究有限,经验的培养,指日可待。
以上都是针对求职工作而言的,若对于个人整体发展来说,如果想创业,做自己的产品,那么嵌入式就是一个不错的主意,嵌入式软件不会像应用软件那样容易被盗版,而如果开发出专利产品,年薪将不止10万元。
积累丰富开发经验的嵌入式软件开发工程师可以向嵌入式系统开发工程师发展,进而晋升为产品研发经理或IT项目经理。对测试理论和方法有一定了解的嵌入式软件开发工程师还可以转做嵌入式系统测试工程师,最终也可发展为IT项目经理。
嵌入式软件开发工程师的发展路径电子技术研发工程师:电子新技术的开拓者
第四篇:嵌入式软件开发工程师简历
个人简历
姓 名:glzy8.com 性 别:男
出生日期:1984-06-05 籍 贯:北京市
目前城市:北京市 工作年限:应届毕业生
目前年薪:xx万人民币 联系电话:***
e-mail:http://www.xiexiebang.com
应聘方向
求职行业:计算机软件,计算机硬件,计算机服务(系统、数据服务,维修),互联网/电子商务,通信/电信/网络设备
应聘职位:软件测试,技术文员/助理,测试员,系统测试
求职地点:北京市 薪资要求:面议
工作经历
2008/03—现在 ***公司
所属行业:计算机服务(系统、数据服务,维修)
软件开发 软件工程师
主要职责:
1.远程同步嵌入式todolist记事系统;
2.参与todolist记事系统的系统分析和设计;
3.开发了本地数据管理系统,实现数据本地的增删改查的功能;
4.开发了下载和上传引擎,实现mobile与server间的数据同步;
5.设计开发系统控制模块,该模块集成数据模型,数据管理模块和数据通讯模块;
6.设计开发了图形用户界面;
7.在模拟器和真机测试todolist记事系统。
2007/09—2007/11 tom在线
所属行业:互联网/电子商务
网站事业部 网站编辑
主要职责:负责网页内容的更新与维护,独立制作新闻专题。
教育培训
2004/09—至今 北京信息工程学院 电子商务 本科
2008/03—2008/06 渥瑞达symbian os 嵌入式开发
职业技能
外 语: 英语:一般
自我评价
1.熟悉计算机网络,信息安全等相关知识,了解计算机软硬件安装调试;
2.熟悉各种计算机操作系统、熟悉office软件。
3.熟悉sql server数据库操作。
4.精通面向对象的程序设计和开发,熟练掌握c++语言。
5.熟练掌握visual c++、codewarrior、evc等开发工具。
6.熟悉dream wear、photoshop等网页制作软件。
第五篇:嵌入式软件开发工程师简历
嵌入式软件开发工程师简历模板
个人简历
姓 名:58个人简历模板 性 别:男
出生日期:1984-06-05 籍 贯:北京市
目前城市:北京市 工作年限:应届毕业生
目前年薪:XX万人民币 联系电话:***
E-mail:http://www.xiexiebang.com
应聘方向
求职行业:
计算机软件,计算机硬件,计算机服务(系统、数据服务,维修),互联网/电子商务,通信/电信/网络设备
应聘职位:
软件测试,技术文员/助理,测试员,系统测试
求职地点:北京市 薪资要求:面议
工作经历
2008/03—现在 ***公司
所属行业:计算机服务(系统、数据服务,维修)
软件开发 软件工程师
主要职责:
1.远程同步嵌入式TodoList记事系统;
2.参与TodoList记事系统的系统分析和设计;
3.开发了本地数据治理系统,实现数据本地的增删改查的功能;
4.开发了下载和上传引擎,实现Mobile与server间的数据同步;
5.设计开发系统控制模块,该模块集成数据模型,数据治理模块和数据通讯模块;
6.设计开发了图形用户界面;
7.在模拟器和真机测试TodoList记事系统。
2007/09—2007/11 tom在线
所属行业:互联网/电子商务
网站事业部 网站编辑
主要职责:负责网页内容的更新与维护,独立制作新闻专题。
教育培训
2004/09—至今 北京信息工程学院 电子商务 本科
2008/03—2008/06 渥瑞达Symbian OS 嵌入式开发
职业技能
外 语: 英语:一般
自我评价
1.熟悉计算机网络,信息安全等相关知识,了解计算机软硬件安装调试;
2.熟悉各种计算机操作系统、熟悉office软件。
3.熟悉SQL server数据库操作。
4.精通面向对象的程序设计和开发,熟练把握c 语言。
5.熟练把握Visual C、CodeWarrior、EVC等开发工具。
6.熟悉Dream wear、Photoshop等网页制作软件。