嵌入式如何学习

article/2025/9/12 1:33:58

嵌入式的学习步骤如何,嵌入式涵盖哪些方面。

相信下面两位的回答,会让大家有一个基本的脉络。

 

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。

第一位:

作者:李brooks
链接:https://www.zhihu.com/question/22252234/answer/75026117
来源:知乎


不请自来。做电赛出身的程序猿一名,目前从事嵌入式Linux驱动开发。还有单片机从51到意法TI都做过,DSP只用过TI的,主要是在开关电源控制方面的应用。

建议学习路线:

1、学习51单片机,这个阶段你只需要跟着郭天翔的视频去学,只要求实现功能,不求甚解。但建议能够提出问题,比如“为什么往IO控制寄存器写入特定值能点亮LED灯?”“IO口的电路结构是什么样子的?”“什么是上拉下啦,灌电流拉电流?”,这一阶段主要是熟悉单片机的使用,并且在使用中思考发现问题,还能熟悉一些基本概念。

2、开始查资料看书,看模拟电路数字电路等等,开始去弄明白1中所提出的问题。这时候问题主要集中在电路方面。

3、开始学习STM32,随便买个板子,看原子的书跟着一步步去做。这时候你会遇到很多计算机方面的问题,这时候一边学习教程,一边学习:微机原理,编译原理,操作系统。你要弄清楚ARM架构,弄明白CPU如何取指,译码,执行,知道地址总线,控制总线,数据总线如何工作。要弄明白你编译各个阶段产生的各个文件是什么,什么是分散加载,什么是重定位,什么是代码段,什么是数据段,等等。还要能弄明白CPU如何启动,程序镜像在内存中如何布局。要知道中断的原理,以及现场保护等等。最后你了解了各个知识点之后,转向GCC开发STM32,这时候你如果知识掌握得不错,你应该可以很快地学会编写链接器脚本并且明白每一条语句所代表的含义。

4、开始增强C语言,深入挖掘C语言的各个死角。最好可以做到当你写下一条语句的时候知道编译器会如何处理。还需要数据结构和软件工程,建议最好还要学习一下设计模式。开始学习养成良好的代码风格,开始思考代码的结构。可以说设计模式如果能学好,在往后学习LINUX内核时大有裨益。你会发现LINUX的输入子系统有点像职责链模式,会发现ASOC音频系统有点像模板方法模式。私以为,如果能在两个以上不同方面考察同一种编程思想,你会得到更加深刻的理解,更能领会其精华。

5、认真研读OS方面的书,各个知识点都要弄明白,进程是什么程序是什么线程是什么,竞争死锁优先级反转,虚拟地址空间物理地址空间,用户空间内核空间等等。开始学习ucos,这个没什么可说的,如果在2中能熟练掌握各种知识点,知道CPU如何中断如何保护恢复现场,那么读ucos的源码时候,在原理上就不会有什么疑惑。如果能在4中养成把握代码整体结构的能力并且学习好数据结构和基本的算法,读源码就没有什么障碍。一旦原理弄通了,源码也能读懂,那么吃透ucos就是顺理成章的事情。

6、自己仿照ucos写一个stm32上的实时os出来。

7、进军LINUX。学习LINUX的基本使用,看赵炯那本内核剖析,啃LINUX内核设计与实现,把握总体的内核架构。之后可以学习驱动,看建议陈学松老师的书,弄明白基本的驱动架构和如何编写简单的驱动,认真对待,这里强调一下设备驱动模型。最后啃LINUX内核源码情景分析,上下两册用心读,这里着重强调一下内核中的VFS部分。之后就是看宋宝华老师的书,进一步学习驱动开发。最后。。。。。。。看内核源码看内核源码看内核源码。

8、其它的什么SPI,IIC,什么DMA,都只是技能问题,只要知识学的好,技能想咋点就咋点。

9、暂时没想到其它的了。想到再说

 

第二位:Tony Ho

 

 


http://chatgpt.dhexx.cn/article/9XUesWVC.shtml

相关文章

嵌入式到底该怎么学

想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。很多人都不知道嵌入式怎么学,这一期我就简单说一下我的理解。嵌入式这个概念太广了,可能很多人认为嵌入式就是嵌入式Linux。但是其实并不仅仅只有Linux,像STM32,51单…

如何高效学习嵌入式?

近几年来,随着移动互联网、物联网的迅猛发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用;随着嵌入式技术及相关产品不断渗透到人们日常生活,大大小小公司对于嵌入式开发人才招聘需求猛增。但…

嵌入式学习的正确方法

嵌入式专业是一门实践性非常强的学科,只有多动手,多实践,多编程,多调试,多看书,多思考才能真正掌握好嵌入式开发技术。那么,如何从零开始学习嵌入式开发技术, 进入嵌入式开发大门呢&…

使用LoadRunner-运行负载测试

1.运行负载测试 • 录制好脚本之后,返回首页,点击“Run Load Tests”; • 如果遇到以下问题,点击“Close”,右击桌面LoadRunner选择“以管理员身份运行”,如图: 2.运行脚本 • 点击Run Load Tes…

Ubuntu 下 CPU 负载测试

在嵌入式系统开发的时候,我们要评估系统散热情况需要满载测试或者测试系统调度情况需要让 cpu 满载运行的软件:stress 堪称利器 这个不算原创,只是自己偶尔用,经常忘记命令,所以记录一下,以后好找 stress 安…

负载测试压力测试强度测试稳定性测试

你看,如标题所示,测试可以分为这么多种。实际上,这只是一种性能测试的分类。按照不同的标准,还可以有别的划分。 1、按开发阶段:单元测试、集成测试、系统测试、验收测试 2、按测试实施组织:α测试&#x…

软件性能测试——负载测试的最佳实践

性能测试中最容易被误解的部分之一就是负载测试。大多数人认为所有性能测试就是负载测试,但这是不准确的。有许多类型的测试组成性能测试。在进行负载测试之前要考虑的问题之前,让我们仔细研究一下负载测试的基本信息。 负载测试是性能测试的子集。比如…

jmeter的负载测试

1.先在测试计划创建线程组和录制Case 1 1.1 选择测试计划 2 1.2创建线程组 3 1.3创建录制控制器 4 1.4结果如下: END 2.先在jmeter设置代理服务器 2.1 在工作台建立代理服务器 2.2结果如下: 3 (注意默认端口是8080,当然可以改) 4 目…

Loadrunner之使用Controller负载测试

进入controller中,导入做好的脚本,开始设置场景(条件)。 添加虚拟用户数量:如设置50个VUser(50个虚拟用户),每隔几秒增加几个虚拟用户。设置退出条件:完成一个退出一个&…

loadRunner之负载测试

一、loadrunner负载测试监控 在应用程序中生成负载时,我们希望实时了解应用程序的性能以及潜在的瓶颈。使用 LoadRunner 的一套集成监控器可以评测负载测试期间系统每一层的性能以及服务器和组件的性能。 LoadRunner 包含多种后端系统主要组件 (如 Web、…

2.负载测试

负载测试 负载测试主要关注在并发用户数或每秒请求数方面评估系统的当前性能。 什么是负载测试 负载测试是一种性能测试,用于确定系统在正常和峰值条件下的行为。 负载测试用于确保当许多用户同时访问应用程序时,应用程序的性能令人满意。 您应该运行负…

负载测试的最佳实践

当任何软件开发项目接近完成时,它可能已经通过了大量的测试,特别是在测试和开发同时进行的敏捷测试环境中。但是无论您运行了多少测试,一旦您的应用程序接近完成,实际上只有一种方法可以知道您的软件是否能够处理大量最终用户的实…

Split Pairs

问题描述: Split the string into pairs of two characters. If the string contains an odd number of characters, then the missing second character of the final pair should be replaced with an underscore (_). (将一个字符串两两分开&#x…

B. Pairs

1.如果可以找出第两对数&#xff0c;且四个数完全不同&#xff0c;那么如果可以满足题意的话&#xff0c;那么那两个数一定在这四个数之中&#xff0c;那么暴力扫一遍就可以了 2.若找不出&#xff0c;那么一定可以满足题意 复杂度顶多 4n #include<algorithm> #include…

python版本的Pairs图

背景 在我2017年刚开始学习R语言的时候&#xff0c;我就被一个非常漂亮的图吸引到了。那个图非常漂亮。后来我才知道&#xff0c;那个图&#xff0c;叫pairs图。 大概是这样的&#xff1a; 类似的图还不少&#xff0c;还有这样的&#xff1a; 或者是这样的&#xff1a; 总结 …

PTP报文解析

以Sync报文为例&#xff0c;linux端执行sudo ptp4l -i eth0 -m -S&#xff0c;给windows端发送主节点报文&#xff0c;windows端用wireshark抓取到的报文如下图&#xff1a; 报文解析&#xff1a; 01 00 5e 00 01 81 &#xff1a;windows端mac地址&#xff1b; 78 d0 04 2c 6…

DHCP报文协议

Ipv4 单播&#xff0c;即点对点的通信&#xff0c;目的地址为单一目标的一种传输方式。 源IP、源MAC为发送者的IP和mac地址&#xff0c;目的IP、目的MAC为接收者的IP和mac地址。 广播&#xff0c;是指封包在计算机网络中传输时&#xff0c;目的地址为网络中所有设备的一种传输…

TCP报文段

TCP虽然是面向字节流的&#xff0c;但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分&#xff0c;而TCP的全部功能都体现在它首部中个字段的作用。因此&#xff0c;只有弄清TCP首部个字段的作用才能掌握TCP的工作原理。 TCP前20个字节使固定的&#xff0c;后…

OSPF报文格式

OSPF报文格式 OSPF报文可靠性机制&#xff1a; 由于OSPF协议是通过IP承载的&#xff0c;而IP协议是不可靠协议&#xff0c;所以OSPF需要自己的可靠机制来保证报文交互的可靠性在OSPF中有两种确认报文&#xff1a;1&#xff0c;显式确认报文&#xff08;LSACK&#xff09;2&…

机场气象报文解析

机场气象报文解析 背景示例思路代码结果预览致谢参考文献 从这篇文章&#xff0c;读者可以了解道机场气象报文的背景&#xff0c;知道其中数据大概长什么样子&#xff0c;如何利用python语言解析出机场气象报文里面的信息形成格式化数据。 背景 上个月的我国第六号台风“烟花…