嵌入式学习步骤[通俗易懂]

嵌入式学习步骤[通俗易懂]作者:李Brooks链接:https://www.zhihu.com/question/22252234/answer/75026117来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。占坑先。——————————————————————-第一次修改咯。不请自来。做电赛…

大家好,又见面了,我是你们的朋友全栈君。

作者:李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 暂时没想到其它的了。想到再说

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133058.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 阻容降压电路[通俗易懂]

    阻容降压电路[通俗易懂]阻容降压电路(适合于小功率小电流负载)示例分析:下图中,C1为降压电容,一般为0.33-3.3uF。在此设为C1=2uF,整流管的导通电阻通常为几欧姆,稳压管VS的动态电阻为10欧姆左右,限流电阻R1及负载电阻RL一般为100-200欧姆,滤波电容一般为100uF-1000uF,其容抗可忽略。因此,可将图1电路等效为图2的交流电路,且满足容抗XC1>R的条件。电容C1的容抗XC1…

    2022年6月20日
    29
  • ZXV10 H608B V1.1.04T02_JS激活成功教程

    ZXV10 H608B V1.1.04T02_JS激活成功教程综合了网上各种说法,得出如下方案:一、如果你的路由器还能够用用户名telecomadmin密码nE7jA%5m登陆,那就拔掉电话线直接跳到步骤八二、拔掉路由器的电话线,下载提供的包并解压。三、打开包中

    2022年7月1日
    20
  • SIGABRT错误的调试办法[通俗易懂]

    iOS经常会遇到一个头疼的error就是在main函数上显示“Thread1:signalSIGABRT”这个错误,终于在stackoverflow上找到了调试的办法: 原文链接:http://stackoverflow.com/questions/9782621/i-have-an-error-in-main-m-thread-1-signal-sigabrt-how

    2022年4月16日
    130
  • 延迟方法_延时偏方亲测真实有效

    延迟方法_延时偏方亲测真实有效1.performSelector-(void)performSelector:(SEL)aSelectorwithObject:(id)anArgumentafterDelay:(NSTime

    2022年8月4日
    3
  • 计算机3级数据库技术考哪些内容,计算机考试三级数据库技术考试大纲[通俗易懂]

    计算机3级数据库技术考哪些内容,计算机考试三级数据库技术考试大纲[通俗易懂]全国计算机等级考试采用全国统一命题,统一考试的形式。所有科目每年开考两次。下面是小编整理的计算机考试三级数据库技术考试大纲,欢迎大家参考!基本要求1.掌握数据库技术的基本概念、原理、方法和技术。2.能够使用SQL语言实现数据库操作。3.具备数据库系统安装、配置及数据库管理与维护的基本技能。4.掌握数据库管理与维护的`基本方法。5.掌握数据库性能优化的基本方法。6.了解数据库应用系统的生命周期及其设…

    2022年6月21日
    27
  • 在 IDEA 中使用 Git 图文教程

    在 IDEA 中使用 Git 图文教程在IDEA中使用Git图文教程1.配置Git2.创建项目远程仓库3.初始化本地仓库3.连接远程仓库4.提交到本地仓库5.推送到远程仓库6.克隆远程仓库到本地7.分支操作8.总结1.配置Git想要在IDEA中使用Git,首先就需要在IDEA工具中对Git进行相关的配置。打开IDEA设置,之后按照下面图片中的步骤进行操作即可。需要注意的是,在PathGitexecutbale中,也就是设置Git可执行路径中,找到本机电脑上Git的安装位置,

    2022年6月22日
    109

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号