再说嵌入式入门

article/2025/11/9 19:56:12

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

不过我的读者还是觉得不够过瘾,我觉得还是要着重说一下嵌入式软件应该重点学习什么,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://chatgpt.dhexx.cn/article/0X5uEvKS.shtml

相关文章

嵌入式开发入门基础篇

今天在逛CSDN的时候发现一篇嵌入式开发基础篇,看完感觉写的非常好,特拿过来跟大家分享一下。原篇地址:https://blog.csdn.net/qq_61672347/article/details/126760788。 文章目录 前言一、STM32的数据类型二、C语言中常用的关键字1、const关键…

嵌入式开发(一):嵌入式开发新手入门

系列文章: 嵌入式开发(一):嵌入式开发新手入门 嵌入式开发(二):开发板配置(自用) 嵌入式开发(三):海思Hi3559a交叉编译live555嵌入式…

嵌入式入门基础知识

文章目录 前言嵌入式基本知识ARM的理解ARM是一家公司一类芯片或产品的统称一项技术的名称,即采用RISC处理器体系架构ARM和intel的区分ARM和STM32的关系 处理器的基本概念MCUMPUDSPFPGA总结 ARM开发MCU开发和MPU开发的区别开源硬件 Arduino 和 Raspberry Pi总结 总结…

宽度学习系统BLS推广到在线学习的论文阅读记录

BELS: A BROAD ENSEMBLE LEARNING SYSTEM FOR DATA STREAM CLASSIFICATION 摘要:这篇文章主要是将BLS推广到适用于在线学习的邻域,提出了其如何进行适合在线学习的增量更新,以及面对概念漂移的适应 所提出的算法BELS 稀疏特征映射的更新 …

超越EfficientNet!MutualNet:一种自适应相互学习网络宽度和分辨率的网络

点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 【导读】今天给大家介绍一篇 ECCV 2020 Oral论文 ,该论文强调了同时考虑网络宽度和输入分辨率对有效网络设计的重要性。…

【AI不惑境】网络的宽度如何影响深度学习模型的性能?

大家好,这是专栏《AI不惑境》的第三篇文章,讲述模型宽度与模型性能的关系。 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程&#xff0c…

CSS:宽高自适应详解

宽度自适应的应用 1.属性:width 2.属性值:px/% 3.宽度自适应的特点 - HTML,BODY表示浏览器,默认是块级元素,宽度是100% - 当块级元素不设置宽度或者设置100%的时候,宽度会沾满全屏(通栏效果) - 子级是块级元素,不设置宽度的时候会和父级等…

陈俊龙:从深度强化学习到宽度强化学习—结构,算法,机遇及挑战

来源:AI科技评论 摘要:如何赋予机器自主学习的能力,一直是人工智能领域的研究热点。 强化学习与宽度学习 如何赋予机器自主学习的能力,一直是人工智能领域的研究热点。在越来越多的复杂现实场景任务中,需要利用深度学习…

网络的宽度对深度学习模型的性能影响

目录 1 为什么需要足够的宽度 2,经典网络的第一层的宽度 3,宽度对模型性能的影响 4 如何更加有效地利用宽度 4.1 提高每一层通道的利用率 4.2 用其他通道的信息来补偿 5 经典网络模型宽度设计方法 5.1 采用多分支网络结构设计 1)ResN…

深度学习笔记(七):网络宽度(卷积核个数)的一些想法

文章目录 一、前言二、网络深度的意义三、宽度的意义四、 网络宽度设计4.1 网络宽度的下限在哪?4.2 网络宽度对模型性能的影响4.3 网络宽度和深度谁更加重要? 五、如何加有效地利用宽度?5.1 提高每一层通道的利用率5.2 用其他通道的信息来补偿…

宽度 深度学习 特点对比

宽度 & 深度学习 特点对比 推荐系统模型介绍实验过程与实验结果实验总结 为了提高神经网络的性能,是应该增加宽度呢?还是应该增加深度呢?增加宽度和增加深度各有什么样的效果呢? 本文对论文《Wide & Deep Learning for Re…

为什么是“深度”学习而不是宽度?

为什么是深度而不是宽度? 先说说我个人的理解,如下图所示,圆圈表示神经元,有两种方式。第一种,只有一层神经层,有8个神经元;第二种方式,有两层神经层,分别有2个和4个神经…

宽度学习系统:一种不需要深度结构的高效增量学习系统

宽度学习系统:一种不需要深度结构的高效增量学习系统 本文是对陈俊龙教授团队“Broad Learning System: An Effective and Efficient Incremental Learning System Without the Need for Deep Architecture”的中文综述,原文将在IEEE Transactions on Neu…

网络的宽度如何影响深度学习模型的性能?

大家好,这是专栏《AI不惑境》的第三篇文章,讲述模型宽度与模型性能的关系。 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程&#xff0…

宽度学习代码的一些问题

最近在拜读陈院士的宽度学习论文,受益匪浅,在此先感谢陈院士团队的开源代码! 在复现代码的过程中,发现了一些小问题,在此记录,方便自己日后翻阅。 此博客仅代表个人观点,姑且算作个人读书笔记…

DeepLearning | Broad Learning System 宽度学习系统 : 高效增量式浅层神经网络

Broad Learning System (BLS,宽度学习系统)是澳门大学的陈俊龙教授在2017年TNNLS上基于随机向量函数链接神经网络(RVFLNN)和单层前馈神经网络(SLFN)提出的一种单层增量式神经网络。这个模型相比于传统的深层网络模型,它在保证一定精度的同时,…

宽度学习系统(BLS)的原理、变体形式及当前应用(随时更新......)

ABSTRACT 近年来深度学习迅猛在各个研究领域发展发展,新的模型结构不断涌现,且有层数逐渐加深的趋势。然而深度模型往往有数量过于庞大的待优化参数,通常需要耗费大量的时间和机器资源来进行优化,而且不能根据需求及输入的变化进行…

为什么要做深度学习而不是宽度学习?

点击此处返回总目录 前面在深度学习介绍的最后有留下一个疑问。我们为什么要deep learning。 我们说,变深了,参数增多,model变复杂,performance变好,是很正常的。 所以,真…

宽度学习学习笔记

宽度学习笔记 随机向量函数链接网络(RVFLNN)增强节点权值计算Greville 定理 宽度学习系统(Broad Learning System)数据处理简单BLS增强节点的增量学习特征节点的增量学习输入的增量学习SVD 参考论文: Broad Learning …

宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统

Motivation 深度学习: 1,时间长:由于涉及到大量的超参数和复杂的结构,大多数神经网络的训练过程非常耗时。 2,重新训练:如果要更改神经网络的结构,或者增加样本,深度学习系统将遇到一个完整的重新训练过程。 宽度学习: 1,消除了训练过程长的缺点,并且提供了很好的…