随笔分类 - ARM
摘要:0 环境 ARMV8,uboot 2020.10,rpi3平台 1 移植框架 board,不用说了,板级,uboot使用dts后,这块代码应尽量简化 machine, SOC级,主要是一些外设 ARCH, 如arm(包含armv7和armv8) CPU, 如armv8 各框架启动时的关系: 配置相关
阅读全文
摘要:1 异常发生后快速定位方法 ARM v8发生sync异常以后(如非法指令、data abort等),可以通过寄存器快速定位引起异常的原因,具体寄存器如下: 如下为测试程序 在系统MMU设置里,0x100地址不允许访问,下图程序152行故意访问0x100地址,引发异常。 执行152行以后,进入异常 查
阅读全文
摘要:函数执行到特定位置卡死,该位置只有内存和UART寄存器访问,单步无问题。 查找问题: 怀疑UART和SRAM ip有问题,芯片设计提供抓信号的版本 抓SRAM信号,发现有0地址访问。 0地址是DDR区域,还不可访问,程序中未访问0地址 定位:ARM的硬件,为了提高效率,对于配置成normal的内存区
阅读全文
摘要:1 ARM64中的对齐检测 普通内存访问,这里的对齐在不同指令模式下是不一样的,例如使用了W寄存器,那就是32bit对齐;使用了X寄存器,那就是64bit对齐: device属性,只要非对齐,就报错 normal mempry, 受SCTLR_EL*中A bit的控制 exclusive atomi
阅读全文
摘要:1 MMU简介 1.1 为什么需要MMU MMU的作用是将core发出的虚拟地址VA转换为物理地址PA。在操作系统里,进程的VA可以很大且连续,进程不用考虑PA的实际情况,有MMU完成VA到PA的转换 裸跑程序里,一般不向OS这么复杂,MMU会做平坦映射,即VA=PA 1.2 裸跑不开MMU行不行
阅读全文

浙公网安备 33010602011771号