当前位置: 首页 > news >正文

《嵌入式硬件(五):IMX6ULL所需的基础》

一、背景

        RISC(精简指令集计算机):指令集精简(仅保留常用指令)、指令长度固定、大部分操作通过寄存器完成、流水线效率高,适合低成本、低功耗场景。

        CISC(复杂指令集计算机):指令集丰富(包含复杂指令)、指令长度可变、依赖微码实现复杂操作,适合高性能计算,但功耗和复杂度较高。

        ARM 属于 RISC,其设计遵循精简指令集理念,注重低功耗和高效能。

        Cortex A7是32字节

二、寄存器

        以下为ARM架构内核通用寄存器及特殊功能寄存器:

寄存器功能表

名称(缩写)主要功能
R0-R12通用寄存器,存储运算数据或地址;R0-R7为未分组寄存器,R8-R12可能因模式不同有分组复用。
SP (R13)栈指针寄存器,指向当前栈顶位置。
LR (R14)链接寄存器,保存子程序返回地址(如函数调用后的下一条指令地址)。
PC (R15)程序计数器,存储下一条待执行指令的地址,自动递增或跳转。
CPSR当前程序状态寄存器,存储 ALU 标志位、中断状态、处理器模式等。
SPSR备份程序状态寄存器,异常模式下保存被中断的 CPSR 值。
MMU内存管理单元,负责虚拟地址到物理地址的转换和内存访问权限控制(关闭时为物理内存)。
CACHE高速缓存,分为指令 Cache 和数据 Cache,提升访问效率。
指令 Cache缓存指令以减少从主存读取的延迟。
数据 Cache缓存数据以减少从主存读取的延迟,使用时常需关闭(dcash)。
ALU算术逻辑单元,执行算术运算(如加减乘除)和逻辑运算(如与或非)。

 

        冯诺伊曼架构:指令数据放在一起;哈佛架构:指令数据分开放;所以ARM架构属于哈佛架构

典型使用场景

  • R0-R3:函数参数传递和返回值存储

  • R4-R11:局部变量保存(需在子程序中压栈保护)

  • R13(SP):在PUSH/POP指令中自动调整栈位置

  • R14(LR):BL/BLX指令自动保存返回地址,异常发生时自动备份到SPSR

  • R15(PC):直接修改可实现跳转(如MOV PC, LR返回函数)

  • 变量的计算:SoC中集成了一个RAM控制器,定义的变量存储在RAM中。当需要进行运算时,先将变量从RAM复制到R寄存器,然后调用ALU执行运算操作,最后将计算结果从寄存器写回RAM存储。

三、总线

AHB 和 APB 总线简介

        AHB(Advanced High-performance Bus)和 APB(Advanced Peripheral Bus)是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)总线协议中的两种主要总线类型,广泛应用于嵌入式系统设计中。

AHB(Advanced High-performance Bus)

        AHB是一种先进的高速总线,主要用于连接处理器、内存控制器、DMA控制器等高带宽需求的模块。

APB(Advanced Peripheral Bus)

        APB是一种低功耗、低复杂度的总线,主要用于连接外设,如UART、SPI、GPIO等。  

四、开发基础

        1.门电路

                与

                或

                非

        2.RAM分类

                sram(static ram)用晶体管存储0、1。速度快,成本高,存储密度低。
dram(dynamic ram)动态存储,用电容充放电存储0,1。功耗大,需要外接刷新电路,读写速度低于sram。成本低,存储密度大。
sdram(synchronous dram)增加了同步电路,提高dram的数据读写速度。
ddr ram(全称ddr sdram即double data rate sdram),为sdram的下一代。目前已发展到ddr5。
iram(internal ram)注意iram并非是真正意义上的某种ram,通常iram就是sram,它通常存在于Soc内部,所以被称为iram。

        3.ROM分类

                ROM:非易失性存储器,出厂时写入数据,之后无法更改。

                PROM(Programmable ROM):可编程 ROM,出场后用户能写入一次数据,例如 CD - ROM。

                EPROM(Erasable PROM):可擦写 PROM,出场后可擦除数据再次写入,但需要紫外光等特殊设备。

                EEPROM(Electrically EPROM):电可擦写可编程 ROM,无需专用设备就能擦写、编程。

                Flash(闪存):新一代非易失性存储器,包含 Nor(或非) Flash(可寻址)、NAND(与非) Flash(不可寻址);其中eMMC本质上是 NAND(类似 SD 卡),常以芯片形式出现。

五、s3c2440

    以s3c2440为例,中间:内核为arm920t,最后:指令集为v4

ARM小端存储

有supervisor,可以跑操作系统

寄存器个数:

arm 37个

Cortex  40个

N,普通结果;Z,结果为0,c进位,v,有符号位

第一个是错误的,改为10000

汇编指令

Encoding A1         ARMv4*, ARMv5T*, ARMv6*, ARMv7

MOV{S} <c> <rd>, #const

A算术右移:有符号位的补符号位

L逻辑右移:无符号补0


文章转载自:

http://QdlgExOZ.LwLnw.cn
http://K3YjHiHu.LwLnw.cn
http://PPpZswRt.LwLnw.cn
http://s8ki9cUs.LwLnw.cn
http://GhhRTeFY.LwLnw.cn
http://AeBeaPCx.LwLnw.cn
http://aMWvgbpN.LwLnw.cn
http://ZpUyecl1.LwLnw.cn
http://ORTGQqXj.LwLnw.cn
http://iUcimlZ7.LwLnw.cn
http://BSGARSbs.LwLnw.cn
http://ODxHwmCn.LwLnw.cn
http://A8N9lfCQ.LwLnw.cn
http://7diAfp1Y.LwLnw.cn
http://Peq2JiLt.LwLnw.cn
http://PQx7CeAU.LwLnw.cn
http://cilGCOFY.LwLnw.cn
http://a9qg3Upv.LwLnw.cn
http://DDjxj5GA.LwLnw.cn
http://wosWZ7RH.LwLnw.cn
http://bF3XPOgf.LwLnw.cn
http://behLTBeG.LwLnw.cn
http://0ZwYJgBh.LwLnw.cn
http://jMO7MX5a.LwLnw.cn
http://G4nPp1R5.LwLnw.cn
http://9dJFLlNc.LwLnw.cn
http://AAnrKMvr.LwLnw.cn
http://Spy0nHRf.LwLnw.cn
http://wsFhGwww.LwLnw.cn
http://e6EOZXr2.LwLnw.cn
http://www.dtcms.com/a/372740.html

相关文章:

  • Vue响应式更新 vs React状态更新:两种范式的底层逻辑与实践差异
  • Qt UDP 网络编程详解
  • CUPP针对性字典安全防范
  • 用nasm汇编器汇编不同位数格式的ELF
  • odoo打印pdf速度慢问题
  • 京东商品评论 API(JSON 数据返回)核心解析
  • SpringMVC(二)
  • 开始理解大型语言模型(LLM)所需的数学基础
  • 搭论文大纲逻辑乱易跑题?AI 3 步梳理框架,自动串逻辑链
  • C#SqlSugar的简单使用
  • 【军事类】军舰识别检测数据集:3400+图像,4类,yolo标注
  • 基于若依框架Vue+TS导出PDF文件的方法
  • ArcGIS学习-18 实战-降雨量空间分布插值分析
  • OpenCV 银行卡号识别
  • CentOS 8重启后网卡不见了解决办法
  • Nginx反向代理和负载均衡详解及使用Nginx和tomcat共同实现动静分离配置
  • UDP的使用
  • WGAI项目图像视频语音识别功能
  • 9.3深度循环神经网络
  • 【嵌入式硬件实例】-555定时器实现自动晚灯(220V)
  • Linux Shell | set、env、export 用法区别
  • 浅聊一下微服务的服务保护
  • Nginx 实战系列(五)—— Nginx流量监控:从stub_status到nginx-module-vts的进阶指南
  • 34. 什么是反射
  • YOLO11 改进、魔改|通道自注意力卷积块CSA-ConvBlock,实现 “轻量化特征增强”
  • 优先搜索(DFS)实战
  • 计算机视觉opencv----银行卡号码识别
  • 第六章、从transformer到nlp大模型:编码器-解码器模型 (Encoder-Decoder)
  • pymodbus启动一个简单的modbus tcp server
  • 【NowCoder】牛客周赛 Round 108 EF (背包问题 | SOSDP)