реклама на сайте
подробности

 
 
> Cortex - M Ассемблер, Уточнение некоторых моментов...
Golikov A.
сообщение Apr 21 2015, 08:45
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет.

Как-то, зачем-то полез посмотреть кейловский стартап файл для какого-то STM проца. При детальном просмотре увидел некоторые детали, смысл которых мне не на 100% понятен..

вот стандартная реакция на прерывания

Код
NMI_Handler     PROC
                EXPORT  NMI_Handler                [WEAK]
                B       .
                ENDP

HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP


WEAK - это обозначение что данный обработчик самый последний, если в тексте программы не найдется получше.
"B ." - это переход по кругу, на тот же адрес на котором этот бранчь

Вот тут первая задачка, я вдруг понял что не знаю документа где "B (точка)" значит переход по этому же адресу. Это чисто кейловская фича? Где описание команды в таком синтаксисе?

Вторая загадка почему NMI_Handler, а HardFault_Handler\, что авторы хотели показать этим последним обратным слешем?

не то чтобы без ответов жить не могу, просто интересно стало...

И последняя полу-загадка, кусок кода в конце стартапе

Код
IMPORT  __use_two_region_memory
....


импортим и никак не используем, правильно я понимаю что если __use_two_region_memory не будет объявлено во внешних ресурсах, то еще на этапе компиляции я получу ошибку. То есть это как бы такая защита?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 20:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016