嵌入式系统开发需要学什么
嵌入式开发作为物联网体系结构中的重要环节在未来的产业互联网阶段将有较大的发展空间,嵌入式开发通常涉及到设备、网络以及平台三部分内容。
对于初学者来说,要想达到企业的基本用人标准,需要具备以下知识结构:
第一:设备。嵌入式开发要接触到大量的设备,所以掌握设备的相关知识是学习嵌入式开发的第一步。掌握设备的相关知识需要从设备的组成部分开始,比如设备的体系结构、传感器、操作指令、操作系统以及开发环境等。对于初学嵌入式开发的人来说,选择一个适合的实验设备是比较重要的,比较常见的选择包括arduino、树莓派(raspberry pi)、bbb、edison等,这些微控制器主板都有比较完善的功能,会为初学者提供一个较好的实验环境。
第二:编程语言。在嵌入式开发领域,比较普遍的选择是c语言,当然python和javascript也有一定的应用,另外就是实验主板往往也有针对性的开发语言,比如arduino就采用了类似c++的arduino语言。通常情况下在pc上开发微控制器程序,接着把程序写入微控制器,最后看一下执行的效果。总的来说,嵌入式开发的编程过程并不难,但是需要做大量的验证性实验,这个过程还是比较麻烦的。
第三:平台。嵌入式开发作为物联网开发领域的重要环节需要跟物联网平台进行频繁的沟通,这个过程中涉及到设备、架构、网络、安全、应用维护等几个重要的内容,掌握这些内容对于嵌入式开发还是比较重要的。
随着产业互联网的发展,未来嵌入式开发领域将有较大的发展空间,从就业的角度来看,学习嵌入式开发是个不错的选。
嵌入式软件开发是做什么的
国内嵌入式公司主要有两种: 偏底层芯片公司,偏应用层业务需求公司。
实际上大多数公司都是做应用层业务需求;
比如做人脸识别打卡机的,做gps导航的,做云终端设备的公司等。
这类的公司,除非已经是非常大规模的,正常是几十号研发在运作。
人脸打卡,人脸识别模块是核心,但是硬件和软件是买的,公司可能制作c++,qt实现上班打卡业务的工作使用场景,数据传输,导出导入等相关编程
gps导航的,gps模块,核心驱动,linux,wince的,都不需要此公司的开发者去做开发。
云终端的,核心接入协议可能是买思杰的方案,也有可能买vmware的方案,再不行的就搞个山寨的spice协议,rdp协议这些免费开源的。
以上几个产品,核心模块,买之,接口使用之,大多国外技术。
硬件方案,要么开发板生搬硬套要么外包给硬件厂商。
那这些公司的开发做什么呢?
如果产品ui是的是qt, 那就写大量的c++代码,各种好的软件框架,各种多线程,多进程配合。
如果ui是gtk,那就写大量的c代码,各种结构体来模拟面向对象的开发思想,当然也可以学习内核开发者写的牛x框架,比如学习输入子系统,设备驱动模型啊,binder驱动模型啊,将内核的编程思想灵活运用到应用层编程,写出稳定,拓展性极强的框架就是很牛的人物啦。
真正涉及到linux底层开发的偏少,如果一个人真正深入掌握linux内核的进程管理,时间管理,内存管理,文件管理,各种驱动框架等,能在各种硬件平台做一个实时操作系统的,还懂裸机,写点启动代码来引导自己的操作系统,那就是大牛中的大牛。
回归到刚进入嵌入式世界探索的孩子们,其实你们目前的水平去分析uboot,分析linux内核源码,是一件很egg疼的事情。
调用接口来实现多线程,来处理进程通信,来写socket编程都是难事,甚至还在纠结指针传参,纠结指针数组和数组指针,怎么能去看uboot,linux内核源码呢?
做技术得一步一个脚印。而很多童鞋们都会被培训机构设置的课程而烦扰。或许连c和指针,c程序设计都没懂多少。而在那里高谈大论。不管怎么样,只要我们基础扎实了。才能进一步探究linux内核框架。
电源PCB布板的10个法则,你了解多少?
Rambus宣布一套完整的HBM2E控制器+PHY物理层方案 可帮助企业轻松用上HBM2E
锤子T3什么时候上市?锤子T3最新消息,锤子T3或将迎来全面屏时代,全面屏+天马造?
出门问问在TicWatchC2系列加入玫瑰金款式
射频波形生成和测量的复杂性
嵌入式系统开发需要学什么_嵌入式软件开发是做什么的
以FPGA为基础的Σ-∆ 转换中抽取滤波器的设计过程详解
2019年9月发明授权专利榜,OPPO和华为位于榜单前两位
智慧工地专用物联网主机E6000介绍
晶体管输出伏安特性讲解
通过VR消防演练系统零距离来感受火灾逃生的重要性
台积电LGD将进入苹果Micro LED供应链
DC/DC转换器的基板布局-接地
华为OV争锋 盘点2018年国内智能手机市场
区块链+保密软硬件怎样来布局
苹果隐瞒天线阵列遭遇集体诉讼
只有你想不到,20款极具科幻感的电子产品
关于3D可视化的研究分析和简介
索尼推出新专利3D建模,或将是PS5的扩展SSD存储单元
露点检测仪的维护