ARM
文章平均质量分 87
逃不了ARM的魔爪
CyberSecurity_zhang
高级MCU软件开发工程师
展开
-
Cortex-R52 深度分析总目录
之前对于R52写的比较随意,现在觉得对于这种内核还是需要系统性的总结一下。原创 2023-09-20 16:04:05 · 616 阅读 · 1 评论 -
Arm Cortex-R52+ Generic Timer分析
Arm Cortex-R52+内部实现了Generic Timer(通用计时器),它可以基于递增计数来产生中断和事件流。Arm®Arm®那么什么是通用计时器呢?原创 2024-09-25 19:44:53 · 1120 阅读 · 0 评论 -
Cortex-R52+的PE mode详解--Abort
其实,在这里突然想到了,如果TCM里面出现了ECC错误,那么DataAbort就会一直发生,那到底在DataAbort_Handler,我们看到的LR和SPSR是否是最开始发生错误的值?举个例子,CPU发送指令给memory,告诉它到哪个位置写入或者读取数据,在memory这一层肯定会判断CPU发的这个地址是不是对的呀,如果发现了异常,它就会告诉CPU:你这个不对嗷,你自己看着吧。如果是数据访问,就会产生data abort,同样的,我们可以通过DFSR找到错误状态,通过DFAR到错误地址,原创 2024-09-13 18:25:03 · 875 阅读 · 0 评论 -
MCU进异常调试小技巧--以ARM内核为例
调试板子总遇到莫名其妙进异常的情况,我们可以有哪些手段来定位现场?今天就接着前几天介绍内核单元的文章继续聊聊ARM内核的异常以及错误处理。原创 2024-09-12 17:55:49 · 933 阅读 · 0 评论 -
芯片杂谈 -- 常聊的内核包含哪些模块
最开始接触到汽车MCU大都来自NXP、Infineon、Renesas,例如MPC5748、TC275、RH850 P1X等等;而各大OEM、供应商等等发布的JD通常都会要求熟悉AURIX、PowerPC、G3KM等等内核。其实我从来没明白这个所谓熟悉,是哪种程度?而面试者通常也不会问太多内核的东西。但是出于好奇,我去研究了目前非常火的ARM Cortex-R52 处理器,总结一下内核里的东西,算是一个入门小科普。原创 2024-09-10 20:01:07 · 1128 阅读 · 0 评论 -
IAR的变量初始化浅析
Hi,大家好,今天是落汤的肌肉,因为成都的天像是漏了一样。昨天的文章最后留了一个小坑,今天把他填了。再赠送一段使用JLINK RTT串口模拟,这样在调试时节省一个串口资源。原创 2024-07-18 15:34:45 · 948 阅读 · 0 评论 -
IAR启动流程深度“起底”
ARM M内核芯片里的启动代码通常会提供Arm、gcc、iar等编译器的模板,其中让人比较迷糊的是IAR的模板。BLX R0BX R0从上面汇编可以看到,Reset_Handler里跳转至__iar_program_start,使命就结束了。这个__iar_program_start里面具体定义了什么内容?搜遍整个工程都没有发现,因此还得从使用手册查起。在IAR工程配置里有这么一个选项:这就意味着如果使能该选项,那么应用程序就在这个标签开始。原创 2024-07-17 19:32:23 · 769 阅读 · 0 评论 -
Armv8-R内存模型详解
大家好,今天是悲伤的肌肉。在调研区域控制器芯片时,发现了S32Z、Stellar SR6P7等芯片均采用的是Cortex-R52\R52+内核,该内核架构为Armv8-R;在阅读内核手册时对内存模型里出现很多之前没有接触过的概念感到困惑,例如Normal memory\Device Memory、Device_nGnRnE;因此简单总结下,以备不时之需。原创 2024-07-12 18:04:19 · 873 阅读 · 0 评论 -
ArmV8常用汇编指令2
基础arm指令介绍原创 2023-11-16 09:38:19 · 656 阅读 · 0 评论 -
ArmV8常用汇编指令
section指示把代码划分成若干个段(Section),程序被操作系统加载执行时,每个段被加载到不同的地址,操作系统对不同的页面设置不同的读、写、执行权限。GNU伪指令具体可参考。正是在这种情况下,汇编器报了第1节中所说的错误,可能是指令采用了新的汇编风格,和旧的不兼容。符号symbol是核心概念,是一个程序的桥梁,程序员使用符号来命名各种内容,链接器使用符号进行链接,调试器使用符号进行定位调试。伪指令,用于给汇编器发送命令,让汇编器按照既定命令进行汇编,也就是说,在汇编完成后,伪指令的使命就结束了。原创 2023-11-16 09:24:01 · 758 阅读 · 0 评论 -
记录第一个启动代码的诞生
核使用R52,参考汇编模板,一步一步来实现。注意哦,我特别没有在这里还对齐处理,原因是想在.S里验证对齐的作用。现在开始写vector_table。原创 2023-09-15 11:29:55 · 901 阅读 · 2 评论 -
Cortex-R52:GIC配置
R52的GIC配置要点原创 2023-08-17 16:14:04 · 456 阅读 · 0 评论 -
Cortex-R52:GIC
GIC对于软件开发的难点在于理解GICD\GICR之间的映射关系;例如GICD有很多寄存器地址是不连续的,如果看GICR的寄存器地址就很容易误解GICR寄存器穿插在GICD里,其实不然,GICR在GIC的memmap中共有5个,分别不同的基地址,而GICR的偏移是基于这个基地址来的。原创 2023-08-16 18:00:29 · 615 阅读 · 0 评论 -
Cortex-R52:Affinity分析
在阅读R52的TRM时,有一个寄存器引起了我注意,MPIDR(Multiprocessor Affinity Register),之前比较少接触ARM核的片子,所以对这个确实有点不清楚,从字面意思看,叫多核亲和度寄存器。好奇怪,亲和度具体指啥?我们来看看。原创 2023-08-14 14:14:00 · 706 阅读 · 0 评论 -
Cortex-R52(一):系统控制寄存器
Cottex-R52是一个中等性能的处理器,主要用于汽车以及其他工业领域。原创 2023-05-23 14:09:48 · 2600 阅读 · 0 评论