Comments 14
вопрос на засыпку — в следующей части просто рассмотреть работу SPI или не тянуть кота за хвост и подключить какой нить простой SPI дисплей?
https://youtu.be/2yUzWS3AjBs?si=I54dX55czpCL5Wr9
а так то и не только простой....
Почему SysTick в ARM всегда только убывает, а не возрастает?
А где тут ассемблерный код, который паркует регистры процессора при вызове самого прерывания?
А где ассемблерный код, который отвечает за возврат из отработанной функции в main?
При вызове функции прерываний не происходит и при этом надо понять куда вернуться после отработки функции.
адрес возврата в LR, так что переход по нему вернет исполнение в вызывающий код
вообще я не понял про какой код вы пишите
в прерывании свой порядок возврата - там используются специальные значения для возврата
а для подпрограмм в LR делал по этому небольшое видео https://youtu.be/XrkwxJUf0Rs?si=VTW7UZC4kh5N7Emd оно есть и в ВК
адрес возврата в LR, так что переход по нему вернет исполнение в вызывающий код
А кто прописывает регистр LR? Сам программист на ассемблере руками или это происходит аппаратно?
оба варианта возможны..
при вызове подпрограммы (инструкция BL) в LR аппаратно заносится адрес следующей инструкции основной программы
при обработке исключений - в LR заноситься спец значение, и адрес возврата сохраняется на стек
ну и при вызове подпрограмм из подпрограмм - программист должен сам сохранять\восстанавливать LR о чем и рассказывается в видео по ссылке выше
Как на ассемблере будет выглядеть функция заполнения области RAM памяти под стек значениями 0xCA?
Нужно раскраcить стек именно до вызова функции main().
[окраска памяти (memory painting)]
Это нужно для анализа глубины заполнения стека.
STM32F4: GNU AS: Прерывания, Системный таймер (SysTick) (Часть 6)