什么是嵌入式系统?
嵌入式系统就是嵌入到各种专用设备中的可以运行程序的专用系统。
比如说手机,火箭,机床,家电都可以拥有嵌入式系统,手机用她操控通讯器件播放媒体文件,火箭用她计算导航路线,家电用她监控温度,掌握时间。。。
学习嵌入式需要掌握什么?
多多益善!从系统设计方面可以分硬件和软及两个方面。
硬件方面需要了解:
1 基本软件的使用 :原理图设计,pcb layoout ,电路仿真 。需要熟悉的基本工具比如 orcad ,pads ,protell 。其中画原理图推荐orcad。
2 电路设计的理论 :滤波器原理,电源设计原理,电磁辐射原理 ,各种常用的基本单元电路,比如复位电路,震荡电路,放大电路。。。
3 可编程器件使用: 熟悉cpld ,fpga期间。会使用常用的硬件描述语言进行硬件编程。
4 动手能力: 会焊接常用芯片,熟练使用示波器抓波形,有条件的话掌握使用逻辑分析仪器。
软件方面需要了解:
1。 熟悉掌握c语言的语法和运行环境,了解代码中的堆和栈,熟悉理解物理内存和虚拟内存
2 。编译器使用(编译器,连接器,汇编器) 包括各种参数的选择, 会使用makefile 进行工程编译
3。掌握常用精简指令集处理器比如arm或mips的指令系统,缓存系统,时钟系统,以及电源系统
4。 熟悉至少一种操作系统。清楚的明白什么是中断,线程,定时器 ,信号量和锁。。。
5。熟悉各种接口的原理,知道如何用c语言进行寄存器配置
学嵌入式就要学arm吗?
每一个完整的嵌入式系统都离不开处理器,存储器和各种执行单元。
处理器可以是51单片机,可以是arm,可以是mips,powerpc 甚至可以是x86处理器。虽然arm处理器应用广泛,但并不是说学了arm,才算学了嵌入式。
学习arm,mips ,powerpc 都可以,只是arm 的资料相对更多。而学习的重点则应该是处理器的原理,各种接口的使用,比如cache是什么,怎么用?
DMA 是什么,有什么用处?怎样可以让系统用最小的功耗达到最大的效率?
学嵌入式就要学linux吗?
要根据情况。系统的复杂程度不一样运用场合不一样,选用的os会不一样,简单的应用搞个rtos就好了,复杂一些的才需要考虑linux 或者wince
但基本的一些概念是相通的必须深入理解:比如虚拟内存,缓存,信号量,线程。。。。