我是物联网专业的,目前大一 在学校这一学期的学的东西 只有C语言 C51 学习进度缓慢 效率低 所以在假期就是寻找 培训班希望能多学点东西 短短七天的培训班让我学到了不少东西,这就涉及到了寄存器操作等知识。因为ARM架构在嵌入式领域使用较为广泛,所以我在韦东山老师的课程下学习了相关知识。以下内容大部分源于韦老师的课件。
官网就有很多免费的课程,很适合新手入门,韦老师在B站也有课程,我就是B站搜索发现的。下面是韦东山老师团队的官网及B站地址:
新版官网:http://100ask.org/
旧版官网:https://www.100ask.net/
B站链接:https://space.bilibili.com/275908810/channel/detail?cid=135681
基础概念
什么是ARM?
- 一家设计处理器的公司
- 采用ARM公司提供方案设计的处理器芯片统称
ARM架构的分类![在这里插入图片描述](https://img-blog.csdnimg.cn/53bf40ebe56a4183b4996293e7f4cd26.png#pic_center)
ARM与x86的区别
- 首先是操作地址空间的区别,ARM根据cpu发出的不同地址选择不同的设备,包括内存,串口等设备,不区分IO和内存,直接把IO空间映射到内存空间,访问方法都是用内存空间的方式操作。x86是根据cpu发出的不同指令选择不同设备,并且在cpu眼里内存和IO是隔离开的,IO空间使用完全不同的指令来访问。
- 其次就是指令集,ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing)。它所用的指令比较简单,有如下特点: 对内存只有读、写指令;对于数据的运算是在CPU内部(即寄存器)实现,所以RISC设定多组寄存器来加速程序的运算;使用RISC指令的CPU复杂度小一点,易于设计
- x86属于复杂指令集计算机(CISC:Complex Instruction Set Computing),它所用的指令比较复杂,比如某些复杂的指令,它是通过“微程序”来实现的。比如执行乘法指令时,实际上会去执行一个“微程序”。CISC架构的很多复杂指令都通过CPU内的微码来完成,会影响效率。但是CISC的指令集丰富,编译器设计可以更简单。CISC允许数据处理指令对内存进行直接操作,需要的寄存器数量减少