嵌入式学习步骤(经典的个人看法)

鉴于好多朋友尤其是新入门的菜鸟们询问我如何学习嵌入式技术学习嵌入式的步骤是怎么样的等等诸如此类,所以有必要集中回答下大家的问题,这里特地摘录了一份不错的 嵌入式技术 方面的文章,算是给大家的回答吧,希望对各位嵌入式学习爱好者们能够有所帮助吧。
这里声明一下,我指的嵌入式主要是偏向软件的嵌入式。学习嵌入式的重点和难点关键在操作系统,如果没有掌握操作系统,我认为很难把握一个嵌入式系统。即使在做嵌入式开发中,作应有层的开发几乎可以不知道操作系统也可以开发,我认为那是浮在表面的。很难深入和提高自己的层次。声明:一孔之见!不可深究!

      
在学习linux内核过程中犯了一个极其严重路线错误:对linux几乎不懂就开始学习内核。我个人推荐一个学习路线是:
使用linux—〉linxu系统编程开发---〉驱动开发和分析linux内核。而我差不多相反,实际上你不会使用linux也可以学习内核,但是如果你懂了这些东西学习更有效率。

      
关于要不要学习内核的问题,我的回答如下:不一定。如果你是喜欢钻研的那你进入内核会满足你的欲望。同时对你以后的嵌入式系统的开发有很好的影响。如果你想从事嵌入式linux系统开发,最好对内核有所了解。如果仅仅是做应用开发没有必要。我打个比喻:cc++java等语言是武林中的某个武林派别的话,如什么拳法,什么刀法等,那么linux 内核应该是一个人的内功的反应。

      
怎么开始学linux内核:最好有三件宝物:《深入理解linux内核》《情景分析》和源代码。

      
先看《深》,那主要讲原理,好像市场上有本讲原理性并且更浅,《linux内核设计与实现》听说不错。如果没有学习操作系统的,像我这样的,最好先看看操作系统原理的书。看了几遍后,就看情景分析,最好对着《深》看。两本交叉看,《深》是纲,《情》是目。最后深入代码。

学习嵌入式技术,我认为两个重点,cpu和操作系统,目前市场是比较流行arm,所以推荐大家学习arm。操作系统很多,我个人对开始学习的人,特别不是计算机专业的,推荐学习ucos。那是开源的,同时很小。学习很好。为什么选linux,我不想讲太多,网上这方面的太多,但是我在工作中发现,做linux的技术路线很难,在windows几乎不会有的问题,在linux开发中几乎遍地陷阱。一掉进去划很长时间出来,一旦解决自己又长进了!相对来说开发周期长,难度大。现在资料也逐渐丰富起来,难度也降低了些!
至于怎么学习,这是他的特色地方,必须有块开发板,我是同学里最早买学习板的,虽然化钱,我认为值。对我实习和工作产生了很大的影响。
如果没有开发板,那是纸上谈兵。有人说,那要1000-2000亚,的确是,兄弟,看长远的,对您的职业和发展那点钱不算什么!有的人说我站着说话不腰痛,好吧,钱这东西对我影响很大,我在大学里扫厕所,扫的不错,奖5元/月。兄弟你有过吗?我认为教育投资是效益最有保障的!我实习拿3k,很多同学拿 1-2k,当然比我高的也有。虽然我现在没有毕业,但一家公司就签了。从事目前流行的高档的消费电子的研发。对于我两年前一无所知的我,应该有质的变化,我感谢学校收了我这个废品。当然我也非常的努力。说这么多并不是要炫耀我什么,实际上根本不值得炫耀,虽然现在工作环境和待遇比较满意,但是,我发现我很差,特别是代码能力,我希望平常大家少玩游戏,多编程。编程才是硬道理!

没有想到,一下写了这么多,其实还想写的,比如在中科院的一位老兄是怎样学习linux内核和看书的,真的很感动。他的为人我很钦佩。也想介绍毛德操的《嵌入式系统》那本书,对学习arm linux的很好,也想介绍实习和工作的东西,太长了,耽误大家时间。我也不想检查里面的错别字了,很多!就写到这里吧。
更多的恰如是技术方面的问题,提供一个不错的平台,是个嵌入式技术的交流群,有兴趣的朋友可以加入,QQ群:70448366.
### 嵌入式软件开发学习路径与资源推荐 嵌入式软件开发是连接硬件与软件的重要桥梁,它在物联网(IoT)、汽车电子、智能家居等领域具有广泛应用。以下是一个从入门到进阶的系统性学习路径和推荐资源。 #### 1. 初识嵌入式软件 嵌入式软件是指运行在嵌入式系统中的软件,这些系统通常具有特定的功能和性能要求,需要开发者同时掌握硬件知识和软件编程技能[^1]。因此,初学者应首先理解嵌入式系统的概念及其与其他软件的区别。 #### 2. 第一阶段:基础知识积累 第一阶段的学习重点在于打牢基础,包括但不限于C语言编程、数字电路基础以及单片机开发。C语言作为嵌入式开发的核心语言,其重要性不言而喻。此外,了解基本的硬件知识如寄存器操作、中断机制等也是必不可少的[^2]。 #### 3. 第二阶段:深入学习操作系统与驱动开发 进入第二阶段后,可以开始学习实时操作系统(RTOS),例如FreeRTOS,并尝试编写简单的任务调度程序。此外,Linux系统编程和驱动开发也是这一阶段的重要内容。推荐按照以下顺序学习: - Linux基础及命令行操作 - Linux系统编程(文件I/O、进程管理、信号处理等) - 驱动开发基础及Linux内核分析 建议使用《Linux设备驱动程序》(第三版)作为参考书籍,结合实际项目进行练习[^4]。 #### 4. 第三阶段:高级主题与实战 在掌握基础后,可以进一步学习高级主题,例如网络编程、多线程编程以及图形界面开发(如Qt)。对于希望深入研究的开发者,还可以探索嵌入式AI、边缘计算等前沿领域。推荐观看“爱编程的大丙”博主的视频教程,他提供的Linux学习、数据结构、网络套接字、线程池等内容非常实用[^3]。 #### 5. 实践与项目经验 理论学习固然重要,但实践才是检验真理的唯一标准。可以通过以下方式积累项目经验: - 使用开发板(如Raspberry Pi、STM32等)完成实际项目。 - 参与开源项目或竞赛,锻炼团队协作能力。 - 自己动手设计一个小型嵌入式系统,例如智能家居控制器或物联网设备。 ```python # 示例代码:简单的GPIO控制(以Raspberry Pi为例) import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) pin = 18 GPIO.setup(pin, GPIO.OUT) try: while True: GPIO.output(pin, GPIO.HIGH) time.sleep(1) GPIO.output(pin, GPIO.LOW) time.sleep(1) finally: GPIO.cleanup() ``` #### 推荐资源 - **书籍**:《嵌入式系统设计与实践》、《Linux设备驱动程序》(第三版) - **在线课程**:Coursera上的“嵌入式系统专项课程”、B站上“爱编程的大丙”系列视频 - **开发工具**:Keil、IAR Embedded Workbench、PlatformIO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值