1. NRF52832帶藍牙協議棧的程序是如何跳轉的?
答:如果NRF52832燒錄了協議棧S132和用戶應用程序,那么程序會先從協議棧的MBR啟動,然后跳轉到應用程序執行。
2. 關於中斷的執行是怎樣的?
答:所有應用程序或bootloader的中斷都是由協議棧分發出來后執行的,所以燒錄協議棧后,中斷服務函數進入的時間會被加長了,具體延時的大小看如下官方數據:
對於開放性的外設,最大為3us的延時。
3. 關於中斷優先級是怎么划分的?
nrf52832的中斷優先級有8個,從0到7(其中0的優先級最高),且這個中斷優先級是協議棧規定的,是不能夠被改變的。
當芯片復位啟動時,所有中斷優先級都為0,之后協議棧會占用如下三個中斷等級:
level 0 :用於處理協議棧嚴格時序的事件;
level 1 :用於內存隔離和實時保護用;
level 2 :用於處理可延遲的任務以及SVC中斷事件等;
其它5個等級可供用戶應用程序使用,如下圖所示:
另外需要特別注意的是,因為優先級為4的中斷會處理SVC等事件,所以應用程序的中斷優先級2和3也是受限的,即不能在中斷優先級為2和3的中斷服務函數中調用協議棧函數,SVC中斷函數以及RTOS函數等。
另外如果你足夠細心,你會發現中斷優先級為2的中斷要比中斷優先級為7的中斷執行的快,因為前面的中斷等級越多,也就是要等待的事件就越多,等待的時間就會越長。
以下為三種場景下的中斷響應過程:
4.