历史上的今天
返回首页

历史上的今天

今天是:2024年09月02日(星期一)

正在发生

2021年09月02日 | ARM之未定义指令异常和SVC异常

2021-09-02 来源:eefocus

异常向量表的概述

在这里插入图片描述

在上一章,我们学习了建立异常向量表,这里我们可以通过看arm的手册,我们每一种异常都对应一个工作模式,下面我就来尝试触发一下未定义指令异常和SVC异常


异常发生的说明

简单的来说就是先保存现场,之后恢复现场

保存现场:我们使用的是arm指令集,所以我们先将pc保存在lr中,并将pc-4(原本写pc默认的是pc+4),再将cpsr寄存器保存在spsr中

恢复现场:将lr写入pc,spcp写入cpsr,(通过ldm指令)


int main(void)

{

rebuild_vectors_table();

__asm__ __volatile__(

".word 0x54546411nt"

".word 0x45967111nt"

".word 0x77777777nt" //触发未定义异常


"svc #9527nt" //触发svc异常

"swi #8877nt"

"swi #3356nt"

"data:n"

       ".word 0xc3e114d8n"

   "ldr r0, =datan"

   "sub r0, r0, #1n"

"ldr r0, [r0]n"

);


printf("come back to main...n");

推荐阅读

史海拾趣

Cramer公司的发展小趣事

在智能家居领域,Cramer公司也展现出了强大的创新能力。他们推出了一款智能家居控制系统,该系统可以通过手机APP远程控制家中的电器设备。为了实现这一功能,Cramer公司投入了大量资源进行技术研发,并与多家家居品牌达成了战略合作协议。这款产品的推出,使得Cramer公司在智能家居市场上占据了一席之地。

安谱隆(Ampleon)公司的发展小趣事

在恩智浦剥离射频业务后,安谱隆迅速吸引了资本市场的关注。建广资产成功竞标,以18亿美元(约116.82亿元人民币)的价格收购了安谱隆。这一交易不仅显示了建广资产对安谱隆技术实力和市场潜力的认可,也为安谱隆未来的发展注入了新的动力。在建广资产的支持下,安谱隆开始了其独立发展的新篇章。

AMD(超微)公司的发展小趣事

2022年,无锡锡产微芯半导体有限公司完成了对安谱隆的收购。这一交易金额超过百亿元,是当年中国最大的半导体并购交易事件之一。锡产微芯的收购不仅为安谱隆提供了更广阔的发展平台,也为其在半导体行业中的进一步发展注入了新的活力。在锡产微芯的支持下,安谱隆开启了新的发展阶段,继续在全球射频市场中发挥着重要作用。

这五个故事展示了安谱隆从恩智浦剥离出来到被锡产微芯收购的发展历程。在这个过程中,安谱隆不仅展现了其强大的技术实力和市场潜力,也经历了资本市场的波折与挑战。然而,正是这些经历使得安谱隆更加成熟和稳健,为其未来的发展奠定了坚实的基础。

爱特姆(ATOM)公司的发展小趣事

爱特姆科技自在美国德克萨斯州休斯顿市成立以来,便致力于电子行业的创新与发展。1998年,公司成功创立了“ATOM”品牌,标志着其正式踏入了品牌化发展的道路。起初,爱特姆以台湾、深圳、昆山为主要研发生产基地,凭借对技术的不断追求和对市场的敏锐洞察,逐渐在连接器领域取得了突破。

ECLIPTEK公司的发展小趣事

ECLIPTEK公司自创立之初就专注于高精度电子元件的研发与生产。面对激烈的市场竞争,公司不断投入研发资源,推出了一系列具有创新性的产品,如高精度时间同步模块和低功耗传感器。这些产品凭借其卓越的性能和可靠性,迅速在市场上赢得了良好的口碑,使ECLIPTEK成为电子元件行业的佼佼者。

振华新云(CEC)公司的发展小趣事

背景:为了进一步扩大市场份额和提高品牌影响力,振华新云积极开展市场拓展和国际合作。

内容:公司积极参加国内外电子展会和论坛等活动,加强与国内外客户的沟通和交流。同时,积极寻求与国际先进企业的合作机会,共同开展技术研发和市场推广等活动。

成果:通过市场拓展和国际合作,振华新云的产品逐渐走向世界舞台,赢得了广大客户的信赖和好评。同时,公司也积累了宝贵的国际化经验和资源,为未来的国际化发展奠定了坚实基础。

问答坊 | AI 解惑

关于吉时利6位半数字万用表

2100型六位半USB数字万用表是Keithley高性能数字万用表家族的最新成员。它具有六位半数字万用表的准确度、功能和速度,能够简化和满足您最苛刻的测量要求,而价格只相当于从前性能较低的五位半表和高端手持机型。将高精度和低成本相结合,2100高精 ...…

查看全部问答>

LPC2132 硬件I2C(查询方式)终于搞定了!!!

       哈哈,真是“福无双至,今日至;祸不单行,昨夜行!”。最近在弄LPC2132读写AT24C02时,刚开始用的是周工的I2C程序包,但是不怎么稳定,有时能进中断,有时不行。所以一直想改写代码。显示用模拟方式,因为这 ...…

查看全部问答>

求一个AT91RM9200 的BSP,一个EBOOT也可以

公司要求把:PXA255换成AT91RM9200,这下麻烦全来了。什么资料都没有。 LINUX相关的倒找一了堆,就是没有CE下的BSP。 有高手做过这方面的吗?求一个AT91RM9200 的BSP,一个EBOOT也可以,给俺发一个。 邮箱:sankye@163.com…

查看全部问答>

2410 nandboot烧录

这个问题还不是十分明了 这样的,我的2410板子上已经被我擦除了nandboot,没有操作系统,裸跑上跑(嘿嘿,重头开始,可以了解更多) 比如我的代码现在在MDK V4下编译出来27KB的bin文件,利用MDK自带的download功能下载到nand的0x0开始的地方。 ...…

查看全部问答>

太阳能供电模块设计的问题

太阳能电池使用的是0.5W 2V的两个电路都似乎不能正常的在太阳能和电池间切换 [ 本帖最后由 ssawee 于 2011-1-31 22:23 编辑 ]…

查看全部问答>

初学者,请教问题!!!1

entity cnt16 is port(clk:in std_logic;      dout:out std_logic_vector(3 downto 0);           dclk1:out std_logic); end cnt16; architecture Behavioral of cnt16 is     ...…

查看全部问答>

CAN中断

发送数据,CAN中断,先进入状态中断,读取中断状态只为0x00000018,即成功接收发送一帧数据?这是为什么。不应该是只是发送中断吗? 中断具体的流程图应该是怎么样的呢? 至于报文ID,与ID掩码应该怎么设置,有什么关联? 在一切正常下,哪个 ...…

查看全部问答>

grace和头文件问题

实现uart的串口通信    先用grace初始化    在rx的中断函数里面写if=‘9’,则红灯亮,成功了 但是现在想grace调用内联函数却不行这是错误提示 然后src目录 这是中断函数声明 event的头文件 最后event函数 …

查看全部问答>

【Nucleo深度评测】+范例试用

本帖最后由 fyaocn 于 2014-12-15 11:06 编辑 拿到Nucleo板子和蓝牙套件,测试范例,可以顺利通过编译并下载到板子中如图。 完全按照范例去做效果还是不错的,可惜没有另一个dongle,不能测试全部性能。也不能测试这个范例的功能是否能够实现。 ...…

查看全部问答>