嵌入式系统开发学习要掌握哪些基础知识,以linux+arm为例,要掌握哪些知...
发布网友
发布时间:2022-04-22 20:24
我来回答
共4个回答
热心网友
时间:2024-03-02 13:28
1,嵌入式系统与软件移植。
2,驱动程序的设计。
3,嵌入式软件的设计。
最好先了解一下PC机上的Linux系统以及一些常用的命令,再买一块开发板自己练习一下。做嵌入式要用到C语言,所以C语言功底要扎实。
热心网友
时间:2024-03-02 13:36
1、嵌入式硬件的设计
(包括原理图和PCB) CPU、时钟电路、电源电路、复位电路、SDRAM、FLASH、LCD、URAT、USB host、USB Device SPI、 CAN、 IrDA、 Zigbee、IIC等等
2、Bootloader的移植
(上电后运行的第一段程序,类似PC的BIOS和MBR)
可以分开理解为Boot和loader Boot即boot cpu
loader为把Flash上的镜像文件loader进内存进行运行(Nor Flash运行速度慢,Nand Flash不支持XIP)
Bootloader两种模式,加载模式和下载模式 加载模式用于产品发布、下载模式用于产品调试阶段,主流的Bootloader有U-boot,支持多种体系结构。另外还有一个是韩国的vivi,不过目前已经不再进行更新维护,但可以作为学习使用
3、内核的裁剪与移植
(不同的CPU体系结构和不同的板级设备,所以内核需要裁剪与移植)
操作系统主要的功能包括:进程调度、进程通信、文件系统、内存管理、网络协议的实现
4、根文件系统的制作
内核启动后会挂在根文件系统,根文件系统下会有 root、bin、devices、home、mnt、usr、proc、等文件夹,每个文件夹均有不同的作用。
busybox:是常用的根文件系统制作工具
5、驱动程序的开发
驱动程序主要包括:字符设备驱动、块设备驱动和网络设备驱动,是整个开发流程中最难的一部分
6、应用程序开发
常用QT进行开发,这部分是和嵌入式关系最弱的一部分,把开发出来的程序通过TFTP或者NFS拷贝到开发板上进行运行
这是嵌入式产品开发的几个部分:
如果说要掌握哪些知识:1、模数电(看懂原理图,绘制原理图的基础)
2、高频(掌握当然更好、不掌握影响也不大) 3、计算机组成 微机原理(弄清计算机整个执行过程) 4、编译原理(一个源程序经过预处理、编译、汇编、链接成一个可执行程序) 5、Linux内核(知道进程调度、进程间通信、文件时间操作、网络编程等等) 6、QT进行GUI的开发
我也才学没多久,不足之处,还请见谅
热心网友
时间:2024-03-02 13:36
软件的设计
热心网友
时间:2024-03-02 13:28
可以参考这个:
http://linux.chinaunix.net/techdoc/develop/2007/04/30/956815.shtml