:::: MENU ::::

Находим вершину стека STM32

Данная процедура может понадобиться например в RTOS при смене контекста выполняемой задачи, когда необходимо сохранить стек в определенной памяти отведенной под стек задачи.

/* Use the NVIC offset register to locate the stack. */
ldr r0, =0xE000ED08
ldr r0, [r0]
ldr r0, [r0] 

По адресу 0xE000ED08 лежит регистр указывающий смещение(адрес) таблицы векторов прерывания. 0xE000ED08 записывается в регистр r0. После, то что лежит по адресу в r0 (адрес начала таблицы векторов прерывания) переписывается в r0. Первое что лежит в этой таблице — адрес верхушки стека. Поэтому последнее действие выполняется еще раз и в R0 переписывается адрес верхушки стека.