完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
什么是嵌入式?
先说说背景,在计算机领域内,知识体系按层次分,主要可以分为:上层、中间、底层。上层就是纯软件,使用各类语言编写程序和应用。底层就是硬件,针对不同的使用方向,设计电路和芯片进行使用。而嵌入式位于中间,写的是代码,但大多是为硬件使用去写,不是以程序和应用为目标去写。除了纯软件的设计可以与硬件完全分开之外,对于嵌入式和硬件都不能完全抛离软件部分,总会有一些相通的地方。 嵌入式,又称嵌入式软件,需要注意的是,很多时候,也有把嵌入式硬件,简称为嵌入式的。也有将嵌入式系统称为嵌入式的,对于嵌入式系统,度娘的解释是: 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。对于很多非专业的同学来说可能还是一知半解,通俗的来讲,嵌入式就是针对特定的需要的功能,设计对应的电路,同时为该电路编写代码使得其他人通过使用这段代码就可以使用这个电路。 举个例子,咱们平常使用的智能手表,智能门锁,都算是嵌入式系统的一种。把这些商品拆开后,都能看见里面有电路板,里面集成了几个芯片还有外部电路,像是电阻电容之类的。其中,芯片还有其他的设计和生产算是硬件部分,我们日常使用的APP的设计算是软件部分,而电路的设计还有软件所使用的驱动是嵌入式部分。 嵌入式软件工程师需要什么知识? 本人预计目前将会在嵌入式软件方面再进行深入学习,因此目前只记录嵌入式软件方面相关知识。 作为一个软件工程师,对于C语言的知识是必不可少的,这里所说的C语言并不是像大学中写几个for循环或者if选择语句那样简单。而是需要知道自己写的代码需要占用多少资源,专业点说,也就是footprint的大小,因此某些代码介绍其优点的时候会说“small footprint”也就是占用储存资源少的意思。 首先解决一个问题,学习嵌入式C语言要掌握到什么程度? 比如要求C语言能编多少行的程序,还是看懂多么复杂的程序,还是只要会修改就行。其实嵌入式,尤其是嵌入式底层驱动开发,对于写代码的多少和价值,用一句经典话的话来描述就是: 如果写一个嵌入式驱动,一共100行,写出来那100行代码,本身可能只值1块钱而搞懂如何写,值99元。 嵌入式,尤其是底层驱动开发,其实代码量相对(尤其是与上层软件相比)都不是很大,但是要搞懂背后的逻辑,协议,接口,框架,平台等内容,然后才能写出来代码。而搞懂背后的逻辑,往往才是难点和重点。 当然,如果搞懂了应该如何写,往往也就会修改对应的代码了。总的来说,嵌入式开发,需要的背景知识: • 行业背景知识 • 操作系统,平台 • 平台下的(驱动)框架 • (驱动的)具体实现细节 • 看懂设备本身的手册搞懂如何配置操作 搞懂如何写:大概占70%的技术比重;而具体写出来(高质量的)C语言代码:可能只占30%左右的技术比重。 在下一步的学习中预计将首先学习开发环境相关知识,对常见的嵌入式Linux典型的环境组成:uboot+kernel+rootfs学习了解。之后再学习交叉编译相关知识。 |
|
|
|
只有小组成员才能发言,加入小组>>
820 浏览 0 评论
1162 浏览 1 评论
2537 浏览 5 评论
2872 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2722 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1127浏览 3评论
199浏览 2评论
465浏览 2评论
382浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
463浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 02:10 , Processed in 0.958428 second(s), Total 50, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号