当前位置:首页 > 公众号精选 > 嵌入式微处理器
[导读]网上看了很多的嵌入式学习路线,有的比较片面,有的为了博人眼球东拼西凑,几乎把整个行业用得着用不着的技术都写上去了,没有侧重点,简直是劝退指南,还有的纯粹是打广告卖板子招生。一口君曾经是某见的教学总监,带过的学生也有大几千了,基本都从事linux相关开发工作。现在在各行各业也基本都...

网上看了很多的嵌入式学习路线,有的比较片面,有的为了博人眼球东拼西凑,几乎把整个行业用得着用不着的技术都写上去了,没有侧重点,简直是劝退指南,还有的纯粹是打广告卖板子招生。

一口君曾经是某见的教学总监,带过的学生也有大几千了,基本都从事linux相关开发工作。

现在在各行各业也基本都是翘楚,有的都成公司技术主管,带领几十人上百人团队。

一口君凭借多年的研发和开发经验,整理了嵌入式学习的最经典路线

下面就为大家介绍学习路线:

一、基础

1. linux基本操作:

需要掌握的知识如下:

  1. 环境的搭建:ubuntu、vmware安装
  2. Linux目录结构;
  3. 文件类型;
  4. 基本目录操作,文件操作,vim,ifconfig,ping,cd,cp,mv,mkdir等,最关键是gcc命令要会用;
  5. 一些简单的shell脚本;
  6. Makefile的编写。
个人建议只要会一些基本的操作就行了,不需要太深入的学习每一个命令,用到的时候会去搜索就行了。 

2. c语言:

所谓编程不学C语言,便称码农也枉然。

学Linux,不学编程,建议就不要学了,否则职业后期全是瓶颈

那些和你说学Linux不需要懂编程的都是再耍LM。

学习C语言一定要学习Linux下C编程,C语言网上视频也很多,知识点不一一介绍了。

但是有一点,就是一定要记住,一般的程序员从入门到绝对的精通大概需要2年时间,要想随心所欲写出超高质量的代码,时间因人而异,还要看个人造化。

实际上并不需要每个人都成为大师,能成为一个快快乐乐的小码农,不也是见开心的事吗?

3. 数据结构:

数据结构很重要,但是在这个上面花太多时间,也是没必要的。想进大厂的除外,自己拼命去刷题吧。对于嵌入式方向来说,个人建议只要掌握几个基本的排序和查找算法即可,没必要把所有算法都研究一遍。 

  1. 能掌握常见的算法比如:冒泡排序、直接插入排序、快速排序、二叉树等。
  2. 链表:双向链表,增删改查。

4. 基础阶段项目

基础阶段,个人强烈建议一定要做一个综合性项目,一定要从0开始写。

建议项目《电话本管理软件》

该项目包含的知识点、功能点:

  1. 包含简单的菜单功能
  2. 链表:包括增、删、改、查、排序等操作的双向链表。
  3. 结构体、数组、指针、二级指针,字符串操作
  4. 排序
  5. 用户登录
  6. 用户电话号码信息的添加、删除、修改

二、进阶

进阶阶段知识点很重要,学完这个阶段的内容,我们就可以用各种库函数 系统调用来自己实现Linux命令:ls、cd、stat、pwd、ifconfig,甚至自己实现一些网络协议:tftp、ftp、http。

即使以后不做linux c开发,有了这些基础,你再去学java、c 你的视野一定会不一样,Linux下系统编程是真正基于一个胸痛来编程的。

为什么我们要学Linux,就是因为他的开放性,有无数的大牛在给Linux添砖加瓦,所有代码都可以看到,而我们根本不用担心版权问题!

1. 文件IO

  • 掌握Linux文件IO的一套系统调用API:open、read、write、lseek,close等。
  • 熟练写出文件拷贝等功能模块。
  • 理解I/O、缓冲的概念。
在Linux下,一切皆文件,我们操作操作许许多多的外设(字符设备、套接字、文件等等)就像操作文件一样。要想知道如何操作文件和外设,我们就必须熟练掌握文件IO,这是我们学习Linux下面编程最基本的知识点。

2. 进程线程

  • 进程与线程的概念
  • 掌握常用的函数fork、exec族函数等api;
  • 进程创建、回收,一个.c源文件变成可执行程序的过程;
  • 常用的进程相关命令:ps、top、crontab、at;
  • 进程间通信:信号量、消息队列、共享内存、管道、信号;
  • 守护进程;
  • 线程创建、同步互斥,互斥锁;
  • 库的概念,什么是动态库和静态库,如何自己制作动态库和静态库。
进程、线程是我们学习Linux下系统编程非常重要的一个知识点,必须掌握。

3. 网络编程

  • TCP/IP协议分层以及每一层的功能;不要看OSI,只要知道即可;
  • socket api的使用,
  • tcp、udp;C/S架构如何创建;
  • 套接字属性的设置;
  • C/S架构;
  • 多进程、多线程网络服务器模型;
  • 任意一款抓包工具使用;
  • 常见的网络协议分析:ping、 tftp、 ftp、http、telnet 等。
网络的重要性不言而喻,应用实在太广了,网络的知识也非常的复杂:网络编程、TCP/IP协议栈、网络拓扑、网卡驱动、各种无线通信协议。

可以收每一大块知识的学习,都需要很长一段时间来入门,并需要一定难度的项目做支撑,才能真正了解和掌握网络。对于嵌入式方向初学者,我们最好先了解一些基础的网络协议知识,然后学习套接字的使用。

4. 进阶项目

该阶段可以选择综合项目《多线程聊天室》,实现公聊、私聊、注册登录,互相发送文件等功能。

三、高阶

该阶段学习需要开发板配合,建议新手先把之前内容打扎实,再进入这个阶段学习。

开发板的选择,最重要的是资料!资料!资料!资料!资料!资料!资料!资料!

资料不全的板子不要买!

1. ARM

  • arm架构、arm的模式、arm指令,寻址,异常,中断,异常向量表,
  • 伪指令、C语言和汇编代码的互相调用、内联汇编;
  • 学会查看常见电路图,了解数据线、信号线、地址线、中断线,常见外设电路图
  • 学会查看各种芯片的用户手册
  • *常见的外设的裸机驱动开发,led、key、adc、pwm、rtc、看门狗、i2c、spi、网卡、flash、USB等
这个阶段的内容,对于了解整个计算机软件的工作原理非常重要,Linux内核的很多机制都要依赖汇编指令,尤其ARM工作模式、寻址、异常,中断,异常向量表这些概念。可以说,掌握了这个阶段的内容,那么单片机、STM32真的就是手到擒来了!


2. 系统移植

  • uboot移植、uboot参数设置
  • rootfs制作、内核剪裁移植,
  • usb、网卡驱动移植,
  • uboot、linux启动流程,
  • 自己添加uboot命令
这一阶段的内容对于嵌入式工程师来说,在做实际项目的时候,会经常用到,各个厂家的移植步骤会有所差异,但原理基本相同,熟练掌握这些操作,非常必要。

这部分内容其实很复杂,对于新手来说,建议会操作即可,工作后如果在深入研究,再回头研究这些细节。


3. Linux驱动

  • 字符设备架构、inode、cdev、file_operations、file之间关系;
  • platform总线、设备树;
  • 内存管理;
  • 同步互斥机制,自旋锁、信号量、互斥体,原子操作;
  • Linux进程管理
  • 块设备
  • 中断、中断底半部;
  • 等待队列,poll的实现;
  • 常见设备的驱动的编写和代码分析;
  • 网络设备:网卡驱动分析、netfilter使用、网络协议栈架构;
  • USB、TTY、SPI、IIC、PCIE等架构。
能够学到这个阶段,那么恭喜你,你可以称为一名真正合格的嵌入式工程师了。

Linux驱动我们学习Linux内核最好的一个入口, 在这庞大、浩瀚、错综复杂的内核代码中找到一个突破口, 从而真正走向大神之路!

驱动的学习,主要在于多捋架构,多阅读大牛的代码!

四、终极

我想如果能学到这个份上,后面如何发展,已经不需要一口君再多费唇舌了,可以继续学习安卓、QT,也可以深挖物联网、算法,AI、VR、大数据或者钻研Linux内核优化内核等,每个领域独当一面,收入都不会低。

也衷心祝愿各位还能坚持到这个阶段的,头发依然保持茂密!

最后给大家一个建议,学习编程没有任何捷径可以走,需要花费几年的时间才能有所成,所以我们要提早做好规划,找好大方向,制定好短期、长期的计划,然后按照计划,一点点的实施

END
来源:一口Linux,作者:土豆居士版权归原作者所有,如有侵权,请联系删除。
嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭