ARM架构与编程——异常与中断实战:SVC异常

实战_SVC异常

1.1 什么是SVC指令?

在ARM指令中,有一条指令:

SVC #VAL

它会触发一个异常。
在操作系统中,比如各类RTOS或者Linux,都会使用SVC指令故意触发异常,从而导致内核的异常处理函数被调用,进而去使用内核的服务。
比如Linux中,各类文件操作的函数openreadwrite,它的实质都是SVC指令。
我们此次不讲解SVC在内核中的使用,我们只是看看如何处理SVC触发的异常。

1.2 在汇编代码里插入SVC指令

在代码中插入:

SVC #1

看看会发生什么事情。

1.2.1 提供SVC异常处理函数

我们只简单的打印一些信息即可

void SVC_Handler(void)
{
   
    

你可能感兴趣的:(ARM架构与编程学习,arm开发)