Easyelectronics.ru

Электроника для всех
Текущее время: 18 сен 2019, 12:29

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Вопросы по ядру cortex m0+
СообщениеДобавлено: 14 авг 2019, 17:07 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 777
Привет.
Пытаюсь освоить архитектуры cortex m0+ начал читать http://infocenter.arm.com/help/topic/com.arm.doc.ddi0432c/DDI0432C_cortex_m0_r0p0_trm.pdf (может посоветуете что-то другое) и не понял почему два указателя стека Main Stack Pointer и Process Stack Pointer? Что за что отвечает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы по ядру cortex m0+
СообщениеДобавлено: 14 авг 2019, 17:23 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3657
Это - для нужд ядра операционной системы, для защиты и разграничения одного от другого. В обычном режиме без операционки используется MSP. Операционка в режиме пользовательских процессов использует PSP, а в режиме ядра - MSP. Как раз благодаря PSP и происходит сохранение текущей точки исполнения в каждом процессе (задаче) при их переключениях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы по ядру cortex m0+
СообщениеДобавлено: 14 авг 2019, 17:45 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 777
вот еще вопрос что написано в этой строчке asm("bx %0"::"r"(app_start_address)); ?

Как понимаю % - это указатель, но что такое указатель в контексте ассемблера мне не ясно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы по ядру cortex m0+
СообщениеДобавлено: 14 авг 2019, 18:13 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3657
Переход на адрес, содержащийся в регистре, а значение в регистр берется из парметра ф0ции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы по ядру cortex m0+
СообщениеДобавлено: 14 авг 2019, 18:28 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 777
А вот это что значит "bx %0" ? какой это "r" как понял там этих r 12 штук и далее msp? lr, pc.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы по ядру cortex m0+
СообщениеДобавлено: 14 авг 2019, 19:58 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3657
bx - инструкция перехода по адресу, взятому из регистра rХ. В данном случае регистры назначаются автоматически компилятором. Символ % и последующее число означает порядковый номер в списке операндов, идущих правее.
Таким образом, эта запись представляет собой сишную обертку ассемблерной инструкции безусловного перехода по указанному адресу.

Что касается номеров регистров, то регистры r0-r7 используются чаще всего. Регистр r7 часто используется как индексный (указатель). Регистры r8-r12 используются только 32-битными вариантами инструкций.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB