nrf52832协议栈S132特性记录

1. NRF52832带蓝牙协议栈的程序是如何跳转的?

答:如果NRF52832烧录了协议栈S132和用户应用程序,那么程序会先从协议栈的MBR启动,然后跳转到应用程序执行。

2. 关于中断的执行是怎样的?

答:所有应用程序或bootloader的中断都是由协议栈分发出来后执行的,所以烧录协议栈后,中断服务函数进入的时间会被加长了,具体延时的大小看如下官方数据:

image

对于开放性的外设,最大为3us的延时。

3. 关于中断优先级是怎么划分的?

nrf52832的中断优先级有8个,从0到7(其中0的优先级最高),且这个中断优先级是协议栈规定的,是不能够被改变的。

当芯片复位启动时,所有中断优先级都为0,之后协议栈会占用如下三个中断等级:

level 0 :用于处理协议栈严格时序的事件;

level 1 :用于内存隔离和实时保护用;

level 2 :用于处理可延迟的任务以及SVC中断事件等;

其它5个等级可供用户应用程序使用,如下图所示:

image

另外需要特别注意的是,因为优先级为4的中断会处理SVC等事件,所以应用程序的中断优先级2和3也是受限的,即不能在中断优先级为2和3的中断服务函数中调用协议栈函数,SVC中断函数以及RTOS函数等。

另外如果你足够细心,你会发现中断优先级为2的中断要比中断优先级为7的中断执行的快,因为前面的中断等级越多,也就是要等待的事件就越多,等待的时间就会越长。

以下为三种场景下的中断响应过程:

image

4.

原文地址:https://www.cnblogs.com/unrulife/p/10654461.html