欢迎光临,嵌入式开源博客

嵌入式必备知识系列-Linux系统中有哪几种设备?

huangea阅读(257)

前言:

Linux操作系统对于一名嵌入式工程师来说,往往是最常用的操作系统,而无论是内核工作者还是驱动开发者都会和设备打交道,浏览/driver目录,你会发现有众多子文件夹,而每个子文件夹基本都对应一个设备驱动。今天要讲的就是Linux有哪几种设备?而这也是找工作中最常被问到的问题。

字符设备(char device)

字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少要实现open,close,read和write系统调用。大多数字符设备是一个个只能顺序访问的数据通道。

字符设备提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。‍

块设备(block device)

顾名思义,块设备不同字符设备的是应用程序可以随机访问设备数据,应用程序可以自由定位数据的位置,硬盘、闪存、CD-ROM等都是典型的块设备。数据的读写是以块(512B)的倍数操作。而块设备不支持基于字符的寻址。

网络设备(net device)

网络设备在系统中的作用类似于一个已挂载的块设备。块设备将自己注册到blk_dev数据及其他内核结构中,然后通过自己的request函数在发生请求时传输和接收数据块,同样网络设备也必须在特定的数据结构中注册自己,以便与外界交换数据包时被调用。网络设备在Linux里做专门的处理。Linux的网络系统主要是基于BSD UNIX的Socket机制。在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。

以上是基本的三种设备类型,但其实在嵌入式系统内常用的还有一种设备类型,具体我们下个篇幅单独了解。

嵌入式学习路线、看完让你了解嵌入式、高手速成方法

huangea阅读(1146)

摘要:

首先声明作者本人确实是一名一瓶子不满半瓶子晃荡的嵌入式工程师,但是还想分享一下自己的理解和自己的学习路线。方法对不对呢应人而言。本文之所言都是个人的观点和知识体系。不对及不足之处还望大家多多交流。个人觉得技术,就是要互通有无。

何为嵌入式?

既然提到嵌入式了,那就不得不把这个话题再次搬出来。记得大学的时候每学期末,汇编原理课程最后一题都是一个题目为“什么是嵌入式”的简答题,当然那会回答的就是一成不变的标准教科书答案。对于我们就是送分题。

嵌入式IC

嵌入式,其实这个概念其实很简单也很复杂,说起来很矛盾,但事实如此。简单是说,嵌入式就是一个针对特定功能的计算机系统,系统可大可小,功能可定制。理解起来像ATM机器、手持PDA、机器人、无人机。但说复杂的是嵌入式领域太杂,不管具体怎么划分的,从我工作至今所了解的。嵌入式硬件工程师、嵌入式软件工程师、嵌入式系统工程师、嵌入式驱动工程师等等。

不管这些职位是否正确与合理,但市场上就是存在,为什么传统行业的职位都要冠上“嵌入式”三个字?硬件工程师、软件工程师、内核工程师、驱动工程师不好吗?

个人理解许多职务加上嵌入式,大概是觉得既然是你是做嵌入式的,那必然这些领域都要熟悉,你嵌入式硬件工程师必然要会软件编程了,你嵌入式软件工程师必然会电路设计,最基本的原理图必须能看懂吧。

电路原理图

学习嵌入式能做什么?

峰回路转,那么我先说一下学习嵌入式能干啥?先说人才市场,你可以做单片机开发基本的51、avr、stm32(虽说ARM-M核,但还是觉得单片机贴切),还可以做ARM开发、Linux C开发、Linux内核开发、Linux驱动开发等等,其中要细分还能分出更多。当然更多人认为后四个才是真正嵌入式。

既然嵌入式路子这么多,那么不幸的是,这些也是你要学的。

嵌入式工程师

要不要学习嵌入式?

要不要学?最重要的是“兴趣”、“兴趣”、“兴趣”,重要的事情说三遍,想学嵌入式一定是要对这个感兴趣,不然那就是无趣的,相反的话那就是一条探险之路,学完让你拥有前所未有的成就感。如果奔着高薪offer的话,劝你换条路,毕竟后悔学的不在少数。因为嵌入式门槛高,薪水虽说不低,但对于你学习的知识。和其他行业不能比。如IOS、JAVA、PHP等等,这些都可以速成,4个月0基础上岗不是太大问题。

二进制代码

基本学习路线

首先C语言编程-》电路基础-》高级C语言编程-》数字电路基础-》汇编原理-》单片机C语言编程-》模拟电路基础-》Linux 操作系统-》数据结构-》电路PCB设计-》Linux C程序设计-》ARM开发-》Linux C高级编程-》Linux内核开发-》Linux驱动开发。

以上是传统学习方法,毫无疑问这是极其耗费时间的一个路子,本人也是这么过来的。但对于在职的人来说就有点尴尬了。那么下面这个路子是适合在职人员学习。

ubuntu操作系统

速成方法

首先你可能有一定的编程基础了,或者了解这个行业。那么你花上一两天把C语言看一遍,接着买一个开发板(看你未来发展方向选择),一般开发板自带历程很多,那么就花一阵子时间把这个开发板玩透彻,可以在其基础上制作一些有你想法的系统。然后在你电脑装一个Linux操作系统,一般UBUNTU就可以。买一本Linux C高级编程的书。在Linux平台练习。最后买一个ARM开发板,此时你已经了解Linux编程了,那么顺便了解一下交叉编译,把之前的程序放到ARM开发板里跑一跑。到这算是入门开始。剩下的就是边干边学。实践出真知。

嵌入式开发板

一些领悟

其实学习嵌入式入门后的学习并不难,因为你会对他很感兴趣。最重要的是实践。正所谓,知而不行,是为不知;行而不知,可以致知。最后祝大家学习愉快!

从中兴事件看嵌入式行业未来

huangea阅读(194)

2018年4月16日美国商务部发布公告称,美国政府在未来7年内禁止中兴通讯向美国企业购买敏感产品。

随着这一消息的爆出,国内一片哗然,这也终于让国人意识到我国对“芯片”的薄弱之处,核心技术受人所控。而后中兴通讯在深圳举行了发布会,中兴通讯的董事长殷一民在发布会上表示,美国的禁售令可能导致中兴通讯进入休克状态,对公司的全体员工、遍布全球的运营商、终端消费者和股东的利益造成直接损害。

美国封杀中兴7年

中兴通讯的发布会确实没有危言耸听,中兴传统行业及新开展的汽车领域相当部分的器件都和美国企业有着紧密的关系,中兴的产品的核心器件的大量依赖着进口。

中美贸易牺牲者

随着中兴事件的发生,也引起了国内业内人士的关注,因为“缺芯”的不止仅有中兴一家,国内大部分高科技信息企业都依赖着进口器件。随后各大高企高管也纷纷发声,表明了自己的观点及对策。

马云回应收购中天微:我们要做人人用得起的芯片!

阿里巴巴集团于4月20日宣布了全资收购中国大陆唯一的自主嵌入式CPU IP Core公司–中天微系统有限公司,此消息一出,在中兴事件的背景下,大家也纷纷表示支持,也让国人对我国信息产业未来的发展充满了信心。同样作为BAT的领导者,李彦宏和马化腾就此事件也都纷纷表态,只有中国“科技”这块骨头足够硬,我们才有机会站起来。

阿里巴巴全资收购中天

为了打破我们受制于人的处境,未来将会大力发展我们的“芯”产业,而“芯”产业同样离不开一类工程师—嵌入式工程师,嵌入式工程师方向很广,但无疑我们要自己造芯片的话,必然需要应用芯片,而应用芯片确是嵌入式的基本职责。

嵌入式开发工程师

在当下的物联网的飞速发展,高科技产品离不开硬件应用,嵌入式这个行业正是在物联网这个环境下生长起来。同样相信未来类似中天微这样的嵌入式芯片公司在中国“缺芯”的环境下得以飞速的发展,让我们不再受制于人。

嵌入式CPU IP Core

‘电子支付’时代 让我的尴尬不尴尬

huangea阅读(1361)

昨天,和往日一样正常下班回去的时间,下地铁->吃饭->回家,平时钱包里除了月初充公交卡的时候有点钱之外基本都是空的,每天的吃饭花销基本都会以电子支付方式结算,购物采用网购,吃饭扫码,这都很正常,大家基本都一样。昨也是,吃完饭回家走捷径路过一个菜市场,看到水果摊,就停下来买点水果,摊主是个大妈,问大妈要个袋子,一个一个精挑细选了半天。上称的一瞬间意识到一个很尴尬的问题,‘我没有现金’,用微信?看了一眼摊主,然后第一感觉告诉我摊主估计不会用微信,没办法还是硬问了一下缓解没带钱的尴尬,结果大妈指了一下摊位旁边,那是我熟悉不能再熟悉的画面,’二维码’…..于是我又问了一句,看能不能我多支付一些,然后换点现金,结果大妈很爽快的同意了,离开摊位回去的时候又买了点其他水果,仔细的寻找,基本个个摊位都有二维码。

不知不觉,微信已经让人们的生活更便捷,公司各种群组让沟通更效率,朋友圈更是个有意思的功能,它会让你看到最新即时资讯,朋友圈会下雪,会下雨,会出现彩虹,女排夺冠,有同事家宝宝每日学习的画面,有何老师每日学习日记,有李教授分享的军事新闻等等,传播分享着正能量,,当然也有一些东西是大家不想看到的 -。-  !

 

最后分享个从朋友圈看到的视频:


 

永无止尽的约会

huangea阅读(545)

爱人是件重要的事情,失去也是爱的一部分,不愉快和愉快,得到和突然失去,脚在地面或者在过山车上低速或高速地向前,最终只为证明人生没有虚度,这是生命给我们的琐碎和必然,眼睛一闭,大可一试。 from 《永无止尽的约会》

一个很有意思的网站

留言板友链