嵌入式开发的门槛相对较高(不是相对较高是太高了对于没有学过计算机硬件的人来说),对程序员的要求一般都是对底层感兴趣,学习能力、动手能力要强,对问题能够从全局和细节去把握,有很强的系统分析和设计能力。
这些说的还有些模糊,我简单的告诉你那就是嵌入式不仅仅要考虑软件的问题,更要考虑硬件的问题,它不想Java之类什么的写完之后随便放到一个有jdk的环境中就可以运行,它还要考虑硬件的兼容性,通常没有学过计算机硬件知识的人,或者说是对计算机硬件特别了解的人很难看出问题所在。
你不仅要学习计算机组成以及微机原理,了解微型计算机的硬件工作原理,还要明白CPU、总线、I/O、存储器等一些关键结构是怎么工作的,虽然是很枯燥的知识,但是对熟悉外围设备硬件工作方式,及操作系统,软件架构的设计及优化相当关键。
同时还要对操作系统很了解,嵌入式产品应用比较广泛的是Linux和WinCE。但操作系统的内部设计原理都是殊途同归。首先要去学习的是操作系统原理,去了解进程通信、内存管理、文件系统等几个重要的部分,因为这些在软件开发尤其是内核驱动开发时会用到。接下来可以去熟悉至少一种主流的操作系统,Linux是一个很好的选择,去了解它的内核架构,设备驱动架构,如何去编译,裁剪,编写应用程序,以及如何使用在具体的嵌入式产品上。
还要学习一些基本的电路知识,如门电路、逻辑电路、存储器、寄存器,为了更好的理解嵌入式芯片,存储器,外围设备等硬件的设计,但往往在软件开发中未必能用的到。因为大部分硬件都提供了很完整的软件接口。
还要学习c语言等等但是嵌入式开发对C语言应用的要求会更高。要对内存分配,文件访问,寄存器访问,预处理指令,中断处理程序等等相当熟悉,这些都是在使用中要注意的细节问题。C语言对程序的优化也很重要,而这些往往是需要从全局去考虑。汇编一般是和处理器的指令集相关的,可以更好的去理解处理器的工作原理,往往是用在一些需要效率的地方,如系统的初始化。
一句话: 嵌入式慎入,请细细斟酌。
还有一句话送给你:年龄不是问题,问题是你有没有能力。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。