标签 ARM 下的文章

深入理解调试访问端口(DAP):从ARM核心到混合设计

在嵌入式系统开发中,调试是一个不可或缺的环节。调试访问端口(DAP)作为连接开发者与硬件的桥梁,其重要性不言而喻。本文将基于SEGGER Wiki上的资料,深入探讨DAP的概念、组成部分以及其在不同架构中的应用。DAP概述调试访问端口(DAP)是指DP(Debug Port)和所有连接到DP的AP(Access Port)的集合,它描述了整个调试层次结构。DAP最初是作为一项标准设计的,旨在...

继续阅读 »

ARM中断流程基于CM33

异常处理的基本术语中断抢占 Preemption如果异常的优先级高于当前执行优先级,则可以先发制人当前执行。当一个异常优先于另一个异常时,这些异常被称为嵌套异常。中断返回 Return当异常处理程序完成时,就会发生这种情况。处理器弹出堆栈,并将处理器状态恢复到中断发生前的状态。末尾连续中断 Tail-chaining这种机制加快了异常服务。在异常处理程序完成后或返回操作期间,如果有符合异常输...

继续阅读 »

记录一次非常神奇的调试经历

最近真的是有些忙,好就好及都没有更新了,可能也是因为最近调试都比较顺利,没有碰到什么特别值得记录的bug,哈哈。不过这次真的是有bug还有闲,所以就记录一下。问题描述首先我们还是按照惯例对问题进行一个简单的说明,这次问题出现在对一个CM0+的芯片调试上,程序采用gcc编译,调试是使用的Ozone,这个应该算是一个非常不典型的工具链了,但是我对这个还是比较偏爱的,因为这套工具链是全平台的,并且...

继续阅读 »

QEMU仿真中串口的输入和输出

最近在QEMU上搭建CM33的仿真环境,目前QEMU支持的CM33的设备是musca-b1等系列板卡,这个系列是ARM公司做的一个CM33的参考设计,也有相应的硬件开发板。因为我们主要就是关心仿真环境,所以只是关心系统的memory map和串口相关的资源.实际上对于MUSCA开发板, QEMU只是支持NVIC,串口和Systick这几个模块,其它诸如GPIO,timer等都是不支持的。尽管...

继续阅读 »

怎么更好的编写ARMv8-M TrustZone安全代码

本文翻译自intricacies of writing ARMv8-M Secure codeARM现在已经通过ARMv8-M安全扩展将TrustZone引入到了M系列处理器,TrustZone是一种将重要的代码和数据同普通代码和数据相隔离的一种技术。这种技术可以限制危险或者可利用代码的权限。也可以保证重要的数据和代码与一般代码分离。所以这种技术也依赖Secure代码的可靠性,要想写出可靠的...

继续阅读 »