1. 嵌入式开发培训都有哪些内容
职业专家介绍,目前培养嵌入式人才的主要通过两种途径:一种是高校开设嵌入式专业课程,另一种是通过专业的嵌入式培训机构培养企业所需的人才。本课程是为了适应目前发展迅速的嵌入式linux需求而设计,课程目标是让学员达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质。课程循序渐进的带领你进入嵌入式开发的世界,采用了目前应用最广泛的软硬件开发平台(Linux和Arm),可以保证你尽量贴近目前企业的需求。 嵌入式培训课程内容: 第一阶段:嵌入式C高级编程 1.嵌入式C语言高级编程 2.嵌入式C语言经典数据结构及算法编程 3.项目实战(一)《lrc歌词解析器》 在嵌入式领域中大部分开发都会用到C语言。C语言简洁、紧凑、使用方便灵活加上GNU在实际项目开发中所做的扩展,使得C语言在整个嵌入式开发过程中起着至关重要的作用。更重要的是用C语言开发的程序在嵌入式平台下可移植性比较强。一个精通C语言程序设计的程序员,可以很容易地从事Linux、WinCE、Vxworks、μc/os等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、巩固C编程语法基础,以及深入C语言高级编程和数据结构与算法,为将来的程序设计工作打下坚实的基础。 第二阶段:Linux应用及系统编程 1.Linux操作系统应用开发 2.嵌入式Linux高级系统编程 3.嵌入式数据库--SQLite 4.项目实战(二)《Mplayer播放器》 5.Linux网络编程 6.项目实战(三)《基于Linux的信息交换系统》 7.C++及基于QT的GUI开发 8.项目实战(四)《网络游戏对战平台》 嵌入式Linux应用开发和系统开发是嵌入式Linux中非常重要的一部分,也是企业人才需求最广的一部分。本阶段学习的主要目标是精通嵌入式Linux下的应用程序设计,熟练掌握嵌入式Linux的开发环境、常用Linux命令,精通Linux系统编程、网络编程、QT GUI编开发,熟练掌握整个嵌入式Linux项目开发流程,提升学员对Linux应用开发的能力。 第三阶段:嵌入式Linux平台开发 1.ARM体系结构 原理分析及其移植 2.ARM处理器编程 原理分析及其移植 3.基于ARM裸机驱动开发 原理分析及其移植 4.嵌入式Bootloader 原理分析及其移植 5.自制嵌入式系统启动代码 (Bootloader) 6.嵌入式Linux内核工作原理 分析及其移植 7.Linux内核调试技术 8.嵌入式Linux根文件系统 组成分析及其制作 8.嵌入式Linux开源工程 源码分析及其编程 9.项目实战(五) 《Web应用开发技术》 本阶段将使学员掌握从零开始搭建嵌入式Linux运行环境。首先通过基于ARM Cortex-A8处理器S5pv210了解芯片手册的基本阅读技巧,掌握S5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。 第四阶段:嵌入式微处理器及Linux设备驱动开发 1.ARM硬件接口原理 2.嵌入式Linux设备驱动开发 3.嵌入式Linux高级驱动程序设计 4.项目实战(六) 《重力感应实战系统》 驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段课程让学员熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。 相关标签:嵌入式培训、嵌入式学习、北京嵌入式培训
2. C++VCVB 三种编程语言各个的优点和缺点。
而VC和VB是编译器并不是语言;
C语言:结构化程序,编程语言中比较早,而且方便使用的语言;
C++:在C上发展而来,支持多种范式变成,其中包括:结构化,抽象数据类型模型,面向对象编程,泛型编程;
VC:一个编程的工具而已,适合用它开发windows程序;
VB:这个采用VB语言的一个编程工具,图像处理方面有优势;
java:也是多范式编程语言,但表达能力比C++弱的多,主打跨平台。
优点:
编程太苦太难了,啥办法能轻松写意一些?
"这里,给大家介绍一个优秀编程软件―Delphi。
Delphi是Borland公司推出的可视化开发平台
Delphi的妙处在于它易学易用而又功能强大,在许多地方无论是初学编程者还是专业程序员都钟情于它,因为它使编程工作变得轻松愉快、充满趣味。
只要你会摆弄鼠标,就能用Delphi来创作自己的应用程序。
Delphi的代码是用Pascal语言编写的。
但初学Delphi并不需要太多Pascal语言的语法知识。
因为在学习过程中,可以把"帮助"中提供的例子修修补补,实现自己期望的功能。
缺点:
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦
地位:
据说是当今世界上最优秀的W indows开发工具
它可以创建任何一个Windows应用程序。
价格一样的
PS4优点就是性能强一些,亚洲区玩家数量很拦前多,目前出的独占质量非常高,还有很多游戏公司重点跟索尼合作而带来的福利,而且游戏折扣较为频繁,均价便宜一些
缺点的话,PSN会员要贵一些,而且每个月送的游戏质量比起XBOX ONE差一点
手柄可能不是那么的给力,较XB1来说,但也已经非常舒服了
XBOX 优点首要就是体感了,非常给力
而且有独自的EA ACCESS会员,一年花一个游戏的钱可以玩EA十几个大作,战地4啊硬仗啊泰坦陨落等等,新作发售半年也会登录会员
XBOX手柄总体感觉比PS4舒服些,尤其是FPS游戏
网络上微软也要好一点
缺点的话,XBOX游戏画质比PS4弱历锋那么一点,当然除非死死盯着找差别不然根本是没什么感觉的,亚洲区微软玩家少些,联机搜起来就没索尼那么快
机器别买国行,受限很多不给力
c:结构化程序
c++:支持多种范式变成,其中包括:结构化,抽象数据类型模型,面向对象编程,泛型编程.
VC:他是个编程的工具而已,适合用它开发windows程序.
VB:这个采用VB语言的一个编程工具.
JAVA:也是多范式编程语言,但表达能力比C++弱的多.它鼓吹什么跨平台...我晕...
类:
• Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
• Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的肢衡晌POJO对象都可以用作Struts2的Action对象。
线程模式:
• Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
• Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
Servlet 依赖:
• Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。
• Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。
可测性:
• 测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)。
• Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。
捕获输入:
• Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存在的JavaBean(仍然会导致有冗余的javabean)。
• Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过 web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种 ModelDriven 特性简化了taglib对POJO输入对象的引用。
表达式语言:
• Struts1 整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。
• Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--"Object Graph Notation Language" (OGNL).
绑定值到页面(view):
• Struts 1使用标准JSP机制把对象绑定到页面中来访问。
• Struts 2 使用 "ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。
类型转换:
• Struts 1 ActionForm 属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。
• Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。
校验:
• Struts 1支持在ActionForm的validate方法中手动校验,或者通过Commons Validator的扩展来校验。同一个类可以有不同的校验内容,但不能校验子对象。
• Struts2支持通过validate方法和XWork校验框架来进行校验。XWork校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性
Action执行的控制:
• Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。
• Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。
——————————————————————————————————
个人觉得Struts1是基于servlet开发,Struts2是基于Filter开发,相对于现在的企业来说Struts1的技术成熟,便于维护,而且现在的许多程序员使用SSH框架时,还是多选用struts1来开发~~
当然Struts2安全性比Struts1要高~~
最大的不同就是系统与屏幕,g8的安卓系统是时下热门,拥有丰富的第三方软件,而m8的winCE只有一些民间制作的软件够是绝对够用了,但值得一提的是,m8现在可以刷安卓与winCE双系统但多多少少还有些问题;至于屏幕,很明显,m8远远优于g8,如果说系统是m8的硬伤,那g8的硬伤莫过于屏幕了!
2009年2月TIOBE编程语言排行榜发布,与去年同期相比,Java和C仍然位列第一、第二,C++由第五位上升为第三位,把VB、PHP挤到了第四、第五,C#由第8位升到了第6位。经过08逐决前三甲已被Java、C、C++牢牢占据。
---------------------
排名 语言 百分比
---------------------
1 Java 19.401%
2 C 15.837%
3 C++ 9.633%
4 (Visual) Basic 8.843%
5 PHP 8.779%
6 C# 5.062%
7 python 4.567%
8 Per 4.117%
9 Delphi 3.624%
10 JavaScript 3.540%
其实编程思想是相通的,不管你用哪一门语言
C语言的易读性比较好,在测试的时候如果出了问题一般来说测试员比较容易找出来。
C++是在C语言的基础上发展起来的,它的功能更强大一点
C 是面向过程的。C++是面向对象的,但是完全包含了c的内容。java是纯面向对象的。ruby是面向对象的脚本语言(前三种是编程语言)。所谓面向对象就是涉及到了类的概念。
3. 学习编程,用什么编程软件
当然是C++.简单易学。初期用C++适应编程的基本规则是很方便的。
问题中提到的其他语言都是建立在C++的基础上的,初学的话难度较大。C++容易上手,基本上所有语言都是建立在c++的基础上的。能与c++相比的只有Java。但是-----
相对C,Java作为现代语言,具有非常丰富的语法特征,如模块和类,不像C随操作系统和编译器的不同有极大差异,Java是一个公司的产品,具有唯一的API,因此,Java程序员没有语言隔阂。有人认为Java根本是一个平台,并非真正的跨平台。
相对跨平台的语言来说,Java具有最好的图形界面编程API。
Java所有的API都是类库,相对C的函数来说,是非常大的进步。Java具有现代语言几乎所有的特征。
Java最大的缺点,是它被一所公司控制着。
Ada。
也就无法按自己的想法做出所有适合自己程序
4. 什么是嵌入式开发嵌入式工程师可胜任哪些岗位呢
嵌入式工程师有哪些岗位吗?大概薪资多少钱?这些问题,都是大家比较关心的话题,今天小编就简单聊聊哦!
首先我们先来了解一下嵌入式工程师在工作岗位上都做些啥:
嵌入式驱动工程师:编写和移植各种芯片驱动(如音频芯片),优化硬件设备驱动(如温湿度传感器),得精通各种硬件接口协议(如I2C协议)、系统调度、信号量、锁机制等等,开发难度最大。
嵌入式系统工程师:主要是编写固件,根据不同平台移植操作系统,根据应用场景来优化系统,需要熟悉整个操作系统组成与调度,对固件的稳定性高求很高,如果系统不稳定,驱动和应用也是白做的。
嵌入式应用工程师:编写业务逻辑程序,调用驱动工程师提供的接口控制设备,软件开发过程所涉内容范围非常广,主要使用C语言开发,但经常会涉及C++、Java、python、Java、PHP等各类语言以及各种脚本语言、数据库、前端后台、各种通讯协议、甚至一些从来没听过的协议或概念。
无论是哪一类嵌入式工程师,都需要有足够强大的技术功底,以及非常重要的一点就是坚持不懈的学习。
嵌入式软件工程师的月薪平均是多少呢?
目前来讲,一些小公司更愿意去找能直接创造价值的成熟工程师,月薪不用说至少都是1W起,甚至为了挖人,开的更高,否则根本留不住人。但像阿里、网络、这些大厂,他们也都在做智能产品。嵌入式软件工程师据了解是15-30K,12薪是最基本的行情,还有就是一些老牌的嵌入式产品的企业,月薪也相对可观,整体月薪位于25K-40K之间吧。
所以就目前的形式来看,嵌入式就业还是不错的,并且和上层的软件开发比起来,嵌入式开发面对更少的需求更改,版本迭代,让工程师避免重复的、没有创新性的赋值粘贴,有理由工程师的个人成长,因此在择业时选择嵌入式还是一个不错的选择
5. 有没有嵌入式开发的学习路线,越详细越好
看方向
如果选择嵌入式硬件开发,就不懂了
软件开发的话,分底层和应用层
我是从事wince驱动开发的(快满一年),
以wince为例,底层就是boot、bsp修改、驱动开发这几部分
学习路线:
1、买个开发板
2、按照开发板上的例子玩玩,ARM汇编稍微能看懂,写点简单的程序跑跑,对汇编有个大概的了解,bootloader等等会多少涉及点汇编的东西
然后就是开发板上的一些驱动玩玩。如果可以拿相似的BSP移植到开发板上就更好了,对BSP就有更多的认识了,学完以上可能可以找到工作,在工作中进一步加深理解
如果是应用的话,wince,我们写应用用的是VS2005,VC++,和PC的开发基本差不多
学完一个操作系统,切换到另一个平台相对而言还是蛮快的,基本都是相通的
我之前的经验是,我买了开发板玩了ADS程序写了小型的程序,就是把LED啊、液晶屏啊、等等驱起来,然后,在linux下玩驱动,写了几个简单的流驱动,去应聘,鬼使神差被招进去玩wince驱动了,感觉差得不是很多,玩了2周就开始上手,2个月之后,底层这块就都扔给我了
以上,仅供参考(至于开发板,如果是消费电子类的,好像三星的S3C系列用的人比较多,开发板也很多,工业类的就不懂了。至于选哪家开发板厂家,网络google一下)