• 2024-07-10在Ubuntu上调试ARMv7的core文件
    1在Ubuntu上调试ARMv7的core文件1.1预备uname-a:获得目前嵌入式系统Linux(none)3.8.11-xilinx#40SMPPREEMPTThuJan1217:02:11CST2023armv7lGNU/Linux安装armv7的交叉编译工具链:sudoapt-getudpatesudoapt-getinstallgcc-arm-linux-gnueabihfgd
  • 2024-06-18ARMv7 寄存器 工作模式 和指令集 和 堆栈回溯
    因此,在图4-1中,如果处理器是在IRQ模式,我们可以看见R0,R1...R12(与在用户模式看到的相同的寄存器),加上SP_IRQ和LR_IRQ(仅在IRQ模式中可以访问的寄存器)和R15(程序计数器,PC)。我们通常不必指定模式中的寄存器名。如果我们在一行代码中引用R13,处理器会访问当前模式对应的SP寄存器。
  • 2024-06-01Go - armv7 交叉编译
    以Ubuntu为例,交叉编译armv7的go程序步骤:安装Golang解压编译工具解压程序交叉编译1.安装Golang从https://go.dev/dl/下载最新的Golang安装包,并解压:sudotar-C/usr/local-xzfgo1.22.3.linux-amd64.tar.gz配置环境变量:exportPATH=$PATH:/usr/local/go/bin也可
  • 2023-12-19ubuntu 18.04.6编译uboot提示error: bad value (‘generic-armv7-a’) for ‘-mtune=’ switch
    按照按照  (https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide)制作了一个image当编译uboot的时候,发送命令make:makesocfpga_cyclone5_configmake 得到提示:cc1:error:badvalue(‘generic-armv7-a’)for‘-mtune=’switchcc1:note:va
  • 2023-09-30ARM架构芯片上电启动,自动干了啥
    armv7-M上电后芯片自动完成一些配置,伪代码TaskReset()如下:  主要功能:设置芯片处于Thread模式访问等级是特权级,SP用的是MSP关闭所有中断(exception)从flash读出第一个word,设置到MSP从flash读出第二个word,并读出最低位设置到EPSR.T(对于ARMv7-M,由于只支持THUMB指令集,所
  • 2023-09-29设备驱动-10.中断子系统-5 armv7 GIC架构解析
    1armv7GIC介绍armv732位gic采用v2版本,参考手册https://developer.arm.com/documentation/ihi0048/bb/?lang=enGIC400就是v2版本的中断控制器IP核,当GIC接收到外部中断信号以后就会报给ARM内核。框架如下:GIC架构分为了两个逻辑块:Distributor和CPUInterface,也
  • 2023-05-20ARMv7-A 处理器窥探 —— MMU/TLB
    0、基本概念MMU用作虚拟地址和物理地址的相互转换,是为了能够给OS提供统一视角的虚拟地址空间;TLB的作用是作为MMU的Cache,以提高MMU的性能,他们之间的关系如下:1、ARM处理器发出地址访问(虚拟地址),首先过MMU地址翻译单元的TLB,如果TLB命中,那么直接返回真实的物理地址
  • 2023-05-17ARMv7-A 处理器窥探 —— Memory Model
    1、MemoryTypeARMv7-A处理器中,将Memory定义为几种类型(MemoryType):1、Strongly-ordered;2、Normal;3、Device;它的定义如下所示: 注意:这里的Memory指的不是内存,可以翻译成储存器,是地址空间的概念;普通的内存(RAM),只读的内存(ROM),这些都属于NormalType的范畴;外设和I/O,这
  • 2023-05-14ARMv7-A 处理器窥探 —— Cache
    ARMv7-ACacheArchitecturecache以地址来进行查找Cache的,那么我们到底是用虚拟地址还是物理地址呢?三种方式:1、早期的ARM处理器,如ARM720T或ARM926EJ-S处理器使用虚拟地址提供Index和Tag。这有一个优点,即CPU不需要虚拟到物理地址转换就可以进行缓存查找。缺点是,每
  • 2023-05-13ARMv7-A 处理器窥探(2) —— CP15 协处理器
    1、ARMv7-A协处理器ARMv7-A处理器除了标准的R0~R15,CPSR,SPSR以外,由于引入了MMU、TLB、Cache等内容,ARMv7-A使用协处理器来对这些扩展来进行管理,ARMv7-A支持16个协处理器,编号从CP0~CP15,其中的CP15协处理器称之为系统控制协处理器,CP15协处理器下的寄存器包含了MMU、TL
  • 2023-05-13ARMv7-A 处理器窥探(1) —— 处理器模式
    arm官方资料ARMArchitectureReferenceManualARMv7-AandARMv7-Redition.pdf1、处理器模式1.1、特权等级ARMv7架构支持安全扩展,如果使能了安全扩展,ARMv7-A架构分为安全模式(SecureState)和非安全模式(Non-secureState)两个世界。在非安全模式下,存在三种运行特权PL0,PL1和P
  • 2023-04-23ARM A7 PMU+perf简单记录
    关键词:pmu,perf等等。简单记录PMU及其内核驱动,内核中perf相关内容,以及两者是如何关联的。然后记录perf应用是如何和PMU硬件关联的,以及如何使用perf查看PMU结果。A7PMU概要PMU作为一个扩展功能,是一种非侵入式的调试组件。对PMU寄存器的访问可以通过CP15协处理器指令和Memory-Ma
  • 2022-12-31ARM 汇编指令
    ARM汇编指令格式如下  每一条汇编语句都可以转为32bit的数字 <c>:可选,不写表示无条件执行。举例:ADDEQ表示CPSR.Z等于1时执行ADD指令         
  • 2022-12-11ARMv7-A Coprocessor概要以及读写
     关键词:MRC/MCR/MRRC/MCRR、CP14、CP15等等。1.ARMv7-ACoprocessor介绍ARMv7-A支持16个Coprocessor,分别是:(A2.9Coprocessorsupport)CP15-SystemControl。CP14-D
  • 2022-10-23升级Xcode14之后如何打出带有armv7架构的SDK包
    Xcode14以前是默认armv7和arm64的,升级Xcode之后就被苹果这厮移除了,所以答案是Xcode14是打不出来armv7的包的,因为某些资本家的理念:宁可兼容到每一个古董机型,也不
  • 2022-09-21Unity打IL2cpp(armv7+arm64)包黑屏的处理方法
     处理方法:删掉Library/Il2cppBuildCache文件夹再打包就行了出现黑屏的前提是之前打过IL2CPP(armv7或arm64)包后再打IL2CPP(armv7+arm64),这个应该是属于unity的锅,unity版