文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式练习题1-2

嵌入式练习题1-2

嵌入式练习题1-2
嵌入式练习题1-2

1. 什么是嵌入式系统?其特点有些什么?

答:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

特点:(1)通常是面向特定应用,低功耗、体积小、集成度高;

(2)是技术密集、资金密集、高度分散、不断创新的知识集成系统;

(3)软硬件必须高效率地设计,根据应用需求量体裁衣,去除冗余;

(4)与具体应用有机结合,具有较长的生命周期;

(5)为提高执行速度和系统可靠性,软件一般固化在存储器芯片或单片机本身中;

(6)本身不具备自举开发能力,必须有一套开发工具和环境才能进行开发。

2. 嵌入式系统的BooTLoader的功能是什么?

答: BooTLoader是系统加电后,操作系统内核或用户应用程序运行之前,首先必须运行的一段程序,即引导加载程序。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。

3. 什么是嵌入式操作系统?为何要使用嵌入式操作系统?

答:嵌入到对象体系中的专用计算机应用系统。

4. 目前嵌入式操作系统有哪些?

答:(1)Windows CE(2)VxWorks(3)pSOS(4)QNX(5)Palm OS(6)嵌入式Linux 5. 构造嵌入式开发环境有哪几种形式?

答:(1)交叉开发环境(2)软件模拟环境(3)评估电路板

6. 嵌入式系统开发的基本流程?

答:(1)系统定义与需求分析

(2)规格说明

(3)系统结构设计

(4)构件设计

(5)系统集成

7. 什么是可编程片上系统?

答:用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统PSOC.它是一种特殊的嵌入式系统,首先它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。

8. 有时要使用Thumb技术的原因?

答:16位Thumb指令集是32位ARM指令集的子集,用16位代码密度的指令获得32位处理器的性能既节省存储空间及成本,又不降低处理性能,低功耗,小体积,低成本。

9. ARM处理器的工作模式有哪几种?

答:用户模式,系统模式,管理模式,中止模式,未定义模式,IRQ模式,FIQ模式

10. 寄存器R13,R14,R15的专用功能各是什么?

答:R13寄存器的作用通常是堆栈指针,SP;

R14用作子程序链接寄存器,LR;

R15的功能是程序计数器,PC。

11. 寄存器CPSR,SPSR的功能各是什么?

答:(1)CPSR寄存器称为当前程序状态寄存器,又称R16,在所有处理器模式下CPSR 都是同一个物理寄存器,保存了程序运行的当前状态。包括各种条件标志、中断禁止/允许位、处理器模式位以及其它状态和控制信息。

(2)在每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器SPSR,当异常出现时,SPSR用于保存 CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

12. PC和LR分别使用哪个寄存器?

答:PC使用R15,LR使用R14

13. ARM的异常有哪几种,各进入何种工作模式?他们退出各采用什么指令?

答:(1)复位异常,(管理模式);

(2)未定义指令异常,(未定义模式);

(3)软件中断(SWI)异常,(管理模式);

(4)指令预取中止异常,(中止模式);

(5)数据访问中止(Data Abort)(中止模式);

(6)外部中断请求(IRQ)(IRQ模式);

(7)快速中断请求(FIQ)(FIQ模式)。

异常返回指令:(1)SWI,未定义的返回:MOVS PC,R14;

(2)数据中止返回并重新存取:SUBS PC,R14,#8

(3)IRQ,FIQ,预取中止的返回:SUBS PC,R14,#4

14. 什么是小端和大端存储器组织?

答:(1)小端存储系统中,字的地址对应该字最低有效字节所对应的地址;半字的地址对应该半字最低有效字节所对应的地址

(2)大端存储系统中,字的地址对应该字最高有效字节所对应的地址;半字的地址对应该半字最高有效字节所对应的地址

15. 什么是数据的边界对齐?

答:默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。数据的自然对其方式是指:如果该数据类型是n个字节的,那么该数据类型就按n字节对齐。

16. ARM核现在有哪几种?

答:ARM7、 ARM9、ARM9E 、ARM10E,、SecurCore、StrongARM、Xscale

17. ARM的寻址方式有哪些?各写一条说明。

答:(1)立即寻址:ADD R6,R6,#128 ;R6=R6+128

(2)寄存器寻址:ADD R2,R3,R5 ;R2=R3+R5

(3)寄存器移位寻址:ADD R0,R1,R2.LSL#3 ;R0=R1+8*R2

(4)寄存器间接寻址:LDR R6,[R7] ;R6=[R7]

(5)变址寻址:LDR R2,[R3,#128] ;R2=[R3+128]

LDR R2,[R3,#4]! ;R2=[R3+4],R3=R3+4

LDR R2,[R3],#4 ;R2=[R3],R3=R3+4

(6)多寄存器寻址:LDMIA R2,{R3,R5,R7} ;R3=[R2],R5=[R2+4],R7=[R2+8]

(7)堆栈寻址:STMFD SP! {R1-R7,LR}

LDMFD SP! {R1-R7,LR}

(8)块拷贝寻址:LDMIA R0!{R2-R9}

STMIA R1,{R2-R9}

(9)相对寻址

18. 在ARM的立即寻址方式下其立即数如何在指令编码中表示?

答:在ARM数据处理指令中,当参与操作的第二操作数为立即数型时,每个立即数都是采用一个8位的常数循环右移偶数位而间接得到。其中循环右移的位数由一个4位二进制的两倍表示,如果立即数记作,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环右移偶数位得到。因此有效立即数immediate可以表示成:=immed_8循环右移(2×rotate_imm)19. 指令ADR,ADRL、LDR、NOP是如何处理地址值读入到寄存器中的?

答:ADR是将基于PC或者寄存器的地址值读入到寄存器的,ADR伪指令通常被替换成一条ADD 指令或SUB指令来实现该ADR指令的功能;而ADRL伪指令与ADR指令的最大不同之处是,它可以读取更大范围内的地址,而且被编译器替换成2条数据处理指令;LDR将一个32位的立即数或者一个地址值读取到寄存器中,大范围的地址读取;NOP在汇编时将被替换成ARM中的空操作。

20. 指令LDR R1,=0xFFF是如何将立即数0xfff读入到R1的?

答:由于需要读取的寄存器的数据超过了MOV及MVN指令可操作的范围,编译器将该常数放在数据缓冲区中,同时用一条基于PC的LDR指令读取该常数。

LDR R1,[PC,offset_to_LPOOL]

LTORG ;声明数据缓冲池

LPOOL DCD OxFFF ;OxFFF放在数据缓冲池中。

21. 如何在c语言程序中内嵌汇编?

答:内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体

22. 如何在汇编语言程序访问C语言的全局变量?

答:汇编程序可以通过地址间接访问在C语言程序中声明的全局变量。通过使用IMPORT关键词引人全局变量,并利用LDR和STR指令根据全局变量的地址可以访问它们。

对于不同类型的变量,需要采用不同选项的LDR和STR指令,如下所示:

(1)unsigned char—— LDRB/STRB

(2)unsigned short——LDRH/STRH

(3)unsigned int——LDR/STR

(4)char ——LDRSB/STRSB

(5)Short——LDRSH/STRSH

23. 在C语言程序如何调用汇编语言程序?

答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在汇编程序中需要使用EXPORT伪操作来声明,使得本程序可以被其它程序调用。同时,在C程序调用该汇编程序之前需要在C语言程序中使用extern关键词来声明该汇编程序。

24. 汇编语言程序调用C语言程序?

答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在C程序中不需要使用任何关键字来声明将被汇编语言调用的C程序,但是在汇编程序调用该C程序之前需要在汇编语言程序中使用IMPORT伪操作来声明该C程序。在汇编程序中通过BL 指令来调用子程序。

25. 在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。

答:变量定义;参数传递;循环条件;以空间换时间;数学方法解决问题;使用位操作;

嵌入汇编。

24.Linux操作系统的内核、文件系统、编程接口等。P192 P201

25.嵌入式Linux操作系统的特点。

答:广泛的硬件支持、内核高效稳定、开放源码,软件丰富、优秀的开发工具、完善的网络通信和文件管理机制。

26.Windows CE操作系统及其特点。

答:Windows CE是一个32位、多任务、多线程的操作系统,其开放式的设计结构适用于各种各样的设备,其主要特点:

CE是一种压缩并可升级的软件系统,即使在小内存条件下,也能提供较高的性能;

CE具有便于携带的优点,可以运行于多种微处理器上;

CE拥有很好的电源管理系统,能延长移动设备的电池寿命;

CE支持标准的通讯系统,可以非常方便地访问Internet,发送和接受电子邮件,浏览万维网。

27.程序解释

(1)

AREA COPYBS,CODE,READONLY ;定义一个代码段

ENTRY ;程序入口

LDR RO,=SRC ;取得原数据表的表头

LDR R1,=DST ;取得目标数据表的表头

MOV R2,#20 ;R4作为循环控制

BCOPY MOVS R3,R2,LSR,#3 ;R3=R2 <<3 逻辑右移3位

BEQ CWORD ;若Z=1,跳转到CWORD

OCOPY LDMIA R0!,{R4-R11} ;加载R0指向的地址上的多字数据,保存到R4~R11中,R0值更新

STMIA R1!,{R4-R11} ;将R4-R11的数据存储到R1指向的地址上,R1值更新

SUBS R3,R3,#1 ;R3=R3-1

BNE OCOPY ;若Z=0,跳转到OCOPY

CWORD AND R2,R2,#7 ;R2=R2&7

BEQ STOP ;若Z=1,跳转到STOP

WCOPY LDR R3,{R0},#4 ;将R3中的字数据读入以R0为地址的存储器中,并将新地址R0+4写入R1

STR R3,{R1},#4 ;将R3中的字数据写入以R1为地址的存储器中,并将新地址R1+4写入R1 SUBS R2,R2,#1 ;R2=R2-1

BNE WCOPY ;若Z=0,跳转到WCOPY

STOP ……

……

(2)

在程序中常常需要根据一定的参数选择执行不同的子程序。跳转表中存放的是各子函数的地址,选择不同的子程序的参数是该子程序在跳转表中的偏移量。在本例中R3寄存器中存放的是跳转表的基地址(首选地址,其中存放的是第一个子程序的地址)。R0寄存器的值用于选择不同的子程序;当

R0为0时,选择的是子程序DoAdd;当R0为1时,选择的是子程序DoSub。

在ADS编译环境程序如下:

AREA Jump,CODE,READONLY ;设置本程序的名称及属性

NUM EQU 2 ;跳转表中的子程序个数

ENTRY ;程序执行的入口点

Start MOV R0,#0 ;设置3个参数,R0选择调用哪个子程序

MOV R1,#3 ;R1为子程序要用的参数

MOV R2,#2 ;R2为子程序要用的参数

BL Func ;调用子程序Func,进行算术运算

Stop MOV R0 ,#0x18 ;本条与下条指令的作用是参数传递

LDR R1,=&20026

SWI 0x123456 ;将CPU的控制权交给调试器

Func CMP R0,#NUM ;判断R0是否在有效范围之内

MOVHS PC,LR ;如果超出范围则程序返回

ADR R3,JTable ;读取跳转表的基地址

LDR PC,【R3,R0,LSL #2】;根据参数R0的值跳转到相应的子程序

JTable DCD DoAdd ;当参数R0为0时上面的代码将选择DoAdd

DCD DoSub ;当参数R0为1时上面的代码将选择DoSub

DoAdd ADD R0,R1,R2 ;子程序DoAdd执行加法操作

MOV PC,LR ;子程序返回

DoSub SUB R0,R1,R2 ;子程序DoSub执行减法操作

MOV PC,LR ;子程序返回

END ;结束汇编、

简答题

1、什么是嵌入式处理器,嵌入式处理器可以分为几大类?

答:嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器;

分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统(SOC)。

2、广泛使用的三种类型的操作系统?

答:多道批处理操作系统、分时操作系统以及实时操作系统。

3、ARM是什么样的公司?

答:它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC 处理器。特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。

4、什么是RISC?什么是CISC?

答:RISC是精简指令集计算机的缩写,CISC是复杂指令集计算机的缩写

5、ARM9处理器采用什么样的体系结构,其可寻址地址空间多大?

答:ARM9处理器采用冯.诺依曼体系结构,寻址空间为4GB的8位字节寻址空间(1GB的32位字寻址空间)

6、ARM9处理器采用几级流水线处理,使用何种存储器编址方式?

答:ARM9处理器采用RISC五级整数流水线结构

7、ARM处理器模式和ARM处理器状态有什么区别?

答:ARM处理器模式指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式;

ARM处理器状态指ARM状态和Thumb状态

8、ARM9内部寄存器特点?

答:ARM9处理器内部共有37个32位的寄存器,其中31个用作通用寄存器,6个用作状态寄存器,每个状态寄存器只使用了其中的12位。

9、请说明MOV指令与LDR加载指令的区别和用途?

答:LDR的操作数既可以来源于寄存器也可以来源于存储器,MOV的操作数能来源于寄存器;LDR指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、程序的跳转、外围部件的控制操作等;MOV指令将8位立即数或寄存器传送到目标寄存器(Rd),可用于移位运算等操作。

10、 ARM9微控制器内FLASH是多少位宽度的接口?它是通过哪个功能模块来提高FLASH的访问速度?

11、 FIQ、IRQ有什么不同?向量IRQ和非向量IRQ有什么不同?

答:FIQ是快速中断,具有最高优先级,中断处理转入FIQ模式;IRQ是普通中断,优先级低于FIQ,中断处理转入IRQ模式。

向量IRQ支持16个向量IRQ中断,16个优先级,能为每个中断源设置服务程序地址;非向量IRQ支持一个非向量IRQ中断,所有中断都共用一个相同的服务程序入口地址。12、什么是嵌入式处理器的最小系统?

答:最小系统是指提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成的系统。

13、嵌入式处理器的最小系统包含那些基本电路?

答:最小系统包含时钟系统、供电系统、复位及其配置系统、存储器系统(可选)、调试测试系统(可选)。

基本电路包括:末级电源电路、前级电源电路、时钟电路、复位电路、程序存储器(可选)、调试接口电路(可选)。

二、问答题

1、ARM9支持哪几种指令集,各有什么特点?

答:支持ARM指令集和Thumb指令集两种。

ARM指令集:指令32位,效率高,代码密度低,所有ARM指令都是可以有条件执行的。Thumb指令集:指令16位,代码密度较高,Thumb指令仅有一条指令具备条件执行功能。保持

ARM 的大多数性能上的优势,是ARM 指令集的子集。

2、ARM 有几种处理器模式,简单介绍该几种模式的工作特点?

答:用户模式:正常程序运行的工作模式,不能直接从用户模式切换到其它模式

系统模式:用于支持操作系统的特权任务等,可以直接切换到其它模式

管理模式:供操作系统使用的一种保护模式,只有在系统复位和软件中断响应时,才进入此模式。

中止模式:用于虚拟内存和/或存储器保护。

未定义模式:支持软件仿真的硬件协处理器,只有在未定义指令异常响应时,才进入此模式。

快中断模式:用于快速中断处理,支持高速数据传输及通道处理,只有在FIQ 异常响应时,才进入此模式。

中断模式:用于通用中断处理,只有在IRQ 异常响应时,才进入此模式。 3、什么是引导程序?什么是启动程序?两者有什么区别?

答:引导程序是ARM 微处理器在上电或复位后首先运行Boot Block 中的一段代码;启动程序是在运行引导程序后,正式运行用户main 函数之前,还需要运行一段代码

引导程序由芯片厂商固化在芯片中,功能包括:判断运行哪个存储器上的程序、检查用户代码是否有效、判断芯片是否被加密、芯片的在应用编程(IAP)以及在系统编程功能(ISP)。启动程序由用户添加,功能包括:向量表定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O 初始化、外围初始化,地址重映射等操作。 4、试比较说明JATG 工具和ISP 工具的异同点? 答:两者都可以将程序下载到开发板上,

JATG 通过计算机的并口和开发板的JATG 口下载程序;ISP 通过计算机的串口和开发

板的UART0下载程序。

5、下图是ARM 处理器的当前程序状态寄存器,请简单说明各位的功能。

167312043528293027

8ARM7当前程序状态寄存器

N :负标志位,运算结果的第31位值,记录标志设置的结果。 Z :零标志位,如果标志设置操作的结果为0,则置位。

C :进位标志位,记录无符号加法溢出,减法无错位,循环移位。 V :溢出标志位,记录标志设置操作的有符号溢出。

I :中断禁止标志位,置位时禁止IRQ 中断,否则允许IRQ 中断使能。 F :中断禁止标志位,置位时禁止FIQ 中断,否则允许FIQ 中断使能。

T :控制位,置位时处理器运行在Thumb 状态下,清零时处理器运行在ARM 状态下。

M0~M4:模式控制位,定义处理器的7中模式。

其余位为保留位,留作将来使用。

6、下图是ARM 系统内部的存储器加速模块(MAM)连接结构示意图,试针对该示意图说明MAM 如何实现存储器加速功能。

答:存储器加速模块中Flash存储器可以存放4个32位ARM指令或8个16位Thumb指令,它们被分成两组,轮番工作,及时的为CPU提供需要的指令和数据,以防止CPU取指暂停。

程序顺序执行时,一个Flash组包含当前正在取指的指令和包含该指令的整个Flash 行,而另一个Flash组则包含或正在预取指下一个连续的代码行。

程序出现分支时,在预取指缓存区中保存着将要执行的指令,在分支跟踪缓存区中保存着程序跳转后可执行到的指令。

程序获取数据时,如果数据不在MAM的数据缓冲区,那么MAM会执行一次Flash读操作,把一个128位的数据行存入数据缓冲区,这样就加快了按顺序访问数据的速度。

7、下图是ARM 系统存储器映射图,试对该映射图进行简单的描述说明。

0x8400 0000

0x0000 0000

2.0GB

1.0GB

0.0GB

3.0GB

3.5GB

4.0GB 3.75GB 0x0002 00000x0004 00000x4000 00000x4000 40000x7FFF E0000x8000 00000x8100 00000x8200 00000x8300 00000xC000 00000xE000 00000xF000 0000ARM7系统存储器映射

8、下图是ARM 系统中断向量控制器(VIC )内部结构示意图,试说明VIC 的功能特点。

9、下图是ARM 系统每个I/O 端口的内部寄存器控制结构示意图,看图填写下表的寄存器功能说明内容。

10、下图是ARM7系统内部的定时器结构示意图,试说明内部定时器的功能特点。

(注:可编辑下载,若有不当之处,请指正,谢谢!)

嵌入式的培训心得体会

嵌入式的培训心得体会 嵌入式的培训心得体会1 8月我参加了学校安排的课题实训,基地在北京,学院安排我们集体坐火车一同前去,浩浩荡荡的队伍开始出发了。刚来北京的时候,映入眼绵的都是高楼大厦,一直想到的地方终于到了,好多以前的同学听说我要去北京实训都很羡慕不已,我自己也隐隐感到自豪。 我参加的课题实训是嵌入式方向的,开课的内容主要是嵌入式开发方面的,C语言,数据结构,LINUX基本操作,网络编程,操作系统和汇编语言,这些都是嵌入式不可缺少的。 每个专业技能都决定了你以后找工过。我们班分了很多小组,每组都有小组长,小组长直接对我们负责。教课老师很认真,都是从很基础的开始讲;同学们听课也很认真,由于代码操作比较多,键盘的声音源源不断的在响。好久没有感觉到这种浓重的学习气氛了,而在这紧张而充实的学习氛围中我获益匪浅,感受颇多。 授课过程中老师们也传授了一些找工作方面的经验,比如简介的样式和写法,面试中的一些着装,礼貌用语和技巧,对此基地的老师还精心的为我们安排了一场模拟面试,在其中我们学到了很多有关于面试方面的经验。

通过这几个月的实训我学到了很多,同时也让我们意识到我们要学的更多。从程序的设计到编写、画图、调试、修改、完善、到最后的实训报告,每个人都付出了时间和精力去做好自己的任务帮助队友,所以团队的合作和队友之间的相互协助非常重要。 通过实训让我们更深一步的对自己的专业,对自己的能力,对自己所学的有正确的认识,并且能在以后的学习工作中不断提高和完善自己。 特别是讲C语言和进程通信中老师给了我们每个小组的几个小项目,让我学到了更多项目经验,这在学校之前是没有的。这次实训也碰到了些问题,比如项目文档的写法,代码的规范,流程图的画法,这些都有讲究,在老师和同学的帮助下,我不断的提高了在这些方面的学习。 生活上班主任郭老师和王老师对我们关怀备至,让我们没有感觉在外面的那种不适感,同学们也互帮互助,所以生活上大致没什么问题,这让我们更好的去学专业。很感谢学校有这样的实训安排。 总的来说,这次实训还是比较成功的,无论是个人动手能力还是团队协作能力都得到了很好的锻炼。在实训过程中老师也交给我们很多简单实用的技巧。我们也学到了,做好做对一个项目固然重要,同时美观程度也是必不可少的,无论是从参观者的角度还是自己看的角度都很重要。

学习嵌入式比较好的书籍推荐给大家

学习嵌入式比较好的书籍推荐给大家 嵌入式书籍推荐 Linux基础 1、《Linux与Unix Shell 编程指南》 C语言基础 1、《C Primer Plus,5th Edition》【美】Stephen Prata着 2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着 3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) 4、《嵌入式Linux应用程序开发详解》 Linux内核 1、《深入理解Linux内核》(第三版) 2、《Linux内核源代码情景分析》毛德操胡希明著 研发方向 1、《UNIX Network Programming》(UNP) 2、《TCP/IP详解》 3、《Linux内核编程》 4、《Linux设备驱动开发》(LDD) 5、《Linux高级程序设计》杨宗德著 硬件基础 1、《ARM体系结构与编程》杜春雷着 2、S3C2410 Datasheet 英语基础 1、《计算机与通信专业英语》 系统教程 1、《嵌入式系统――体系结构、编程与设计》 2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处

理器》毛德操胡希明着 3、《Building Embedded Linux Systems》 4、《嵌入式ARM系统原理与实例开发》杨宗德著 理论基础 1、《算法导论》 2、《数据结构(C语言版)》 3、《计算机组织与体系结构?性能分析》 4、《深入理解计算机系统》【美】Randal E. Bryant David O''Hallaron着 5、《操作系统:精髓与设计原理》 6、《编译原理》 7、《数据通信与计算机网络》 8、《数据压缩原理与应用》 C语言书籍推荐 1. The C programming language 《C程序设计语言》 2. Pointers on C 《C和指针》 3. C traps and pitfalls 《C陷阱与缺陷》 4. Expert C Lanuage 《专家C编程》 5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs 《编程精粹--Microsoft 编写优质无错C程序秘诀》 6. Programming Embedded Systems in C and C++ 《嵌入式系统编程》 7.《C语言嵌入式系统编程修炼》 8.《高质量C++/C编程指南》林锐 尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。

困扰ARM嵌入式初学者的若干问题

困扰ARM嵌入式初学者的若干问题 对于ARM嵌入式初学者而言,心中一定充满着疑虑和困惑,很多问题也期待着找到答案。比如: 1、嵌入式要学什么?嵌入式到底有多难学? 2、学ARM需要什么基础,学ARM要发多长时间? 3、学ARM7还是ARM9,直接学ARM9怎么样? 4、如何学ARM,怎么学ARM才轻松? 在此,我针对这些问题提提自己的看法,以期对初学者有所帮助,能在学习的道路上少走些弯路。 一、百花齐放的嵌入式,需要你量力取舍 嵌入式前景广阔,就业渠道多,无疑是当前最热门最有发展前途的行业。特别是随着消费电子的智能化,3G的快速发展等等,嵌入式更显重要。如果你想从事该领域,或者成为该领域的工程师,你就会发现要掌握的东西实在太多。万事开头难,想进入该领域你得找个合适的切入点。面对百花齐放的嵌入式,切入点有很多,我建议你量力而行。 嵌入式大体上可以划分为:硬件和软件两部分。想从事嵌入式硬件的,推荐你从ARM7开始;想从事嵌入式软件的,推荐你从uCOS-II嵌入式操作系统开始。面对“ARM7+uCOS-II”方案,可能有些人会问“ARM9+Linux”方案是否也适合初学者,针对这个问题,我谈谈自己的看法: 1、ARM7比起ARM9,更适合初学者学习。 和ARM7相比,应该说ARM9在性能方面有很大提高,但ARM9更适合作为产品开发平台,并不适合初学者用于学习。主要原因如下: 从硬件设计方面,ARM7主频在100MHz以内,学生完全可以掌握其设计技术,而ARM9在200-600MHz左右,属高速设计,至少有3年以上经验的硬件工程师才可能进行设计,一般学生很难掌握。 从软件设计方面,在教学中采用源码开发的操作系统已成为共识,ARM7资源紧凑,适合运行ucos和ucLinux等源码开放的操作系统,在教学中能够充分体现嵌入式系统对资源、成本、可靠性有严格需要的特点;而ARM9是系统集成度更高的SOC,适合跑WinCE、Linux 等高级操作系统,用于教学是“大马拉小车”,这样造成学生在设计时往往不会关注资源、成本、可靠性的限制,就如同用一台PC进行教学一样,无法体现嵌入式教学的特点。 ? 从应用方面,而ARM7芯片价格比ARM9低得多,而且ARM7芯片是目前嵌入式产品市场的主流,很多手机、小灵通等产品都是基于ARM7的,占到市场份额的90%以上;采用ARM7就如同目前单片机开发与教学绝大多数采用51体系一样,ARM7就是32位微处理器领域的51,有着持久的生命力。 2、ucos比起Linux,更适合初学者学习。 ucos内核精简,代码不长,且相关书籍和学习资源相当丰富,非常适合初学者学习。学习ucos可以很快地熟悉嵌入式操作系统的核心内容,比如:内核是如何工作的,任务如何创建,任务间如何通信,内存如何管理等内容。经过一段时间的学习,可以真正理解嵌入式操作系统,对后期的学习和使用很有帮助。

嵌入式学习心得体会5篇

嵌入式学习心得体会5篇 嵌入式学习心得体会(一) 首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。 对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的modem 射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15k以上。 另一类就是数字部分了,在大方向上又可分为51/arm的单片机类,dsp类,fpga 类,国内fpga的工程师大多是在ic设计公司从事ip核的前端验证,这部分不搞到门级,前途不太明朗,即使做个ic前端验证工程师,也要搞上几年才能胜任。dsp 硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。 而arm单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互pk,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如pxa255处理器i2c要求速度在100kbps,如果把一个i2c外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接lcd,但为什么这种lcd就不能挂在arm的总线上,还有arm7总线上可以外接个winband的sd卡控制器,但为什么这种控制器接不到arm9或是xscale处理器上,这些都是问题。 因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师

ARM嵌入式基础知识

ARM嵌入式 目录 一、开发工具 二、操作系统 嵌入式linux与ARM开发板的入门建议 一、开发工具 二、操作系统 嵌入式linux与ARM开发板的入门建议 展开 ARM嵌入式简介 ARM(Advanced RISC Machines),既可认为是一个公司的名字,也可认为是对一类微处理器的统称。 ARM是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。 1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。 ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。 ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和众多合作伙伴。 根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。嵌入式系统的核心是嵌入式微处理器。 今天嵌入式系统带来的工业年产值已超过了1万亿美元,1997年来自美国嵌入式系统大会(Embedded System Conference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。1998年11月在美国加州举行的嵌入式系统大会上,基于RTOS的Embedded Internet成为一个技术新热点。在国内,“维纳斯计划”和“女锅计划”一度闹得沸沸扬扬,机

嵌入式实验心得体会

嵌入式实验心得体会 嵌入式实验心得体会是计算机专业应该具备的常用知识,以下这篇范文整理个人对嵌入式系统的认识,和进行操作之后的个人体会,对操作的疑难的反思。下面是这篇嵌入式实验心得体会 嵌入式实验心得体会 学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,等到学期结束开始做嵌入式课程设计时,真是茫然无从下手,自,从拿到设计主题后,我就从像热锅像上的蚂蚁,一个字“急”。最后实在没有办“法,逼着自己去学法 习,查资料,总算对嵌入式有了资浅层理解。浅 嵌入式系统本本身是一个相对模糊的定义义,一个手持的mp3和一个一pc104的微型工业业控制计算机都可以认为是嵌入是式系统。总体来说,嵌入式系统是“用于控,制,监视或者辅制 助操作机器器和设备的装备”。一个典典型的桌面linux系统统包括3个主要的软件层---linux-内核、cc库和应用程序代码。内核核是唯一可以完全控制硬件的层,内核驱动程序代件表应用程表序与硬件之间进行行会话。内核之上是c 库,,负责把posixapii转换为内核可以识别的形形式,然后调用内核,从应应用程序向内核传递参数。应用程序依靠驱动内核。来完成特定的任务。来在了解了基础知识之后,我了开始进行上机操作,当然开,,其中遇到很多的难题,很多东西都是第一次接触很,又没有别,人在旁边指导操作,完全凭借自己去摸操索索练习。其中的困难可想而知。然而坚持就是胜利而,,牙一咬眼一闭坚持做下去去,而通过本次实验,我感觉收获还是蛮多的。可感能我对于嵌入能式的知识学习的还是不太多,但是这习之外的东西收获颇丰。之

嵌入式系统学习心得

嵌入式系统学习心得 首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。 对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15k以上。 另一类就是数字部分了,在大方向上又可分为51/arm的单片机类,dsp类,fpga类,国内fpga的工程师大多是在ic设计公司从事ip核的前端验证,这部分不搞到门级,前途不太明朗,即使做个ic前端验证工程师,也要搞上几年才能胜任。dsp硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。而arm 单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互pk,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如pxa255处理器

i2c要求速度在100kbps,如果把一个i2c外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接lcd,但为什么这种lcd就不能挂在arm的总线上,还有arm7总线上可以外接个winband的sd卡控制器,但为什么这种控制器接不到arm9或是xscale处理器上,这些都是问题。因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把方案中的5v变1.8v的dc芯片,直接更换成ldo,有时就会把cpu烧上几个。前几天还有人希望我帮忙把他们以前基于pxa255平台的手持gps设备做下程序优化,我问了一下情况,地图是存在sd卡中的,而sd卡与pxa255的mmc控制器间采用的spi接口,因此导致地图读取速度十分的慢,这种情况是设计中严重的缺陷,而不是程序的问题,因此我提了几条建议,让他们更新试下再说。因此想成为一个优秀的工程师,需要对系统整体性的把握和对已有电路的理解,换句话说,给你一套电路图你终究能看明白多少,看不明白80%以上的话,说明你离优秀的工程师还差得远哪。其次是电路的调试能力和审图能力,但最最基本的能力还是原理图设计pcb绘制,逻辑设计这块。这是指的硬件设计工程师,从上面的硬件设计工程师中还可以分出ecad工程师,就是专业的画pcb板的工程师,和emc设计工程师,帮人家解决emc的问题。硬件工程师再往上就是板级测试工程师,就是c语功底很好的硬件工程师,在电路板调试过程中

不可不知的嵌入式工程师经验(总结篇)

不可不知的嵌入式工程师经验(总结篇) 本文将从技术和就业经验等角度为即将进入嵌入式开发的工程师们,详细讲述了嵌入的概念,嵌入式开发之间的异同以及应该如何做出选择。以下都是前辈的一些经验之谈,希望对大家有所帮助。 第一.工程师眼中的“嵌入式系统” 在工程师看来:着重理解“嵌入”的概念,主要从三个方面上来理解。 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年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,因为毕竟嵌入式系统是计算

嵌入式实验报告心得

嵌入式实验报告心得 篇一:嵌入式系统原理实验总结报告 嵌入式系统原理实验总结报告 车辆座椅控制系统实验 XX/5/23 嵌入式系统原理实验总结报告 一、技术性总结报告 (一)题目:车辆座椅控制系统实验(二)项目概述: 1.为了实现车辆座椅控制的自动化与智能化。 2.方便用户通过智能手机与车载传感器之间的联动。 3.使车辆作为当今物联网中重要的一个节点发挥作用。 4.通过车辆座椅控制系统实验实现对嵌入式系统原理课程的熟练掌握与对嵌入式系统原理知识的深化记忆。 5. 加强本组学生对嵌入式系统原理的更深层次的理解与运用。 (三)技术方案及原理 本次试验分为软件、硬件两个部分。 1.软件部分。 A.智能手机部分,包括通过智能手机对座椅的控制部分、手机所携带的身份信息部分。 本部分软件使用Java编写,其程序部分为:主程序:package ;

import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ;import ; import ; import ; public class MainActivity extends ActionBarActivity { private Button Up = null; private Button Left = null; private Button Dowm = null; private Button Right = null; private Socket socket = null; private static final String HOST = "";private static final int PORT = 10007; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(; initControl();} private void initControl() {

嵌入式学习心得

嵌入式学习心得 如何学习嵌入式系统(基于ARM平台) 前言 网上看到众多网友都问了关于嵌入式系统方面的很多问题,很多都可在这里找到答案,希望我的这篇文章能给他们以启发。也请大家不要轻易转载。 一、嵌入式系统的概念 着重理解“嵌入”的概念 主要从三个方面上来理解。 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 下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运

学好arm嵌入式的最佳方法----初学者必看

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。 嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类: 一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC 的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。 另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全*软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有"花头"可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。 从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。 (2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。

嵌入式心得体会

对于电焊,虽然一点都不陌生,但亲手操作的机会却只有几次,因此我很庆幸能够有这样的焊接机会,进行这样的实践。 焊接看似容易,实则需要长时间练习才能掌握。刚开始的时候,手一直在抖,尤其这次焊的还是贴片电容、电阻,原器件比以前焊的小好多,用镊子的手一抖就夹不住了,拿着烙铁的手抖得都不容易将器件焊上,焊出来的焊点也特别难看,在不断尝试,不断挑战自我的过程中,我的手不抖了,也基本能掌握锡的用量了,当焊点终于不再“丑不忍睹”的时候,对焊接也没有当初的恐惧了。对自己的动手能力也有了信心。 在焊接的过程中我学到了许多以前我不知道的东西,比如,以前我只知道有电烙铁,但不知道它还有好多种类,有单用式、两用式、调温式、恒温式、直热式、感应式、内热式和外热式。松香可以将多余的锡弄下来,用酒精可以把板擦的干净些。通过视频和查找资料,知道了在焊不同的器件时用的电烙铁的头不同,比如在焊引脚时要用尖头,焊CPU时要用刀口,为防止锡将焊引脚的小孔堵住,用松香把纸条粘在小孔上,把小孔盖住,把CPU的引脚对齐,用锡先涂满两边,固定好芯片,在焊另外两边,然后用尖头的电烙铁沾着松香将多余的锡弄下来。 本次课程设计的是信号发生器,信号发生器在EDA课程,数字信号处理课程中都曾涉及,所以还是较为熟悉的,在设计之前查阅了一些相关书籍,也从网上查找了一些相关资料,程序代码中运用到了C语言,将程序加入到嵌入式结构框架中,进行定义变量,端口,设定所用的GPIO参数等等。 在焊接的过程中我不仅学到了知识,而且让我深深地体会到一个团队中各成员合作的重要性,要善于团队合作,在进行团队合作的时候,还要耐心听取每个成员的意见,每个人都有长处和短处,只有在包容别人的同时我们才可以取长补短,不断完善和不断进步,交到更多的朋友,学到更多的知识。同时还让我明白:做任何事都要一心一意,严谨认真,反复琢磨,不能畏惧,要有信心和勇气,一定要做好充分的准备。不能盲目去做,要坚持,还要学会反思跟总结,我们不是为了完成任务而完成,这还是一个学习跟提高的过程。 在大学里学的不是知识,而是一种叫做自学的能力。在这个知识爆炸的时代,知识更新太快,靠原有的一点知识肯定不行。以后的工作中肯定会用到一些新的

嵌入式系统学习心得总结

嵌入式系统学习心得总结 嵌入式系统学习心得总结 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。以下为你带来嵌入式系统学习心得总结,希望对你有所帮助! 嵌入式系统学习心得总结篇1 嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。 看到了嵌入式系统的范围,你也应该知道嵌入式系统工程师是做什么的,就是开发上面的那些电子产品的工程师。 关于如何学习嵌入式? 学习嵌入式,该学习什么基本的知识呢? 首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,

C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。 其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。 还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。 还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。 最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想

国嵌嵌入式linux学习视频

转:2018国嵌嵌入式linux学习视频 给各位学习嵌入式的童鞋参考一下,很好的教程哦。 最新公布的有两套培训视频,第1套为《国嵌嵌入式培训视频》-2440版,该套视频是国嵌使用2440开发板教案的现场培训班视频,包含了2018年1月最新版的《嵌入式体验入门班》、《嵌入式Linux应用程序开发》、《ARM系统进阶班》、《嵌入式Linux内核驱动进阶班》完整视频。 第2套为《国嵌嵌入式培训视频》-6410版,该套视频是国嵌使用6410开发板教案的现场培训班视频,包含了2018年1月最新版的《嵌入式体验入门班》、《嵌入式Linux应用程序开发》、《嵌入式Linux内核驱动进阶班》完整视频。 特别提醒:如果你是嵌入式初学者,并且还没有购买开发板,建议你下载《国嵌嵌入式培训视频》-2440版来进行学习,如果你已经购买了6410开发板,那建议直接下载《国嵌嵌入式培训视频》-6410版来学习。 如果还有同学需要购买国嵌《ARM系统深入班》、《ARM系统深入班》、《嵌入式Linux内核驱动深入班》、《系统移植专题班》《嵌入式linux高级工程班》,可以自己去联系国嵌https://www.wendangku.net/doc/b92804302.html, 6410版课程下载说明:该套6410课程里面包含了《嵌入式体验入门班》<不同于2440)、《应用程序开发班》<同2440版)、《嵌入式Linux内核驱动进阶班》<不同于2440),并且同时包含了对tiny6410/mini6410,OK6410的支持,大家下载时根据自己情况选择适合自己的部分下载。 国嵌2018-2440最新版(2018-1月> 公开视频光盘目录结构 国嵌视频1.iso -学习方法与课程体系介绍<学前必看) -学习方法介绍.avi -国嵌嵌入式课程体系.pdf -嵌入式Linux学习方法.pdf -国嵌课程1-嵌入式入门体验班<上) -第1天<嵌入式系统概述) -国嵌体验入门班-1-1<嵌入式系统概述).avi -国嵌体验入门班-1-2

嵌入式开发学习心得

个人学习嵌入式心得体会 就我个人而言,从最开始对嵌入式一窍不通到现在越学越感兴趣,当然相应在嵌入式方面的提高也是很明显的。学习潜入式越来越成为我学习生活的一部分,现在把我的学习过程与大家一起分享,希望那些和我一样对嵌入式想学而又迷茫,不知从哪入手的同学朋友有所帮助。 一、语言基础 嵌入式开发很大一部分靠C语言,尤其在底层驱动等用的很多,当然在应用开发还用到诸如C++等其他语言,但我想对于一个初学者有C基础就足够了,等到学到一定程度再去扩展。所以,C 基础是学嵌入式的前提。 二、单片机等知识的储备 我觉得单片机、嵌入式等这一类都有很大的相似性,知识功能不一样,但工作的原理、控制原理都和大的相似。就我个人而言,能比较快的进入嵌入式的学习与提高,很大一部分依赖于对单片机的原理有较深入的学习和理解,单片机比较简单,学习起来相对比较容易,所以我建议哪些想学潜入式的同学,可以和我一样从单片机入手,那样不仅可以理解这些微处理器、微控制器的操作与控制原理,当然还可以顺便学学汇编语言,这对后面的嵌入式学习都有很大的帮助。 三、接受培训 暑假,我在学院的组织下参加过ICC的嵌入式培训,虽然接触的都是皮毛,但是对我进入嵌入式的学习起了一个很好的引导作用。所以,如果有条件的可以去报名正规的专门的培训班,这样如果遇到问题也可以比较容易的得到老师或专业人士的指导,提高学习效率。 四、买开发板自己动手做 个人觉得这是最重要的一种做法。这东西没自己亲手做,程序没亲手写,没有进行调试等,都是很难学到东西,因为很多东西感觉看的都懂,其实真正做起来就什么都不会了。因此买块板来自己做,这样才能真正将所学的应用到实际中去。而且这样做映像很深,死记硬背原理及规则不但不可行还会拖垮你的学习兴趣,自然学不下。 总之,我觉得,基础知识很重要,但是动手做更重要!我能说的就这些了,能力有限,不好的地方请指教!

嵌入式软件工程师职业规划

嵌入式软件工程师职业规划 谢谢大家,非常高兴有机会再次回到校园和大家共同探讨“软件工程师职业规划”这样一个话题。 在这个讲座开始之前,我想让大家先看一个图片,这个图片是实景拍摄,在北京的中关村,是招聘会的一个现场的画面,密密麻麻的全是人。大家看到之后有什么感觉呢?你们可能感觉很有震撼力,对于我来说就是勾起了痛苦的回忆。确实想找一份自己满意的工作不是很容易,特别是对于我们软件专业的学生来说去找一份工作就需要规划,我今天就把我的一些经验介绍给大家,使大学能够及早地规划好自己的人生。 大家最小的也是大一的吧,我觉得即便是大一,离找工作也不远了。我们怎么使我们自己在面临找工作难的环境的时候能够有很强的竞争力,我觉得大家应该从大一的时候就开始有意识地去规划自己的人生、去塑造自己,使自己能适应这样的环境,这就是我们今天要讲的一个主题。 今天我们的主题是做软件的人的规划,我们这个主题有以下几个要点:第一,我们要分析一下中国软件产业的发展现状,大家既然将来要从事这个行业,要在这个行业“混碗饭吃”,所以一定要了解我国现今的软件行业到底发展到一个什么样的时期,它有什么特点,我觉得这个是我们应该了解的第一个话题。第二,我们要了解一下我们国家目前软件人才的体系结构,它有什么特点,它出了什么问题。因为只有了解了这一点,我们大家才能够对症下药,才能按照这样的需求去规划我们的知识、技能等。第三点,我就跟大家讲一下,我们要做一个合格的软件工程师或者准备做一个合格的软件工程师应该具备哪些基本的素质和知识。这些基本的素质和知识往往是你第一次去面试一个公司的时候,那个面试官要考核你的最主要的东西。 第一个,我们先来看一下我们国家软件行业发展的现状。软件是IT产业中的一个环节。硬件、软件、IT服务是组成IT产业结构的三大块。软件和硬件看起来区别很大,但是对于我们来说动起来其实差别不大。因为在硬件中的一些理论、一些方法现在已经慢慢渗透到软件行业了。IT服务是个什么概念呢?大家知道,软件也好,硬件也好,它们不断地发展,越来越壮大,那么对于一个企业来说,它如何能够从IT的发展中受益呢?比如说一个企业想有一套这样的软件帮助它进行业务的管理,那它怎么能方便的获得这样的一些利益呢?IT服务就是对于这样的情况发展起来的一个分支。大家可以这样理解:软件和硬件是核心,IT服务是包在外面的接口,我们每个个人也好、每一个这样的企业也好,可以通过IT服务去获取一些利益。这就是我们简单地给大家介绍一下IT产业结构的一些方面。 我们主要还是搞软件,下面我就来给大家介绍一下软件行业发展的概况,特别是在我国软件行业的发展情况。我们通过数据可以看出我们国家的IT行业特别是软件行业呈现一个非常快的上升的势头,连续5年以28%的速度递增。这样的数据告诉我们IT行业在我国应该还是一个飞速发展上升的时期。再就是现在的社会对软件工程师也好、网络工程师也好,对人才的需求非常大,目前每年至少在40万人以上,这是一个相当庞大的数字,大家可以计算一下,我们国家每年毕业的大学生是多少,可以分析一下这个需求量在大学毕业生中所占的比例。

一个初学者的嵌入式培训体会

一个初学者的嵌入式培训体会现在嵌入式做为计算机发展的一个新的方向越来越得到社会的重视。随之而来的是很多培训班的诞生,但是如何能在琳琅满目的培训机构中找到一个能真正学到东西的培训班呢,这是摆在众多想学嵌入式的人面前的第一个问题。我在了解了众多培训机构并且试听之后,最终选择了Tocore 嵌入式培训,之所以选择,是因为我看重老师的实际能力和认真负责的态度。我非常荣幸能够成为Tocore中的一员。 嵌入式开发,做为一个新的计算机发展方向,已经越来越受到社会的重视,社会上的需要也十分巨大,可是真正懂得嵌入式开发的人才缺不是很多,归结去原因主要是一下几个方面: 一:因为它是新兴的一个发展方向,懂得的人自然不多。 二:学习嵌入式需要比较庞杂的知识结构。操作系统、微机原理、C/C++语言、数据结构等。 三:嵌入式学习,上手很困难,不知道从哪里着手去学习。 在刚开始接触的时候,我也是抱着本书,自己摸索,可是越看越迷茫,连很多书里的名词都不知道是什么意思,去网上查也没有得到答案。可是在Tocore我得到了很好的指点,在这里,由于老师都是十分有经验的项目经理,他们懂得如何去学习,从哪里开始入手,这对于我这样的背景知

识比较薄弱又接触时间比较短的人来说实在是太有帮助了。 虽然课程还没有完,可是在这段时间的学习中,我按照老师的指导在完善的课程体系下进行系统的学习,已经掌握了U-boot、kernel以及linux移植的基本框架,(我想在今后的学习中一定会对这些知识更加熟悉以至精通!)这对于2个月前什么都不懂的我来说已经是很大的提高了!用得是ARM9的板子,这也是市场上现在比较新的,比较流行的板子,很多公司在实际的产品开发中就用的是ARM9。在课堂上,老师的讲解和我们的练习相结合,理论联系实际。老师除了讲解知识外,还结合了大量的实际案例和操作,这对于我对问题的理解和知识的记忆有很大帮助。 最后谈谈对学习态度的一点看法。嵌入式学习,是比较耗时的,前期需要很多知识做铺垫,有很多人在这个过程中走了不少弯路,于是开始失去耐心、失去信心,以至最终放弃学习。所以我想有必要强调一下问题,在刚开始的时候,自己什么都不懂,可是学习的愿望很强烈,每次上课都希望上完课就能如何如何,可是下来发现自己好像离自己原本的目标还很远,于是心里着急,自己跑到网上搜了很多资料,每天乱看,可是并没有很大的帮助。我想说的是,学习嵌入式一定要有耐心和毅力,不能急躁,按照课程的安排自己多做一些总结和练习,等到知识慢慢的积累下来就会有一种豁然开朗的感觉。

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