mirror of
https://github.com/EmbedDevIOT/obsidian-vault-.git
synced 2026-11-06 02:33:26 +03:00
vault backup: 2026-03-18 20:37:34
This commit is contained in:
@@ -15,17 +15,11 @@ _Цель: оценить понимание работы процессорно
|
|||||||
- **Ожидаемый ответ:**
|
- **Ожидаемый ответ:**
|
||||||
|
|
||||||
1. После подачи питания и сброса, процессор забирает первое слово (32 бита) из таблицы векторов (начало памяти, обычно 0x08000000) — это начальное значение **основного указателя стека (MSP)**.
|
1. После подачи питания и сброса, процессор забирает первое слово (32 бита) из таблицы векторов (начало памяти, обычно 0x08000000) — это начальное значение **основного указателя стека (MSP)**.
|
||||||
|
|
||||||
2. Процессор забирает второе слово из таблицы векторов — это адрес **обработчика сброса (Reset_Handler)**.
|
2. Процессор забирает второе слово из таблицы векторов — это адрес **обработчика сброса (Reset_Handler)**.
|
||||||
|
|
||||||
3. Выполняется код `Reset_Handler` (обычно написан на ассемблере или Си в startup-файле). Его задачи:
|
3. Выполняется код `Reset_Handler` (обычно написан на ассемблере или Си в startup-файле). Его задачи:
|
||||||
|
|
||||||
- Копирование инициализированных данных из Flash в RAM (секция `.data`).
|
- Копирование инициализированных данных из Flash в RAM (секция `.data`).
|
||||||
|
|
||||||
- Обнуление секции неинициализированных переменных (секция `.bss`).
|
- Обнуление секции неинициализированных переменных (секция `.bss`).
|
||||||
|
|
||||||
4. Вызывается функция `SystemInit()` (настройка базовой частоты, PLL).
|
4. Вызывается функция `SystemInit()` (настройка базовой частоты, PLL).
|
||||||
|
|
||||||
5. Вызывается функция `main()`.
|
5. Вызывается функция `main()`.
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user