1、学习路线
业务
目标:应用开发工程师
系统:操作系统 管理硬件 资源丰富 os开发工程师 驱动程序 (硬件,驱动程序开发工程师 )
c语言 Linux操作系统 操作 编程 ARM arm STM32
2、理解计算机工作方式来学c语言
计算机系统:计算机一套工作机制 硬件触发
cpu(中央处理器) 执行指令 内存 磁盘 内部装了缓存(cache)用于CPU和内存以及磁盘之间数据访问缓冲。
1+1 数据+动作
数据放哪里
mcu、soc
RAM(电容结构):内存 random access memory 随机访问的储存器,内存包含了容器,每个容器都应该有唯一的标识,唯一的地址,选中这个区域进行操作。
磁盘:磁道,flash,分块一块512字节,cpu用控制器访问磁盘。要驱动的表示不是CPU直接可以访问的。
32bit/64bit :地址线。可编2^32个地址。地址线决定一定访问效率
数据结构与算法:写程序把内存分结构,再用算法操作结构。
指针=地址
变量名 地址信息访问
c语言的硬件视角:
(1)什么是指令、cpu工作机制
(2)cpu怎么工作(cpu通过地址总线命中内存的区域,从数据总线上对命中的区域进行读写,对数据进行一定的运算)
(3)cpu、内存、硬盘硬件工作原理(数据访问速度视角,数据储存视角)
(4)编译器的作用(cpu指令集、汇编语言、高级语言、单词、标点符号)
(5)c语言的编译环境(编译器分类{GNU gcc、微软 MSVC、} IDE环境搭建{Dev C++、codeblock、Visual studio、Clion})
(6)c语言的数据表示、C语言的数据操作、c语言如何找到数据、c语言如何管理数据、c语言函数设计思想、c语言的编译过程