ARM学习笔记_1 介绍,Keil环境搭建

从零开始学ARM

学习自b站一口linux老师的课程。

介绍

学习ARM需要学计算机原理,汇编,C语言,基本电路,硬件控制器原理,以及编写相应驱动程序。

为什么要学汇编?

  • 了解系统启动、上电、函数调用等底层实现。
  • 真正地提高函数运行效率。
  • 一些软件的破解……

ARM是什么?

设计微处理器架构的公司,包含三类:cortex-A, -R, -M, 高性能、实时、轻量级。

ARM公司只设计架构不生产产品。每个处理器都需要依靠一定的ARM架构来设计。

授权给其他做产品的公司分为架构层授权,内核层授权(ip核),使用层授权。

  • 架构:可以对ARM架构扩展缩减,如苹果(可以修改我的文章)。
  • 内核:在内核基础上加自己的外设,如三星(可以引用我的文章,但是不能改)。
  • 使用:可以用别人的ip核,但是不能更改(只能转发我的文章)。

SOC

system on a chip, 最大的特点是便宜,开发方便。

image-20230517080538781

AHB:高速总线,存基本的或者性能较高的东西。

APB:外部总线。

计算机历史

巴贝奇:机械结构的差分机。

ada:计算机程序概念的创始人,如循环、子程序等概念。

阿塔纳索夫的ABC,图灵的巨人机都是相当于证明了电路实现计算是可行的,处于证明阶段,类似ChatGPT。冯诺依曼则是设计计算机通用架构。

CPU的发展:最早的仙童半导体,衍生出的Intel公司,

冯诺依曼结构介绍

我们知道冯诺依曼结构5大组成,通过总线(db ab cb)连接。

存储器:cache,金字塔型,从上到下L0寄存器,L1 L2 L3 高速缓存,L4 主存(内存条,CPU可直接访问),本地二级存储(本地磁盘),远程二级存储(分布式文件系统,web服务器)。

哈佛架构介绍

相比冯,程序和数据分开存储。stm32 51就是哈佛架构,pc等是冯诺依曼架构。哈佛执行效率高,冯诺依曼占用资源少。

混合架构介绍

主要是冯诺依曼架构,但是一些上电启动的部分是哈佛架构。

CPU运行原理

指令计数器指着当前指令地址(PC)——去取指令,存到指令寄存器中——执行指令(指令译码,取操作数,运算),从存储单元和程序的数据段取数据并运算,PC++。

指令集:CISC RISC 复杂和精简,ARM是精简。龙芯的MIPS和X86的指令集没有与RISC的指令纠纷,不涉及卡芯片的问题。

ARM指令格式:操作码+操作数的地址。

环境搭建

使用的是绿色的Keil Mdk,和stm32用的是同一个软件开发。

需要安装三星 samsung 的 s3c2400 芯片包,下载地址:https://armkeil.blob.core.windows.net/legacy/MDK79525.EXE

.s文件本来是一些初始化内容,这里我们不需要用到那么多。

.s 文件修改代码:

 AREA Example,CODE,READONLY ;声明代码段Example
 ENTRY ;程序入口
Start
 MOV R0, #0
 MOV R1,#10
 BL ADD_SUM ;调用子程序
 B OVER ;跳转到结尾
ADD_SUM
 ADD R0,R0,R1
 MOV PC,LR
OVER
 END

打开debug模式后,registers里面是32位地址,disassembly 里是翻译后的机器码。

这里注意asm用空格的缩进来指代指令!

猜你喜欢

转载自blog.csdn.net/jtwqwq/article/details/130778579