嵌入式开发到底有多难?【转】
每年,全球最大的中文开发者社区CSDN都会进行一项开发者大调查的活动,这个涉及全国几十个地区,吸引上万名开发者参与的大型调查活动每次都会得出一些有趣但很重要的结论。譬如,在今年的开发者大调查中,我们发现有34%的开发者面临嵌入式软硬件开发的困难,几乎占了开发者面临困难的三分之一强。
数据来源:2017中国软件开发者大调查
嵌入式软硬件开发都是坑?
那么,嵌入式软硬件开发真的就那么难么?我们来看看知乎上的问答:
一篇《嵌入式的坑在哪方面?》的文章,获得了26个回答,242条点赞。在这篇文章中,列数了嵌入式软硬件开发中的两个坑:
1,需要学习大量的软硬件知识。不仅需要学习Java,C++等编程,要深入底层,汇编,算法数据结构等等都要了解,硬件方面就更多了,电容电阻,模电数电、PCB,各种大小,功率信号完整性。做DSP的,还要知道算法仿真,数学理论、还需要考虑硬件设备,一些芯片的编程还要考虑电路结构,电容大小。调试上面,还需要外接设备,还要看懂示波器,频谱等等。
2,各种硬件平台的生产力工具不统一。编码,编译,调试,烧录…各个方面都是大坑。使用的语言,操作系统平台,芯片性能也不统一。作者表示,最多的时候,电脑上有5个编译环境,还不包括自己学习用的环境。
而在另一篇获得了59个回答,695人的点赞的文章,《嵌入式真的是个大坑。被逼转行?》里,作者建议开发者尽量选择嵌入式开发,尽量不要选择小众,过于专业化的平台,要上大众通用平台,系统性学习,而这种通用的平台才是一个开放的,系统的,资源源源不断的平台,这才是能够真正学到本领的平台,对开发环境和平台本身的理解也会远远超过DSP的。否则,最后可能只能是被逼转行。
填上软硬件开放的坑
实际上,老孙再看完这两篇文章后觉得,开发者在嵌入式软硬件开发中遇到的这些坑,本质上是因为选择了不合适的芯片平台,如果在决定做嵌入式软硬件开发开始,就选择到了正确的芯片平台,那么,前面所说的这些坑,就会自然而然的烟消云散。不信,您往下瞧。
譬如,如果开发者选择了AMD最新推出的基于高性能x86”Zen"架构的霄龙3000系列和基于”Vega“架构显卡的锐龙V1000系列嵌入式处理器,开发者就可以愉快的在简单易学、耳熟能详的RedHat,Ubuntu等基于Linux的操作系统以及Windows上进行轻松的嵌入式软硬件开发。霄龙3000和锐龙V1000的产品系列为开发者提供了非常强大丰富的软件生态系统,尤其值得一提的是Mentor嵌入式Linux和Codesourcery软件工具,AMD全球副总裁兼数据中心与嵌入式解决方案事业部总经理 Scott Aylor介绍说,Mentor嵌入式Linux是Mentor Graphics提供的预封装的Linux版本,CodeSourcery软件工具可以为开发者提供增强的性能和特性,这两个工具可以为开发者提供良好的编程环境和高效率的开发支持。在这个基础之上,AMD将持续做后续的维护和新版本的更新等,另外,AMD还为开发者提供了其它的性能分析工具,用来基于应用做更多的优化。
更为重要的是,AMD 霄龙 3000系列嵌入式处理器家族能够给带来企业级的可靠性、可使用性和可服务性(RAS)特性,AMD锐龙V1000系列嵌入式处理器家族能够带来比上代产品高达整整2倍的性能提升。而这对于使用嵌入式系统的用户来说无疑是非常重要的。
对于用户来讲,除了性能外,嵌入式系统的安全性是他们最为关心的问题,但无论是AMD 霄龙嵌入式处理器,还是AMD锐龙嵌入式处理器,都会通过硬件级片上的安全处理器帮助用户保护数据安全,并由基于硬件验证启动的功能来保证系统启动已信任的软件。另外,安全存储加密(SME)功能将会检测未授权物理内存的访问,同时安全加密虚拟化(SEV)提供进一步的检测,加密虚拟机内存,而这些都无需开发者针对应用作出任何相关调整,就可以充分满足用户对诸如顶式交换机、瘦客户端设备或者其他介乎二者之间的系统的各种各样的需求。
而在实际的应用中,锐龙V1000系列产品具有比较好的竞争优势,特别适合诸如客户端、游戏、医疗成像、工厂自动化和物联网方面的一些应用,而霄龙3000系列的产品能够为边缘计算、联网网络、存储等提供了性价比较高的嵌入式解决方案。
你看,这样,既填上了嵌入式软硬件开发中的各种坑,又给使用嵌入式系统的用户提供了广泛的应用场景以及性能和安全性上的保证,开发者们,你们何乐而不为泥?
---------------------
作者:孙浩峰
来源:CSDN
原文:https://blog.csdn.net/sunhf_csdn/article/details/79543310
版权声明:本文为博主原创文章,转载请附上博文链接!