nRF51中关于SVCALL的使用
来源:互联网 发布:谷歌浏览器怎么优化 编辑:程序博客网 时间:2024/06/05 09:34
SVCall
一个特殊的中断:SVCall
简述:一种由程序进行触发的中断,默认开启
起源:SVC(系统服务调用,亦简称系统调用)多用于在操作系统之上的软件开发中。SVC 用于产生系统函数的调用请求。例如,操作系统不让用户程序直接访问硬件,而是通过提供一些系统服务函数,用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它们来间接访问硬件。因此,当用户程序想要控制特定的硬件时,它就会产生一个 SVC 异常,然后操作系统提供的 SVC 异常服务例程得到执行,它再调用相关的操作系统函数,后者完成用户程序请求的服务。
用途:可以通过设置,使得一段代码能够被某些中断打断,而不能被另外一些中断打断,比如可用于确保模拟IIC的时序不被打断而造成通信失败
注意:
- SVC 异常是必须立即得到响应的(若因优先级不比当前正处理的高,或是其它原因使之无法立即 响应,将引发HardFault)
- 主从优先级等等概念和普通中断相同(且地位相同,即该特殊中断其实也不特殊)//祝:默认情况下,除HardFault和NMI,其它中断的优先级均为0,0(附加提醒,group设置需先于priority设置),!!BUT!!,中断优先级的设置需要这么调用:NVIC_SetPriority(SVCall_IRQn,NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 1, 1));
在C中使用SVCall
SVC服务函数使用堆栈进行参数传递,故C语言版的SVC服务函数需要一个汇编操作,用于把堆栈中的参数提取到寄存器中
0 0
- nRF51中关于SVCALL的使用
- nRF51中关于SVCALL的使用
- 一个特殊的中断:SVCall
- STM32 SVCall
- 关于php中{}的使用
- NRF51-SDK的低功耗蓝牙广播包的单通道扫描实现
- 搭建nRF51开始环境
- NRF51 BOOTLOADER 编译注意事项
- NRF51 startup 反汇编
- nrf51 官方PWM库
- NRF51修改MAC Address
- 关于eVC中MenuBar的使用
- Creator中关于列表框的使用
- struts 中关于集合list的使用
- 关于C#中使用messagebox的问题解答
- swt-designer中关于gridlayout的使用
- 关于Acegi中Acl权限的使用
- 关于C++中函数指针的使用
- Android开发请求网络方式详解
- 利用Multipeer Connectivity框架进行WiFi传输
- 【bzoj1603】【 Usaco2008 Oct】打谷机 (阅读理解) 题解&代码
- git 分支详解
- 控制台打包unity C#代码为dll
- nRF51中关于SVCALL的使用
- OOA/OOD/OOP的区别
- Android编码规范
- python requests sslv3 alert handshake failure
- Selenium 找不到元素的处理方法
- SecureCRT连接不上Ubuntu14/15以及连上之后中文乱码
- jsp+sql server
- IDEA CreateProcess error=2
- centos7安装和使用http代理(squid)