嵌入式学习——硬件(ARM体系架构)——day51

news2024/10/9 22:23:12

1. S3C2440基础知识——一条指令四个字节

1.1 定义

        S3C2440 是三星(Samsung)公司设计的一款基于 ARM920T 核心的微处理器,广泛应用于嵌入式系统中,属于三星的 S3C24xx 系列。

1.2 处理器核心

  • ARM920T:基于 ARM v5T 架构,32 位 RISC 处理器。
  • 主频:最高可以达到 400 MHz。
  • 内存管理单元 (MMU):支持虚拟内存管理。

(1)RISC的全称是“精简指令集计算”(Reduced Instruction Set Computing)

         复杂指令集计算(CISC)

(2)指令集:ARMv4、ARMv5、ARMv7

1.3 存储器

  • 内部 SRAM:4 KB。
  • 外部存储器接口:支持 SDRAM、SRAM、NAND Flash 和 NOR Flash。
  • 内存控制器:支持 16 位和 32 位的外部总线。

(1)ram——(随机存储器、掉电丢失数据、存储临时程序和数据)

(2)rom——(只读存储器、掉电不丢失、存储固定数据和程序)

nor      flash可被寻址(支持随机访问)

nand   flash不可被寻址(支持顺序访问)

1.3 外设接口

  • UART(通用异步收发器)):3 个通用异步收发器,支持全双工通信。
  • I2C:支持主从模式。
  • SPI:支持主从模式。
  • I2S:用于音频接口。
  • USB:2 个主机控制器,1 个设备控制器。
  • SD/MMC:支持 SD 卡和 MMC 卡接口。

        DB9(九针数据通用连接器)

  • 定义:DB9是一种常见的连接器接口,通常有9个针脚排列成一个D形接头,用于连接串行设备。
  • 功能:DB9连接器可以用于连接不同类型的串行设备,如串口(串行口),它可以支持UART通信。

1.4 GPIO

  • 引脚数:具有丰富的通用输入输出(GPIO)引脚,可以配置为多种功能。
  • 中断控制器:支持多达 60 个外部中断。

1.5 显示控制器

  • LCD 控制器:支持多种显示模式,包括 STN 和 TFT LCD。

1.6 音频

  • AC97:支持音频编解码器接口。

1.7 DMA(多总线结构)——单片机是单总线结构

  • 通道数:具有 4 个 DMA 通道,用于高效数据传输。

1.8 定时器

  • PWM:支持脉宽调制(PWM)输出。
  • 看门狗定时器:用于系统复位。

1.9 应用

  • 工业控制:如 PLC、HMI 等工业设备。
  • 消费电子:如 MP3 播放器、便携式媒体播放器。
  • 嵌入式系统:如嵌入式 Linux 设备、开发板等。
  • 自动售货机:用于各种自动售货系统中。
  • 医疗设备:用于便携式医疗检测设备中。

2.     CPU:中央处理器

        MCU:微处理器

        GPU:图形处理器

        FPU:浮点运算单元

Kernal

        ALU:逻辑运算单元

        MMU:内存管理单元

        R0~R12:通用寄存器

        i.cache:指令缓存(Instruction Cache)

        d.cache:数据缓存(Data Cache)

(1)冯·诺依曼结构(Von Neumann Architecture)

  1. 单一存储器系统:指令和数据存储在同一个存储器中,共享同一个存储空间。
  2. 单一总线系统:使用同一条总线来传输指令和数据。
  3. 顺序执行:程序指令按顺序存储,并且按顺序执行(可以有跳转指令改变执行顺序)。
  4. 通用性强:适用于广泛的应用场景,设计简单,成本较低。

(2)哈佛结构(Harvard Architecture)

  1. 分离存储器系统:指令存储器和数据存储器是分开的,分别存储指令和数据。
  2. 独立总线系统:有独立的总线用于传输指令和数据,可以同时进行指令和数据的读取或写入。
  3. 并行处理:由于指令和数据的独立存储和传输,可以实现更高效的并行处理。

        

AHB(Advanced High-performance Bus)

  • 定义:AHB是一种高性能总线协议,通常用于连接高速设备,如处理器和内存。
  • 特点:AHB支持高带宽和低延迟的数据传输,适用于需要快速数据访问的设备和模块。
  • 应用:常用于连接高速处理器、内存控制器以及其他高性能外设,如高速ADC(模数转换器)或DMA(直接内存访问)控制器等。

APB(Advanced Peripheral Bus)

  • 定义:APB是一种低功耗、低速率的总线协议,设计用于连接较慢的外围设备。
  • 特点:APB相对于AHB而言速度较慢,但在控制低速外设和传感器等场景下非常适用,同时能够有效降低功耗。
  • 应用:常用于连接各种低速外设,如GPIO(通用输入输出)、定时器、UART(通用异步收发器)等。

RISC(Reduced Instruction Set Computing)精简指令集计算

CISC(Complex Instruction Set Computer)  复杂指令集计算

PC(Program Counter)

  • 程序计数器,也称为指令计数器,是一个专门的寄存器,用于存储CPU当前执行的指令地址。PC在执行每条指令时会自动递增以指向下一条指令的地址,是指令执行过程中的关键组成部分。

LR(Link Register)

  • 链接寄存器,用于存储函数调用时的返回地址。当函数调用另一个函数时,LR会存储调用点的地址,以便在函数执行结束后返回到正确的位置。

SP(Stack Pointer)

  • 栈指针,用于指向当前程序栈的顶部。栈在计算机中用于存储临时数据和函数调用的上下文信息。SP指示了当前栈顶的位置,随着栈的推入(push)和弹出(pop)操作而变化。

3. 大小端存储

3.1 大端存储:低地址处存放低数据位——51单片机

      小端存储:低地址处存放地数据位——ARM

***************重点部分***************

4. ARM的七种工作模式——软中断和异常向量表实现工作模式的切换

5. ARM系列通用寄存器数量

6. 异常向量表

        存储异常处理程序的入口地址,处理器根据异常类型跳转到对应地址执行。

  1. 复位(Reset)

    • 地址:0x00
    • 描述:处理器复位时的处理程序入口,初始化处理器状态。
  2. 未定义指令(Undefined Instruction)

    • 地址:0x04
    • 描述:执行未定义指令时的处理程序入口。
  3. 软件中断(SWI, Software Interrupt)

    • 地址:0x08
    • 描述:处理软件中断,通常用于系统调用。
  4. 预取中止(Prefetch Abort)

    • 地址:0x0C
    • 描述:指令预取过程中遇到的异常。
  5. 数据中止(Data Abort)

    • 地址:0x10
    • 描述:数据访问过程中遇到的异常。
  6. 保留(Reserved)

    • 地址:0x14
    • 描述:未使用的异常向量(在某些处理器中用于调试或未来扩展)。
  7. IRQ(普通中断请求)

    • 地址:0x18
    • 描述:处理普通中断请求。
  8. FIQ(快速中断请求)

    • 地址:0x1C
    • 描述:处理快速中断请求,通常用于紧急和高优先级的中断。
地址     | 向量表条目
--------|-------------------
0x00    | 复位处理程序地址
0x04    | 未定义指令处理程序地址
0x08    | SWI处理程序地址
0x0C    | 预取中止处理程序地址
0x10    | 数据中止处理程序地址
0x14    | 保留
0x18    | IRQ处理程序地址
0x1C    | FIQ处理程序地址

7. 如何判断12位立即数imm12

8. 汇编启动文件编程

8.1

8.2 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1863133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[C#][opencvsharp]C#使用opencvsharp进行年龄和性别预测支持视频图片检测

使用 OpenCVSharp 来调用 age_net.caffemodel 和 gender_net.caffemodel 来进行性别和年龄预测涉及几个步骤。以下是一个简化的流程和示例文案: 1. 准备工作 确保你已经安装了 OpenCVSharp 和相关的依赖项。确保你有 age_net.prototxt、age_net.caffemodel、gende…

市面上很轻的 100kW 负载组

FX100S-C 负载组 EAK的 FX100S-C 负载组在轻质外壳中以 415Vac 50Hz 提供 100kW 的连续负载。数字仪表允许您测量功率、电压、电流和频率,同时还允许您在进行测试时记录数据。 EAK是市场上最轻的 100kW 负载组之一,它将使您能够访问其他负载组无法到达…

离线部署OpenIM

目录 1.提取相关安装包和镜像 2.安装docker和docker-compose 3.依次导入镜像 4.解压安装包 5.执行安装命令 6.PC Web 验证 7.开放端口 7.1IM 端口 7.2Chat 端口 7.3 PC Web 及管理后台前端资源端口 “如果您在解决类似问题时也遇到了困难,希望我的经验分享…

服务运营 | MS文章精选:线上点单,当真免排队?餐饮零售与医疗场景中的全渠道运营

编者按: 小A走进了一家奶茶店,准备向店员点单,但却在屏幕上看到还有98杯奶茶待制作(因为线上订单突然暴增)。因此,小A不满地嘟囔着离开了奶茶店。这个例子展示了线上渠道可能会对线下渠道造成一些负面影响…

并发编程-04synchronized原理

并发编程-04synchronized原理 一 synchronized基础 1.1 并发安全问题 在学习synchronized原理之前,我们先要了解synchronized是干嘛用的,什么场景下需要使用它,以及它的使用方式有哪些?接下来我们去根据一个业务场景去了解下sy…

【排序 队列】1585. 检查字符串是否可以通过排序子字符串得到另一个字符串

本文涉及知识点 排序 队列 LeetCode1585. 检查字符串是否可以通过排序子字符串得到另一个字符串 给你两个字符串 s 和 t ,请你通过若干次以下操作将字符串 s 转化成字符串 t : 选择 s 中一个 非空 子字符串并将它包含的字符就地 升序 排序。 比方说&a…

密码学:用随机函数隐藏指纹

英文中e的出现频率高,加密后,频率最高的那个符号代表e。这是历史上的一次真实案例。这些符号的概率,叫做“指纹”。 把e加密成2个符号,用随机函数选择,例如70%概率下选择符号1,30%选择符号2。解密时&#…

Pythonnet能导入clr,但无法引入System模块?

【pythonnet详解】—— Python 和 .NET 互操作的库_pythonnet 详细使用-CSDN博客 Python中动态调用C#的dll动态链接库中方法_python 如何调用c# dll-CSDN博客 需求&#xff1a;Python调用并传List<float>类型参数给.Net 起初&#xff1a;直接 # 创建一个Python浮点数…

数字逻辑--课程设计报告

##智力竞赛抢答器设计 如果对这个有兴趣或者需要电路图或者报告的话请私聊我

Linux 中变量的取用与设定

优质博文&#xff1a;IT-BLOG-CN Linux是一个多人多任务的环境&#xff0c;每个人登录系统都能取得一个bash shell&#xff0c;每个人都能够使用bash下达mail这个指令来接收自己的邮箱等等。问题是&#xff0c;bash如何得知你的邮箱是那个文件&#xff1f;这就需要『变量』的帮…

JavaWeb系列八: WEB 开发通信协议(HTTP协议)

HTTP协议 官方文档什么是HTTP协议快速入门页面请求的一个问题(分析)http请求包分析(get)http请求包分析(post)GET请求 POST请求分别有哪些http响应包分析常用的状态码说明状态码200状态码404状态码500状态码302状态码304 MIME类型MIME介绍常见的 MIME 类型 官方文档 HTTP常见请…

不会吧!KVM竟然不支持磁盘的精简置备!?

正文共&#xff1a;999 字 17 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面我们安装了KVM主机&#xff08;KVM部署初体验&#xff09;&#xff0c;接下来肯定是要简单操作一下&#xff0c;体验体验如何使用。 上次我们是在主机的桌面环境中打开的“虚拟系统管理器VMM”&…

192.回溯算法:电话号码的字母组合(力扣)

代码解决 class Solution { public:// 定义每个数字对应的字母映射const string letterMap[10] {"", // 0"", // 1"abc", // 2"def", // 3"ghi", // 4"jkl", // 5"mno", // 6"pqrs&…

可以给任意软件exe一键加验证加卡密的免费工具!

目录 引言TProtect网络验证工具简介主要特性一键快速接入多平台支持高度安全灵活的用户和卡密设置自动更新与提示代理端支持高级模式防止多开机制 使用方法步骤一&#xff1a;获取TProtect工具步骤二&#xff1a;打开服务器步骤三&#xff1a;添加要加密的软件步骤四&#xff1…

关于Pycharm右下角不显示解释器interpreter的问题解决

关于Pycharm右下角不显示解释器interpreter的问题 在安装新的Pycharm后&#xff0c;发现右下角的 interpreter 的选型消失了&#xff1a; 觉得还挺不习惯的&#xff0c;于是网上找解决办法&#xff0c;无果。 自己摸索了一番后&#xff0c;发现解决办法如下&#xff1a; 勾…

科普文:贝叶斯过滤器判定垃圾邮件

简介 贝叶斯分类的运作是借着使用标记(一般是字词&#xff0c;有时候是其他)与垃圾邮件、非垃圾邮件的关连&#xff0c;然后搭配贝叶斯推断来计算一封邮件为垃圾邮件的可能性。 贝叶斯垃圾邮件过滤是非常有威力的技术&#xff0c;可以修改自己以符合个别使用者的需要&#xff0…

STM32HAL库--PWR低功耗实验(速记版)

电源控制&#xff08;PWR&#xff09;简介 电源控制部分&#xff08;PWR&#xff09;概述了不同电源域的电源架构以及电源配置控制器。PWR 的内容比较多&#xff0c;我们把它们的主要特性概括为以下 3 点&#xff1a; 电源系统&#xff1a;USB 稳压器、内核域(VCORE)、…

https基础概念

目录 1.什么是https 1.1.https概念 1.2.一些术语 2.https如何加密 2.1.使用对称加密 2.2.使用非对称加密 1.什么是https 首先&#xff0c;https不是http的复数形式 1.1.https概念 &#xff08;1&#xff09;产生背景 为什么会出现https&#xff0c;是因为http协议在传…

昇思25天学习打卡营第一天|快速入门

背景 华为组织了昇思25天学习营&#xff0c;从基础开始&#xff0c;提供算力支持&#xff0c;还是体验蛮好的。推荐大家报名参加。 学习内容 今天的内容是快速入门&#xff0c;很简单&#xff0c;当是复习基础内容了。 下载数据集》模型组网》模型训练》保存模型&#xff0c…

oracle 11g rac创建实例时发现只给一节点创建了实例 二节点没创建的处理方法

由于操作失误没有在二节点创建实例 删除数据库重新dbca建库 [oracleracdg1-1 dbs]$ dbca -silent -deleteDatabase -sourceDB rac11dg1 -sysDBAUserName sys -sysDBAPassword oracle_4U Connecting to database 4% complete 9% complete 14% complete 19% complete 23% …