如何学习单片机(基于ARM平台).

合集下载

十天学会单片机非常完整版 轻松学51单片机

十天学会单片机非常完整版 轻松学51单片机
有, 就有”这种逻辑关系的一种运算,
其运算符为“+”。 “或”运算规则如
下:
0+0=0,
0+1=1+0=1, 1+1=1
3. “非”运算
“非”运算是实现“求反”这种逻
辑的一种运算,如变量A的“非”运算 记作 A 。 其运算规则如下:
1 0, 0 1
4. “异或”运算
“异或”运算是实现“必须不同,
总线(BUS)是计算机各部件之间传送信息的公共通道。 微机中有内部总线和外部总线两类。内部总线是CPU内部之 间的连线。外部总线是指CPU与其它部件之间的连线。 外 部总线有三种: 数据总线DB(Data Bus), 地址总线 AB (Address Bus)和控制总线 CBControl Bus)。
• 五个中断源的中断控制系统; • 一个全双工UART(通用异步接收发送器)的串行I/O口,用 于实现单片机之间或单片机与微机之间的串行通信; • 片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。 最高振荡频率取决于单片机型号及性能。
C51知识
• C语言是一种编译型程序设计语言,它兼顾了多种高级语 言的特点,并具备汇编语言的功能。目前,使用C语言进 行程序设计已经成为软件开发的一个主流。用C语言开发 系统可以大大缩短开发周期,明显增强程序的可读性,便 于改进、扩充和移植。而针对8051的C语言日趋成熟,成 为了专业化的实用高级语言。
单板机
单片机
单片机能做什么
• • 1. 2. 3. 4. • 实物展示 用到单片机的项目经验介绍 手持粮库温度寻检设备 毕设答辩打分器 电话台灯 自动感应水龙头 凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根 据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳, 80C51,arm等

arm单片机

arm单片机

ARM单片机概述ARM单片机是嵌入式系统中常用的一种微控制器。

它基于ARM架构,具有高性能、低功耗、多功能、易开发等特点。

ARM单片机广泛应用于智能家居、工业自动化、汽车电子、智能穿戴等领域,成为嵌入式开发的重要组成部分。

ARM架构ARM架构是一种精简指令集(RISC)架构。

它的特点是指令集精简、代码紧凑、运行效率高,可有效降低功耗,提升性能。

ARM架构广泛应用于各种类型的设备,从低端嵌入式系统到高端的服务器和超级计算机都有应用。

ARM单片机的优势ARM单片机相比于其他微控制器具有以下优势:•高性能:ARM单片机采用现代的微架构设计,具有出色的处理性能和运算能力。

•低功耗:ARM单片机采用低功耗设计,能够在低电压下工作,延长电池寿命。

•多功能:ARM单片机具有丰富的外设接口和功能模块,能够满足各种应用需求。

•易开发:ARM单片机支持多种开发工具和开发环境,提供了丰富的软件库和示例代码,方便开发人员快速开发应用。

ARM单片机开发工具和环境ARM单片机的开发通常需要以下工具和环境:1.开发板:ARM单片机的开发板通常集成了单片机芯片和丰富的外设接口,方便开发人员进行硬件连接和调试。

2.开发工具链:ARM单片机的开发工具链包括编译器、调试器、烧录器等工具。

常用的开发工具链有Keil、IAR等。

3.开发环境:ARM单片机的开发环境通常是集成开发环境(IDE),提供了代码编辑、编译、调试和烧录等功能。

常用的开发环境有Keil MDK、IAR Embedded Workbench等。

4.软件库:ARM单片机的开发通常使用相应厂商提供的软件库,包括外设驱动、中断处理等功能的库文件。

ARM单片机的应用场景ARM单片机广泛应用于各种嵌入式系统中,包括但不限于以下场景:1.智能家居:ARM单片机用于控制家庭中的照明、空调、窗帘等设备,实现智能化管理和控制。

2.工业自动化:ARM单片机用于控制工业设备、机器人和自动化生产线,提高生产效率和安全性。

如何学习单片机?单片机编程入门教程

如何学习单片机?单片机编程入门教程

如何学习单片机?单片机编程入门教程单片机学习起来其实不难,反而是一件比较好玩的事情,之所以新手感觉比较难是由于不知道该怎么入手,从哪里开头学起。

单片机的学习无外乎两便利.一,电路。

二,编程语言。

先说电路,说到电路不得不提三本书。

模电,数电,电路。

可以说这三本书是学习电路的必经之路,学好这些,即使你不学单片机也可以找到一份薪资满足的工作。

当然现在大公司工作都是分工明确的,做电路的就做电路。

单片机编程的就做编程。

不过能进大公司的还是少数。

大部分小公司要求你全能,也就是说一个项目你要从芯片的选型,到外围电路的搭建,最终I/O口的定义,程序的编译调试,最终PCB 板的制作,焊接,调试等等,你都要把握。

当然你的工资也是客观的。

我的意思是学习单片机最好是要学习电路。

接下来学编程语言,单片机的编程语言是结构化的C语言。

C语言的学习也不是那么简单的,至少指针就够你模糊一段时间的。

学习C你可以先系统的学习一段时间,做一些练习,不用焦急去将它应用到单片机上。

学习单片机需要动手,不是照着课本去死记硬背。

所以学习单片机的第一个概念:确定好所学习的单片机详细型号。

比如说,你要学习51单片机,你所确定的型号是STC89C52,这款单片机虽然比较老了,但是依旧具有学习价值,DIP40封装的STC89C52单片机如下图所示:或者你选择STM32单片机学习,比如STM32F103C8T6,LQFP48封装的单片机如下图所示:确定了单片机的详细型号之后,出来其次个概念:确定使用的编程环境。

在单片机学习初期,我们可能会弱化做PCB板子的概念,但是编程的概念肯定要强化。

所以在初期你手里假如有一块单片机的开发板是很有必要的。

编程环境是由所选择的单片机来确定的,比如说前边两款单片机都可以使用keil来编程,所以你要安装keil的编程环境,keil4的启动界面如下图所示:编写好的程序,如何下载到单片机去执行?所以第三个概念:下载器。

下载器的选择也是有单片机的型号来确定的,以上两款单片机都可以通过USB/TTL或者是JLINK来下载,但是这里优先推举JLINK,由于JLINK 可以实现单步调试,大大提高学习效率,便利定位、解决问题。

如何学好单片机?从入门到高手的进阶方法

如何学好单片机?从入门到高手的进阶方法

如何学好单片机?从入门到高手的进阶方法你知道如何学好单片机吗?无论是作为一名业余的电子爱好者还是一名电子行业的相关从业人员,掌握单片机技术无疑可以使您如虎添翼,为您的电子小制作或者开发设计电子产品时打开方便的大门!学习单片机技术有一定的难度,不花费一番努力是很难学会的,但是只要不断努力就一定能成功,套用一句广告歌词:努力总有回报!第一步:基础理论知识学习基础理论知识包括模拟电路、数字电路和C语言知识。

模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。

在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。

否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。

笔者始终认为,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。

有些同学觉得单片机很难,越学越复杂,最后学不下去了。

有的同学看书时似乎明白了,可是动起手来却一塌糊涂,究其原因就是电子技术基础没有打好,首先被表面知识给困惑了。

单片机属于数字电路,其概念、术语、硬件结构和原理都源自数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,就能轻松地迈开学习的第一步,自信心也会树立起来。

相反,基础不好,这个看不懂那个也弄不明白,越学问题越多,越学越没有信心。

如果你觉得单片机很难,那就应该先放下单片机教材,去重温数字电路,搞清楚触发器、寄存器、门电路、COMS电路、时序逻辑和时序图、进制转换等理论知识。

理解了这些知识之后再去看看单片机的结构和原理,我想你会大彻大悟,信心倍增。

模拟电路是电子技术最基础的学科,她让你知道什么是电阻、电容、电感、二极管、三极管、场效应管、放大器等等以及它们的工作原理和在电路中的作用,这是学习电子技术必须掌握的基础知识。

一般是先学习模拟电路再去学习数字电路。

扎实的模拟电路基础不仅让你容易看懂别人设计的电路,而且让你的设计的电路更可靠,提高产品质量。

根据ARM9的WinCE快速基础学习

根据ARM9的WinCE快速基础学习

基于ARM9的WinCE快速入门作者:jbb0523(彬彬有礼)一、前言1、首先谈谈本人基础。

我熟悉A VR单片机,使用过ATmega16单片机大部分功能,如4X4键盘、UART、SPI、I2C、Timer、PWM等等,接触过DSP芯片TMS320C54X,懂得VHDL语言,简单使用过LPC2131,并在其上移植过uC/OS-II,学习过有关操作系统的基本知识。

用过的相关软件有:ICCA VR、ADS1.2、CCS、uVision等。

2、学习不要着急,如果你没有操作系统的基础,可能一时接受不了操作系统这个概念,而是拿着自已天天用的PC机的Windows操作系统的界面钻牛角尖。

不要总感觉这资料是垃圾,那本书是骗钱的,之所以你看不懂那是因为你还没达到看懂的程度!当然现在骗钱的书很多,著书者很少从读者的角度去写书!3、我所使用的开发环境:PC XP+GEC2440+WinCE5.0+VS2008+ActiveSync4.5+DNW;GEC2440是广嵌科技的开发板,板子做的还可以,只是售后技术支持一般。

二、入门准备1、什么是操作系统?这是困扰了我很久的一个问题。

由于我们大家对于Windows XP等PC机操作系统过于熟悉,而此操作系统又过于傻瓜式,以致于使我们感觉不到操作系统的本质,仅感觉操作系统就是一个窗口,反正在我接触嵌入式操作系统前是这样认为的。

那么什么是操作系统呢?从我使用uC/OS-II的体验来说,简单点儿说操作系统就是一个调度器,从我现在使用WinCE 的体验来说,操作系统就是管家婆。

总的来说吧,操作系统就是用算法实现的管理系统所有资源一个后台。

可能这样说还是有些抽象,别急,慢慢来!2、操作系统安装在哪儿呢?界面呢?这个问题绝对是Windows操作系统使用后遗症,总感觉我们要像装PC机系统一样进行安装,要有像XP等OS一样的操作界面。

其实界面仅仅是人机交互的一种方式而已,不是操作系统必备的元素,而是操作系统的一种趋势,因为现在对友好的人机交互界面要求越来越高,而且是傻瓜程度过高越好!以uC/OS-II为例,它的核代码就是几个C源文件,使用它时就像其它普通程序一样加入你所建立的工程即可,当然在uC/OS-II与你所写的普通代码之间要有一个桥梁来进行链接,这个桥梁就是我们在移植操作系统时所要写的文件,它根本没有界面一说,为什么说它是操作系统呢?因为uC/OS-II有操作系统的一切特征!操作系统都有什么特征呢?自已网上查一吧!那么移值uC/OS-II在CPU上有什么好处呢?个人认为,操作系统的核心好处在于多任务管理与调度。

ARM初学入门

ARM初学入门

经过一段时间对ARM的学习,在这里跟大家说一些前期的学习经验,另外仅以一个例子说明一下ADS的开发过程,因为这也是初学,可能有的地方说的不太好,望大家谅解,另外可以找其它参考资料来学习。

第一部分:ARM前期学习经验个人认为,要想学好ARM应该首先对ARM的整体框架(包括ARM体系结构,ARM开发过程,及ARM程序框架及执行过程等)有一个了解。

这里这就不多说了,这些东西我也只是刚刚开始学习,还没有很好的掌握,就只说一些个人想法吧。

呵呵,因为时间比较紧张,本来说是一个星期搞定ARM,至少拿着书本可以一点点的做着,可是经过上一个星期,到最后,哇,真的快疯了。

刚开始拿到实验箱,以为和NIOS一样,多跑一些DEMO应该就差不多会玩了,没想到一开始就碰到一个大问题,ARM实验箱里边带了几本教材和实验指导书,拿着实验指导书做了几个DEMO就做不下去了,因为前两个DEMO还比较简单,就只是用汇编语言写了几条对ARM寄存器操作的语句,学过汇编语言的很快就可以理解了。

可是往后就不一样了,因为刚开始学,不太了解ARM程序的框架,实在是看不懂了,为什么每个全程里边都有用到44b.h ,44blib.h ,44blib.c还有一个44binit.s文件?前边三个还容易理解,玩过单片机的很容易就能看出来44b.h 里边定义了一些在S3C44B0X内部的寄存器,44blib.h和44blib.c定义了一些有关初始化的函数,而44binit.s呢?看不懂,到这里我的ARM程序就没法往下做了,只有在网上再找资料,看这个函数到底是干什么用的,原来这就是以前经常听说的“bootloader”或着说是“启动代码”,或着说是“ARM的引导程序”,就是处理器在启动的时候执行的一段代码,主要任务是初始化处理器模式,设置堆栈,初始化变量等等.由于以上的操作均与处理器体系结构和系统配置密切相关,所以一般由汇编来编写(关于这方面的内容大家可以查看相关资料)。

ARM快速入门教程

ARM快速入门教程

ARM快速入门教程ARM(Advanced RISC Machines)是一种基于精简指令集计算机(RISC)架构的处理器系列,被广泛应用于嵌入式系统、移动设备和消费类电子产品中。

本文将为您提供一个简单的ARM快速入门教程,帮助您了解ARM的基本概念和使用方法。

第一部分:ARM概述(200字)第二部分:ARM架构(300字)ARM架构采用RISC设计思想,通过简化指令集和优化硬件设计来提高性能和效率。

ARM处理器具有三个基本特征:简洁的指令集、统一的寄存器文件和可变长度的指令长度。

ARM指令集包括数据传输指令(如加载和存储指令)、算术指令(如加法和乘法指令)、控制指令(如分支和跳转指令)等。

这些指令被编码为16位或32位二进制代码,以提高指令执行效率。

ARM处理器的寄存器文件使用统一的32位寄存器,这意味着所有的寄存器都可以用于存储数据或表示内存地址。

该设计简化了指令集编码,并提高了程序的灵活性和扩展性。

与其他处理器架构相比,ARM指令的长度是可变的。

ARM处理器支持16位和32位的指令,根据实际需要进行选择。

这种设计也有利于降低功耗和提高代码密度。

第三部分:ARM开发环境(400字)要开始使用ARM进行开发,您需要一个ARM开发板、一台计算机和适当的开发环境。

ARM开发板是一种嵌入式系统,其中包含一块ARM处理器和各种外围设备(如闪存、RAM、串口等)。

您可以使用开发板来加载和运行您的ARM代码,并与外部设备进行交互。

第四部分:ARM编程(300字)ARM编程可以使用汇编语言或高级语言进行。

汇编语言是一种低级编程语言,直接对应于CPU的指令集。

使用汇编语言编程可以更加深入地了解和控制ARM处理器的操作。

高级语言(如C/C++)编程可以提高开发效率和代码可读性。

您可以使用C/C++编程语言编写ARM应用程序,然后通过交叉编译器将其编译成ARM指令。

在ARM编程中,您可以使用各种库函数和驱动程序来访问外部设备(如闪存、串口、显示屏等)。

基于ARM的单片机应用及实践STM32案例式教学课程设计

基于ARM的单片机应用及实践STM32案例式教学课程设计

基于ARM的单片机应用及实践STM32案例式教学课程设计1. 引言随着嵌入式技术的发展,单片机已经成为嵌入式系统的核心部件,其应用越来越广泛。

而在单片机应用教学中,实践性教学是非常重要的一环,能够更加有效地提高学生的学习兴趣和专业技能。

基于ARM架构的单片机以其高速、高性能、低功耗、易于开发等优点,成为了嵌入式开发领域的热门技术。

本文将介绍基于ARM的单片机应用及实践STM32案例式教学课程设计。

2. 教学目标本课程的教学目标是:1.掌握STM32系列单片机的基本原理和使用方法;2.能够参与STM32单片机应用开发工作;3.在STM32单片机应用开发过程中,能够解决常见问题和故障;4.培养学生的团队合作和创新能力。

3. 教学内容本课程的教学内容主要包括STM32单片机的基本原理、应用环境、开发工具和开发流程,以及常用的外设和应用案例。

3.1 单片机基础知识本课程将首先介绍STM32单片机的基础知识,包括单片机的结构、工作原理、指令集等内容。

此外,还将介绍单片机外围器件的基本原理和应用场景,帮助学生理解单片机与外围器件的配合关系,以提高系统整体性能。

3.2 开发环境和工具本课程将介绍STM32单片机的开发环境和工具,包括Keil MDK、ST-Link、CubeMX等软件工具的使用方法和基本操作,使学生能够熟练掌握开发环境和工具的使用。

3.3 外设驱动的开发本课程将介绍STM32单片机的常用外设驱动的开发方法,包括GPIO、USART、SPI、I2C等外设的驱动原理和开发方法,使学生能够掌握常用外设的开发方法。

3.4 应用案例本课程将结合实际应用案例,对常用的应用场景进行深入浅出的介绍,包括LED灯控制、蜂鸣器控制、温度检测、红外遥控等,在实际应用中体验STM32单片机的魅力。

4. 教学方法本课程主要采用案例式教学方法,通过实际开发案例的演示来让学生学习使用STM32单片机的基本方法和技能。

在指导学生进行开发过程中,需要注意以下几点:1.强调安全意识,避免硬件电路短路等风险;2.强调工具的使用方法和开发环境的具体配置方法;3.强调代码思路与编程技巧;4.强调注重团队合作和创新能力的培养。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、嵌入式系统的概念着重理解“ 嵌入” 的概念主要从三个方面上来理解。

1、从硬件上,将基于 CPU 的处围器件,整合到 CPU 芯片内部,比如早期基于X86体系结构下的计算机, CPU 只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现, 象串口之类的都是靠外部的 16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到 CPU 内部,还有 PC 机有显卡,而多数嵌入式处理器都带有 LCD 控制器,但其种意义上就相当于显卡。

比较高端的 ARM 类 Intel Xscale架构下的 IXP 网络处理器 CPU 内部集成 PCI 控制器(可配成支持 4个 PCI 从设备或配成自身为 CPI 从设备 ;还集成 3个 NPE 网络处理器引擎,其中两个对应于两个 MAC 地址, 可用于网关交换用,而另外一个 NPE 网络处理器引擎支持 DSL ,只要外面再加个 PHY 芯片即可以实现 DSL 上网功能。

IXP 系列最高主频可以达到 1.8G ,支持 2G 内存, 1G×10或 10G×1的以太网口或 Febre channel 的光通道。

IXP 系列应该是目标基于 ARM 体系统结构下由 intel 进行整合后成 Xscale 内核的最高的处理器了。

2、从软件上前, 就是在定制操作系统内核里将应用一并选入, 编译后将内核下载到 ROM 中。

而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“ 嵌入” , 比如 WinCE 在内核定制时, 会有相应选择, 其中就是wordpad,PDF,MediaPlay 等等选择, 如果我们选择了, 在 CE 启动后,就可以在界面中找到这些东西,如果是以前 PC 上将的 windows 操作系统, 多半的东西都需要我们得新再装。

3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的 ROM 中就实现了一个真正的“ 嵌入” 。

以上的定义是我在 6、 7年前给嵌入式系统下自话侧重于理解型的定义, 书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们, 历为毕竟嵌入式系统是计算机范畴下的一门综合性学科二、嵌入式系统的分层与专业的分类。

嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。

1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用 C 和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础, 一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD 的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。

但硬件平台是基础,增值还要靠软件。

硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、 C 语言。

2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行, 不懂操作系统内核架构和实时调度性, 没有良好的驱动编写风格, 按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同 windows 下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。

想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。

驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞, 除硬件层所具备的基础学科外, 还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。

3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统, 或者写出缺胳膊少腿的操作系统来, 这部分工作大都由驱动工程师来完成。

操作系统是负责系统任务的调试、磁盘和文件的管理, 而嵌入式系统的实时性十分重要。

据说, XP 操作系统是微软投入 300人用两年时间才搞定的, 总时工时是 600人年, 中科院软件所自己的女娲 Hopen 操作系统估计也得花遇几百人年才能搞定。

因此这部分工作相对来讲没有太大意义。

4、应用层,相对来讲较为容易的,如果会在 windows 下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。

如果涉及 Jave 方面的编程也是如此的。

嵌入式系统中涉及算法的由专业算法的人来处理的, 不必归结到嵌入式系统范畴内。

但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于 SIP 、 H.323、Astrisk 方面又较为复杂, 并且有难度了。

三、目标与定位。

先有目标,再去定位。

学 ARM , 从硬件上讲, 一方面就是学习接口电路设计, 另一方面就是学习汇编和 C 语言的板级编程。

如果从软件上讲, 就是要学习基于 ARM 处理器的操作系统层面的驱动、移植了。

这些对于初学都来说必须明确 , 要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级以上基于 API 的应用层的编程,硬件的寄存器类的东西还是要能看懂的, 基于板级的汇编和 C 编程还是要会的。

因此针对于嵌入式系统的硬件层和驱动程的人, ARM 的接口电路设计、 ARM 的 C 语言和汇编语言编程及调试开发环境还是需要掌握的。

因此对于初学者必然要把握住方向,自己的目标是什么,自己要在那一层面上走。

然后再着手学习较好,与 ARM 相关的嵌入式系统的较为实际的两个层面硬件层和驱动层,不管学好了那一层都会很有前途的。

如果想从嵌入式系统的应用层面的走的话, 可能与 ARM 及其它体系相去较远, 要着重研究基嵌入式操作系统的环境应用与相应开发工具链,比如 WinCe 操作系统下的 EVC 应用开发 (与 windows 下的 VC 相类似 , 如果想再有突破就往某些音视频类的协议上靠, 比如 VOIP 领域的基于 SIP 或 H.323协议的应用层开发,或是基于嵌入式网络数据库的开发等等。

对于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了, 要结合自身特点, 嵌入式系统四个层面上那个层面上来讲都是有高人存在, 当然高人也对应的高工资, 我是做硬件层的, 以前每月工资中个人所得税要被扣上近 3千大元, 当然我一方面充当工程师的角色,一方面充当主管及人物的角色,两个职位我一个人干,但上班时间就那些。

硬件这方面上可能与我 PK 的人很少了,才让我拿到那么多的工资。

四、开发系统选择。

很多 ARM 初学者都希望有一套自己能用的系统,但他们住住会产生一种错误认识就是认为处理器版本越高、性能越高越好,就象很多人认为 ARM9与 ARM7好, 我想对于初学者在此方面以此入门还应该理智, 开发系统的选择最终要看自己往嵌入式系统的那个方向上走,是做驱动开发还是应用,还是做嵌入式系统硬件层设计与板级测试。

如果想从操作系统层面或应用层面上走, 不管是驱动还是应用, 那当然处理器性能越高越好了, 但这个东西自学,有十分大的困难,不是几个月或半年或是一年二年能搞定的事。

在某种意义上请, ARM7与 9的差别就是在某些功能指令集上丰富了些,主频提高一些而已,就比如 286和 386。

对于用户来讲可能觉查不到什么,只能是感觉速度有些快而已。

ARM7比较适合于那些想从硬件层面上走的人, 因为 ARM7系列处理器内部带 MMU 的很少, 而且比较好控制,就比如 S3C44B0来讲,可以很容易将Cache 关了,而且内部接口寄存器很容易看明白,各种接口对于用硬件程序控制或AXD 单步命令行指令都可以控制起来,基于 51单片机的思想很容易能把他搞懂,就当成个 32位的单片机, 从而消除很多 51工程师想转为嵌入式系统硬件 ARM 开发工程师的困惑,从而不会被业界某此不是真正懂嵌入式烂公司带到操作系统层面上去,让他们望而失畏,让业界更加缺少这方面的人才。

而嵌入式系统不管硬件设计还是软件驱动方面都是十分注重接口这部分的,选择平台还要考察一个处理器的外部资源, 你接触外部资源越多, 越熟悉他们那你以后就业成功的机率就越高,这就是招聘时所说的有无“ 相关技能” ,因为一个人不可能在短短几年内把所有的处理器都接触一遍, 而招聘单位所用的处理器就可能是我们完全没有见过的, 就拿台湾数十家小公司 (市价几千万的公司生产的 ARM 类处理器, 也很好用, 但这些东西通用性太差, 用这些处理器的公司就只能招有相关工作经验的人了,那什么是相关工作经验,在硬件上讲的是外围接口设计, 在软件上讲是操作系统方面相关接口驱动及应用开发经验。

我从业近十年, 2000年 ARM 出现, 我一天始做 ARM7, 然后直接跑到了 Xscale (这个板本在 ARM10-11之间 ,一做就是五年,招人面试都不下数百人,在这些方面还是深有体会的。

我个人认为三星的 S3C44b0对初学者来说比较合适,为什么这么说哪?因为接口资源比较丰富,技术成熟,资料较多,应该十分适合于初学者,有问题可能很容易找人帮且解决, 因为大多数人都很熟悉,就如同 51类的单片机,有 N 多位专家级的人物可以给你帮忙,相关问题得以很快解答,所然业界认为这款 ARM 都做用得烂了,但对于初学者来,就却是件好事。

因此开发系统的选择,要看自己的未来从来目标方向、要看开发板接口资源、还要看业界的通用性。

五、如何看待培训。

首先说说我自己,我目前从业近十年,与国内嵌入式系统行业共同起步,一直站在嵌入式系统行业前沿, 设计过多款高端嵌入式系统平台产品并为众多公司提供过解决方案, 离职前为从事 VOIP 的美资公司设计 IP-PBX ,历任项目经理、项目主管、技术总监、部门经理,积累众多人脉, 并集多年经验所得, 考虑到学生就业与公司招人的不相匹配, 公司想招人招不到, 而学生和刚毕业的工程师想找份工作也不太容易, 于此力创知天行科技有限公司, 开展嵌入式系统教育培训。

因一线的科研人员和一线的教师不相接触, 导至国内嵌入式人才缺乏, 国外高校的技术超前于业界公司,而国内情况是业界公司方面的嵌入式系统技术要远远领先于高校。

为架构业界与高校沟通的桥梁,把先进技能带给高校学子,为学生在就业竞争中打造一张王牌, 并为业界工程师快速提升实现自我创造机遇, 我就这样辞去了外企年薪 20多万的职位, 做嵌入式系统方面的培训了。

相关文档
最新文档