再说嵌入式入门

我之前写过几篇嵌入式入门的文章 

不过我的读者还是觉得不够过瘾,我觉得还是要着重说一下嵌入式软件应该重点学习什么,guoqing收假最后一天写文。

精通C语言 

精通C语言 

精通C语言

C语言对于嵌入式软件来说就是他的命脉,不懂C语言的人根本就不能说想搞嵌入式,而想学好嵌入式,那么就必须要精通C语言,你在大学,可以不参加电赛,不跟老师做项目,但是一定要学好C语言,如果说切菜是厨师的基本功,那么C语言就是嵌入式程序员的基本功,这也是很多招聘公司把C语言来考察面试者的原因。

分享一份C语言学习资料,这个资料是比较全面的,都是电子书,大家有选择性阅读,目前为止应该是最全面,最好的C语言学习pdf资料了。

链接: 

https://pan.baidu.com/s/15LZKixjFQzs0ZNfOo2ZWpQ

提取码: 

gx7w

熟练数据结构和算法

数据结构和算法有点因岗位而异,有的岗位基本很少用到数据结构和算法,可能工作十来年,挂着一个嵌入式软件的头衔,结果没写过一个链表,基本的语法都是一些 if 和锁 ,控制GPIO口之类的,但是用不到不等于不学,我们所知道的所有操作系统,都脱离不开数据结构和算法,而且嵌入式软件是需要和操作系统代码强相关的,嵌入式软件的代码依赖操作系统的代码来运行,学习好数据结构和算法,可以让你看到猪是怎么跑的,但是至于以后入职工作,能不能用这方面的技术来吃猪肉,那就要看缘分了。

数电模电基础

嵌入式软件不同于互联网,很大一部分就是因为跟硬件息息相关,所以必须要有数电和模电基础,像一些锁相环,与门,或门之类的东西,我们是需要清楚的,纯软件开发可能不需要懂这方面,但是电子技术的话,这些基础是必不可少的。

模电是很多人的一个心病,我当年也是学不好,像三极管,二极管,mos管之类的,还要理解一些电路设计,这部分是大学电子课程的基础,当然,如果你没有这个机会,可以买几本书来学习下。

从51单片机开始

我觉得搞电子的每个人都应该学习51单片机,很多直接从ARM开始学习的也学得很好,能找到一些不错的工作,但是我还是建议从51开始,51学起来也不难,还能练习C语言,51用来裸跑是非常不错的,理解CPU的工作原理,学习一些通信协议,比如I2C,SPI,点亮LED灯,练习下中断,定时器,后面再做做多任务,学完多任务后,就可以去学习系统相关的东西了。

学习嵌入式系统

嵌入式系统,这个东西就比较多了,在学习51之后,你可以学习STM32,STM32标配的就是freertos系统,系统是从多任务衍生过来了,你理解了多任务,再学习系统就不是什么难事了,实时系统我还是推荐学习freertos。

分时系统的话,那肯定是Linux了,如果你跟我一样,特别喜欢Linux,你也可以直接上Linux 学习,Linux是一个很大的东西,有应用,驱动,运维,如果你做嵌入式,就一定不是运维之类的工作,所以,Linux私房菜 这类的书籍是不适合你的,你要看的是《Linux 设备驱动》,《Linux内核设计和实现》这类的书籍。

嵌入式软件面试

C语言是每个嵌入式软件面试必备的,我记得我在毕业的时候,去参加一个公司面试,被要求当场写一个键盘扫描的程序,刚开始是比较紧张的,我拿到这个题目的时候,也是一愣一愣的,后来我缓了一下,我认为我自己的知识储备完全可以拿下这样简单的面试题,就是那次,我当场在面试官面前写了键盘扫描的程序,虽然是很简单的代码,但是第一次面试还是比较紧张的。

我想说明一件事情,我们从大学里面学到的东西,如果都认真学习了,完全可以应对面试题目,但是面试的松弛程度,紧张程度,是需要我们不断练习,最后孰能生巧,不紧张了,表现好自己,拿下offer的概率就会增大的,网上那些100%拿下offer的分享,我是不相信的,面试本身就是技术加临场表现的,现在的毕业生,我看来技术都是差不多的,特别现在学习资料都差不多,即使刚开始有点差距,如果有学习的心态,后面能补回来也是很快的。

嵌入式工作会做什么?

我前面说了下,嵌入式的工作是万金油,这个也只是相对来说的,在大企业里面,不可能让一个人从事非常多的任务,这样会导致一个问题,风险非常大,你承担的任务越多,那么风险就越大,所以大企业需要的是在某个领域非常专业的人才,从事的事情也是非常专业的,单一的。

单一的工作需要一个Leader来指挥,这就需要一个架构师,这个架构师需要指导你往哪里天聪你的代码,你拉了一车砖头过来,不能随便就乱扔吧,这就需要规则,需要架构师来制定这个规则,所以就出现了各种软件总工。大企业需要单一的某个领域的人才,但是小企业,需要的就不是了,他们需要比较全面的人才,他们没有那么多钱来请各个方面的人才,比如你要做一个手环,在小公司,那你就需要把驱动,应用,后台通信,各个功能子模块都一个人来完成。但是如果你在大公司,你可能就只负责手环的功耗部分,如果功耗有问题就来找你,其他的事情,就不是你负责的范围。

音视频

音视频这部分一直都是一个大模块,企业应该把这部分脱离开来找人,所以如果你是从事这部分相关工作的,可以深入专研。很多企业,专门成立多媒体部门,研究的就是音视频相关的技术,编解码等等,数据传输等等,都是他们要做的技术。

算法相关

有的嵌入式岗位专门研究算法的,比如一些openface等算法一直,还有用matalab做一些算法运算,这些都是嵌入式相关,也是比较专一的岗位,当然了,工资也是比较高的,研究算法的人才因为对某些东西比较有研究,反过来做一些系统或者应用的开发也是如鱼得水,技术相关的东西很多都是相通的。

平台相关

嵌入式硬件的不同平台,导致了在不同平台上有经验的人才就不一样,如果你是做rockchip的,那么你就具备这部分的经验,你可以一直从事rockchip方面的开发,这就是平台性相关,如果你是做全志平台的,那你可能更擅长全志平台的,如果跳槽,你找全志平台的话,会更有竞争力,别人也更看重你之前的工作经验。

对于文章中的学习资料可以在公众号回复 「 1024 」 获取,有些资料链接过期的,可以私聊我获取。

参考:https://blog.csdn.net/qq_33835307/article/details/83062526



640?wx_fmt=jpeg

扫码或长按关注

回复「 加群 」进入技术群聊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java ios 开发工具_iOS应用开发的五个Java开源工具

随着第三方工具的不断壮大,开发人员逐渐摆脱政策束缚,对于iOS系统的封闭性为其他语言(如Java)开发者诟病得到解脱,开始使用自己熟悉的语言来编写iOS本地应用,或将其他平台上的应用移植到iOS上。本文为你介绍5款开源的开发工具&…

hive 时间转字符串_大数据面试杀招——Hive高频考点,还不会的进来挨打

一、什么是Hive,为什么要用Hive,你是如何理解Hive?面试官往往一上来就一个“灵魂三连问”,很多没有提前准备好的小伙伴基本回答得都磕磕绊绊,效果不是很好。下面贴出菌哥的回答:Hive是基于Hadoop的一个数据仓库工具&a…

用数组实现一个栈

#include<stdio.h> #define STACK_SIZE 64 /*栈大小*/ #define TOP_OF_STACK -1 /*栈顶位置*/ typedef int ElementType; /*栈元素类型*/ #define SUCCESS 0 #define FAILURE -1 /*定义栈结构*/ typedef struct StackInfo {int topOfStack; /*记录栈顶位置*/ElementType …

java基础----Java中枚举的使用(一)

这里介绍一下java中关于枚举的使用。 java中枚举的使用 一、枚举中可以定义方法 参照于TimeUnit的使用&#xff0c;TimeUnit.MILLISECONDS.sleep(1000); LoveUtils的类&#xff1a;package com.linux.huhx.enumTest;/*** Created by huhx on 2017-05-24.*/ public enum LoveUti…

java jpa jar_JPA 开发所需的Jar包 (基于Hibernate)

JPA 开发所需的Jar包 (基于Hibernate)(一)下载Sun 的JPA规范(即&#xff1a;Jar包)登陆JavaEE 的 Technologies 页面:http://java.sun.com/javaee/technologies/index.jsp选择 Java Persistence 2.0选择 Final Release 中的 Download Page 后进入下面的界面&#xff1a;下载如下…

用链表实现一个栈

#include<stdio.h> #include<stdlib.h> typedef int ElementType; /*栈元素类型*/ #define SUCCESS 0 #define FAILURE -1 /*定义栈结构*/ typedef struct StackInfo {ElementType value; /*栈存储的数据*/struct StackInfo *next; /*指向栈的下一个元素*/ }StackI…

qlsql

1.导入sql文件&#xff1a;qlsql中打开命令窗口&#xff0c;输入 文件路径 &#xff0c;直接点击执行就能导入&#xff1b; 2.创建角色分配权限依次&#xff1a;connect&#xff0c;resource&#xff0c;dba&#xff0c;dba是管理层&#xff1b; 3.导出命令&#xff1a;exp 用…

dedecms怎么改php版本_PHP程序员进阶之路

PHP开发工程师处在初级、中级和高级阶段需要掌握的技能也不同&#xff0c;本文分享PHP工程师处在不同阶段下需要掌握的技能。PHP初级开发工程师PHP初级开发工程师需要掌握的技能1. 走进PHP的世界PHP介绍、PHP版本发展历史、PHP薪资水平和职业发展、WEB开发中基础概念介绍、PHP开…

C语言入坑指南-数组之谜

前言在C语言中&#xff0c;数组和指针似乎总是“暧昧不清”&#xff0c;有时候很容易把它们混淆。本文就来理一理数组和指针之间到底有哪些异同。数组回顾在分析之前&#xff0c;我们不妨回顾一下数组的知识。数组是可以存储一个固定大小的相同类型元素的顺序集合。为了便于我们…

mysql服务器查绑定的域名查_MySQL使用show status查看MySQL服务器状态信息

MySQL使用show status查看MySQL服务器状态信息这篇文章主要介绍了MySQL使用show status查看MySQL服务器状态信息,需要的朋友可以参考下在LAMP架构的网站开发过程中&#xff0c;有些时候我们需要了解MySQL的服务器状态信息&#xff0c;譬如当前MySQL启动后的运行时间&#xff0c…

Fiddler抓包使用教程-安装配置

转载请标明出处&#xff1a;http://blog.csdn.net/zhaoyanjun6/article/details/72876628 本文出自【赵彦军的博客】 Fiddler是什么&#xff1f; Fiddler是一个http调试代理&#xff0c;它能 够记录所有的你电脑和互联网之间的http通讯&#xff0c;Fiddler 可以也可以让你检查所…

VS2019调试查看变量_你很可能需要知道这个调试小技巧

缘起 最近在调试的时候&#xff0c;需要观察第三方容器中每一个元素的值。默认情况下&#xff0c;vs 并不知道如何显示第三方容器的内容&#xff0c;只能手动观察容器中的每一个值&#xff0c;超级不方便。我找到一个非常给力的好办法&#xff0c;你还知道其它好办法吗&#xf…

Linux i2c子系统驱动probe

I2C 子系统I2C 子系统使用的概率非常大&#xff0c;我之前有做过手机的经验&#xff0c; 手机跑的安卓系统&#xff0c;内核是Linux&#xff0c;手机的很多器件都是用I2C通信的&#xff0c;我经历过从板级设备到dts设备树的阶段&#xff0c;知道I2C在整个系统的举足轻重&#x…

java生成flash_web-flash发布了代码生成插件

web-flash 是一个基于 Spring BootVue.js 的后台管理系统。现在发布了其基于 Intellij IDEA 的代码生成插件!你可以再 idea 插件仓库中搜索 webflash-generator (目前插件在发布审核中&#xff0c;可能会搜索不到)&#xff0c;或者直接从本地安装插件&#xff1a;flash-generat…

JAVA多线程程序ProgressBar

JAVA多线程程序ProgressBar 题目简介&#xff1a; 思维导图&#xff1a; 实验代码&#xff1a;建议先看CalThread类&#xff0c;计算线程的实现&#xff0c;再作基本CalFrame类的界面&#xff0c; 然后作ReadThread类&#xff0c;结合CalFrame的组件&#xff0c;最后完善CalFra…

ad如何选中当前层上的器件_82条AD转换设计经验总结!

看到一片关于AD转换设计中的基本问题整理博文&#xff0c;特地转载过来和大家共分享。了解数据转换器错误及参数1、如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题?ADC之前的信号调理&#xff0c;最根本的原则就是信号调理引起的噪声和误差要在ADC的…

为什么Linux内核里大量使用goto,而很多书籍却不提倡使用?

关于C语言的goto语句存在很多争议&#xff0c;很多书籍都建议“谨慎使用&#xff0c;或者根本不用”。Linux之父Linus在Linux中大量使用goto&#xff0c;也是在启示着我们可以合理使用goto语句。存在即合理&#xff0c;既然是C语言中的一个知识点&#xff0c;我们还是有必要学会…

python特征匹配 查找_特征匹配+单纯形查找对象

我尝试使用opencv获取一个查询图像并在一个基本图像中进行匹配。我看了一下在线教程&#xff0c;你看&#xff0c;他们有示例代码来做这件事。所以我复制并粘贴了代码&#xff0c;并尝试用一些试用图像来运行它。下面是代码和一组图像示例。在import numpy as npimport cv2from…

ActionBarActivity设置全屏无标题

新建的Activity继承自ActionBarActivity&#xff0c;设置全屏无标题本来非常easy的事&#xff0c;可是没想到app居然无缘无故的挂&#xff0c;要么就是白屏一片&#xff0c;要么就是黑屏。坑了我一个多小时。&#xff01;&#xff01;原因是ActionBarActivity设置theme的时候仅…

python数据类型有哪些、分别有什么用途_python中的数据类型有哪些

python中的数据类型有9种&#xff0c;分别是1、字符串2、布尔类型3、整数4、浮点数5、数字6、列表7、元组8、字典9、日期。1、字符串 1.1、如何在Python中使用字符串 a、使用单引号() 用单引号括起来表示字符串&#xff0c;例如&#xff1a;strthis is string; print str; b、使…