|
|
  |
STM32F0 Время реакции и выполнения прерывания |
|
|
|
Jun 22 2016, 09:41
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(jcxz @ Jun 22 2016, 12:03)  Не правильно пояснили  Потому, что в коде из листинга используются регистры R0-R7 и только простые режимы адресации (без автоинкрементов, длинных смещений и т.п.) и формы команд влияющие на флаги (MOVS, LSLS, ...) и т.п. Поэтому все команды короткие. Открываем книгу The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors, Second Edition на стр 10, смотрим рис. 1.4 с командами, и восхищаемся, что 32-битовых команд у Cortex-M0/M0+/M1 всего 6.  Причем, без разницы, старшие или младшие регистры используются. (номер поправил) Цитата If we look at the instruction set in a bit more details (Figure 1.4), we can see that the Cortex-M0, Cortex-M0ю, and Cortex-M1 processors only support a small instruction set (56 instructions). Most of these instructions are 16 bit, thus provide a very good code density - which means it need a smaller program memory require for the same task compared to many architecture.
|
|
|
|
|
Jun 22 2016, 09:51
|
Частый гость
 
Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511

|
Цитата(Сергей Борщ @ Jun 22 2016, 12:21)  Может крамолу скажу, но если основной цикл пустой, то зачем использовать прерывание? В основном цикле все и делать, а события ждать по WFI/WFE. Сэкономится время на переход по вектору и на сохранение контекста, а также подготовительные операции компилятор может вставить перед WFI/WFE... Сейчас необходимо добиться минимального времени срабатывания. В дальнейшем программа будет разрастаться и будут добавлены другие прерывания, а в основном цикле будут добавлены другие действия.
|
|
|
|
|
Jun 22 2016, 12:12
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(scifi @ Jun 22 2016, 12:51)  Вы будете смеяться, но Cortex-M0 и ARMv6 тут совершенно ни чём. Bit-banding - это опция на процессорах M0, M3 и M4. Так уж получилось, что она чаще встречается у M3 и M4, чем у M0. См. тут. Смеяться я не стану, но в ARM DDI 0484B (TechRefManual на v6) на Bit-banding даже намёка нет.
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Jun 22 2016, 18:19
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Те же лицензиаты издавали рекламные обзоры, из которых следовало, что Bit-banding в СМ0 нет и не ожидается (без намёков). Точнее, подчеркивали что эта фича характерна для СМ3 и выше. И, как уже сказано, её не было в описании ARMv6-М от самого АРМа. В Architecture Reference Manual на какое-то ядро обазано быть данное описание. Цитата(scifi @ Jun 22 2016, 22:08)  Увы, не могу. Лицензиаты арма передо мной не отчитываются  Когда сможете, тогда будет корректно и "чаще встречаются" и слив.
Сообщение отредактировал GetSmart - Jun 22 2016, 18:49
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jun 22 2016, 21:32
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(scifi @ Jun 22 2016, 23:28)  Ой, да ради бога: Пока всё ещё утверждение ложно/некорректно. Там речь о Фрискейловом СМ0+. BME реализовано на уровне ядра. Но первое же преджложение "Т.к. bit-banding есть опция СМ0+" на каких документах от АРМ основано - не ясно. Разработчик описал в документах ядра ARMv6-M что там есть обязательное, что опциональное. Ни там, ни там не было Bit-banding. Всегда отсутствующие фичи можно не указывать вообще. Либо апдейтить документацию. В TRM CM0+ (на сайте арма) тоже нет ни слова о Bit-banding. Если в документации ARMv6-M или TRM CM0+ появится Bit-banding, то утверждения станут корректны для CM0+. С оговоркой, что опцию добавили с какой-то даты. Наличие опции в ките ничего не значит, т.к. кит напоминает сборку запчастей для разных кортексов.
Сообщение отредактировал GetSmart - Jun 23 2016, 14:22
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|