嵌入式开发
经常会有人说嵌入式开发,嵌入式开发千差万别,我总体上分为4个等级
- 微电子开发
- RTOS开发
- 脚本开发
- 富应用开发
微电子开发
这一类产品行为比较固定,比如说电视遥控器,遥控汽车,电饭煲,恒温烧水壶,温湿度传感器,智能门锁等。这些设备行为都比较简单,通过按钮可以设置系统功能和行为。代码量不大,经常会选用flash小于64K,内存小于8K的单片机进行开发,价格在几块钱,这样的产品售价也很低,几块钱,几十块钱。代码结构常以裸机为主。也有一些封装的调度器,比如,contiki,osal,小小调度器,nordic的事件调度器等
RTOS开发
随着业务的增长,设备的行为复杂了,代码量也大了,这时候可以考虑用rtos开发,这类产品的行为相对复杂,比如说带一个SD卡做文件存储,带一个触摸屏,做一些固定的交互,带一个网卡协议栈等。这一类开发还属于单片机开发。常用的操作系统有华为的liteos。ucosII/III ,freertos, rtthread等。虽然和用户有了一定的交互性,但是这一类应用的业务很少变动。
脚本开发
C/C++是嵌入式开发常用的语言,但是C/C++对工程师来说难度还是很大的,一些人开始尝试用脚本开发,底层用一个RTOS+脚本解析器,lua和micropython都是针对嵌入式推出来的产品,合宙的luatOS 是在脚本上又做了一个封装,代码跑在协程里。python 有一大群工程师,在脚本开发领域也很流行。用脚本开发,大大降低了产品开发的难度,脚本对设备的性能要求很高,lua解析器需要120k以上的flash,python解析器需要256k以上的flash。脚本的效率没有c和c++ 高,这类产品用在计算量不大,纯业务的场景。
富应用开发
这个就是现在流行的linux和安卓开发。这一类产品经常有华丽的界面,比较酷的玩法,比若说手机,就是一个嵌入式终端,这一类产品,应用开发和底层开发完全区分开来。完全是两个不同的几乎是栈。应用经常会更新,并且变化还可能比较大。比如说,广告机,收银机,医院的叫号系统。
方案的选型
各个方案之间会有交叉的部分,比如说智能门锁,可以用裸机开发,也可以用RTOS.都能满足需求,对于一些系统,可以用RTOS,也可以用脚本,
一些业务相对固定的用RtOS或者的脚本开发就可以,但是你用安卓或者linux也不为错。