什么是嵌入式设备?/ 嵌入式设备的定义
区别于通用计算机的其他设备都可以称之为嵌入式设备 (个人电脑,服务器)
一段时期内,必备的硬件配置。
嵌入式开发包括哪些部分: 底层驱动开发:
关键字:BSP/嵌入式Linux/wince/vxworks…
上层应用开发:
关键字:Posix
底层驱动开发工程师工作内容:
jd
以嵌入式linux系统开发为例: 熟悉linux驱动开发的接口,模式,限制。(操作系统的两种状态:内核态,用户态),驱动开发在内核态,其开发模式和接口有着和上层开发类似,却完全不同的开发接口api。熟悉某(几)款常见芯片的开发: 著名半导体芯片厂商:TI,QUALCOMM,MTK,Intel,三星,Marvell,Navida,NXP,Freescale,Broadcom,Realtek,Ambarella。国内知名的芯片厂商:海思,allwinner,rockchip。人工智能芯片厂商:搞人工智能的都搞芯片了。 熟悉常见外设,总线的linux驱动开发: 包括,字符设备:gpio i2c spi usb rj45 i2s csi2(mipi)uart。块设备:scisi,sata,pci…熟悉各个总线,外设接口的内核驱动模块(每一种外设总线,都有各自的硬件特性,不同厂商不同芯片采用不同的控制器,所以各个外设的驱动在不同的芯片上都有不同的实现)熟悉linux的驱动总线模型(linux为了管理多种多样的外设抽象的架构模型),每一种总线都对应一个内核管理模块。(usb是一个十分复制的协议,其内核管理模块也十分复杂庞大)
操作系统多样性:
实时,非实时
宏内核,微内核
存储小,内存小,运算能力低,视频类编解码能力强。
单片机,m3,m4,arm,mips,x86
芯片多样性:多种多样
接口,总线:gpio i2c spi usb rj45 i2s csi2(mipi)uart scisi,pci
dma
字符设备,每种总线对应一种内核驱动模块,设备模型设备树。
块设备:sd卡,u盘,硬盘,文件系统
文件系统多样性:jffs2,ubi,yaffs2,
存储:nor flash nand flash -> emmc ufs
系统启动:bring up 冒烟
稳定,差异性,外设管理(驱动),寄存器,map
datasheet