随笔分类 -  ARM

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