1. 概述
bcos其实没有内核层和应用层之间明显的权限限制。但是,在APP与系统代码分开编译的时候每次系统代码编译后APP代码都需要重新编译,这还不是最大的问题。最大的问题是有的系统接口在系统中没有被调用过,keil导出的符号表中就没有对应的接口。基于上面的问题,bcos实现了系统调用的功能以便应用程序更高的使用系统功能。
2. 系统服务调用(SVC)
SVC 用于产生系统函数的调用请求。例如,操作系统不让用户程序直接访问硬件,而是通过提供一些系统服务函数,用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它们来间接访问硬件。因此,当用户程序想要控制特定的硬件时,它就会产生一个 SVC 异常,然后操作系统提供的 SVC 异常服务例程得到执行,它再调用相关的操作系统函数,后者完成用户程序请求的服务。
SVC 异常通过执行”SVC”指令来产生。该指令