嵌入式分为两大模块吧,一块是基础硬件。也就是根据要求用硬件技术去实现产品的底层电路,这部分一般由电子专业方面的学生来完成。第二大块就是软件部分。
大多数初学者都认为“嵌入式系统=MCU硬件系统+小程序”。这些学者大 多具有良好的电子技术基础知识。实际情况是,早期MCU内部RAM小,程序存储器外接,需要外扩各种I/O,没有像USB、嵌入式以太网等这样较复杂的接口。因此,程序占总设计量比例小于50%,使人们认为嵌入式系统(单片机)是“电子系统”,以硬件为主,程序为辅。但是,随着MCU制造技术的发展,不 仅.MCU内部RAM越来越大,Flash进入MCU内部改变了传统的嵌入式系统开发与调试方式,固件程序可以更方便地调试与在线升级,许多情况下与开发 PC机程序的方便程相差无几,
只不过开发环境与运行环境不是同一载体而已。这使得嵌入式系统的软件硬件设计方法发生根本变化。实际上说白了嵌入式就是一个硬件电路加上一个实时操作系统。
有些学者,认为硬件是生产厂 商的事。然而嵌入式系统产品的软件与硬件均是需要开发者设计的。现在很多从事嵌入式的软件开发者对 底层硬件的基本原理不理解。特别是有些功能软件开发者,过分依赖于底层硬件的驱动软件,自己对底层驱动原理知之甚少。实际上,一些功能软件开发者,名义上 在做嵌入式软件,其实仅仅是使用入式编辑、编译环境而已,本质与开发通用PC机软件没有两样。而底层硬件驱动软件的开发,若不全面考虑高功能软件对底 层硬件的可能调用,也会使封装或参数设计得不合理或不完备,导致高层功能软件调用困难。
由此可以看出,若把嵌入式系统的开发孤立地分为硬件设计、底层硬件驱动 软件设计、高层功能软件设计,那么一旦出现问题,就可能难以定位。实际上,嵌入式系统设计是一个软件、硬件协同设计工程,是要在一个大的框架内协调工作。
所以说嵌入式系统 与硬件紧密相关,是软件与硬件的综合体,没有对硬件的理解就不可能写好嵌入式软件;同样,没有对软件的理解也不可能设计。
所以我建议同学们:如果想成为一名真正的嵌入式系统设计师,在初学阶段,必须打好嵌入式系统的硬件与软件基础。
专业嵌入式linux、ARM、STM32、单片机、安卓、PCB、电子、FPGA等技术学习,所有课程均可免费试听,详情请咨询刘老师:电话/微信18925083678,QQ1736393611。深圳(南山+民治+龙岗+西乡),广州,郑州,长沙,南宁八大实训基地统一授课中!!
|