实战_SVC异常
1.1 什么是SVC指令?
在ARM指令中,有一条指令:
SVC #VAL
它会触发一个异常。
在操作系统中,比如各类RTOS或者Linux,都会使用SVC
指令故意触发异常,从而导致内核的异常处理函数被调用,进而去使用内核的服务。
比如Linux中,各类文件操作的函数open
、read
、write
,它的实质都是SVC
指令。
我们此次不讲解SVC
在内核中的使用,我们只是看看如何处理SVC
触发的异常。
1.2 在汇编代码里插入SVC指令
在代码中插入:
SVC #1
看看会发生什么事情。
1.2.1 提供SVC异常处理函数
我们只简单的打印一些信息即可
void SVC_Handler(void)
{