嵌入式Linux学习入门

大四毕业了,签了一份嵌入式开发的工作,现在准备入门了,搜集一些要学习的内容。

嵌入式开发学习路线

嵌入式Linux学习入门_第1张图片

51单片机,arm,stm32在单片机上

在单片机上编程c语言和在嵌入式系统写c语言,有很大不同

gcc又与我们普通的c语言有所不同。

难的学不会是因为简单的没学好!

c语言,必须精通,主攻结构体,链表,指针,数组,与或,位操作

arm汇编,认识,可以自己做一些简单的修改,没有必要精通

linux + 好看的衣服(界面) = android
嵌入式Linux学习入门_第2张图片

知识在我头脑中变为解决问题的能力

嵌入式Linux学习入门_第3张图片

数电、模电、c语言

Linux与单片机的入门必看

linux与单片机

成为一名嵌入式Linux开发工程师需要学习哪些知识? - 知乎 (zhihu.com)

(4 封私信 / 19 条消息) 怎样学会单片机? - 知乎 (zhihu.com)

单片机的程序中的函数,基本上都是操作寄存器, 单片机项目严重依赖于硬件,换一个芯片后就得重写一套代码 。

单片机的基础就是看电路图、看芯片手册,然后在这些函数里读写寄存器

用linux是不可以直接访问寄存器的,需要借助驱动程序,将参数传给驱动程序,它会帮我们访问寄存器。

在学习的过程中可以“不求甚解”,抱着疑问慢慢学下去,这些问题自然就解决了,不要打破砂锅问到底。

对于驱动程序:作为初学者,懂几个简单的驱动程序,有利于工作交流;理解中断、进程、线程的概念,无论是对驱动开发、应用程序开发,都是很有好处的。所以对于初学者,建议前期只学习这几个驱动:LED、按键、中断。

嵌入式Linux学习入门_第4张图片

linux系统编程、windows系统编程,核心就是学习这些系统给的接口函数,然后用C语言调用这些函数,以完成我们写的程序顺利在linux上运行。

嵌入式Linux学习入门_第5张图片

C语言(是吃饭的家伙,占了工作的80%)

数组,结构体,指针,C标准库

数据结构

数组,链表,队列,树 、图

驱动编写

给你一个芯片,你要很快地把它驱动起来,比如说一个音频编解码芯片,用IIS协议把它驱动起来,我得去写这个驱动;给我一个外部的额ADC芯片,通过SPI我要去写驱动。

协议

IIS协议、SPI协议、model bus协议、can协议,高级一点的USB协议,8080总线

完成以上这些就可以开始裸机开发了

操作系统

uclinux、FreeTROS、首先操作系统有两种:一种是用MMU(Memory
Managenent Unit ,即存储管理单元)的,另一种是不用MMU的。
用MMU的是Windows、 MacOS、 Linux 、Android;
不用MMU的是FreeRTOS 、VxWorks 、 ucLinux、uc/OS.
其次CPU也有有两种 :带MMU的和不带MMU的。
带MMU的有 Cortex-A、ARM9 、ARM11系列。不带MMU的有 Cortex-M系列

GUI

一些开源的GUI,一些常见的比如说,emwin、STemwin、LVGL、TouchGFX。

网络协议

uIP、LWIP、

linux和电路基础

用电路基础要看懂硬件工程师的原理图,

认知

在公司,你对行业和业务了解的越深刻,你就有越多的话语权

你可能感兴趣的:(linux,学习,单片机)