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

 
 
6 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> STM32F0 Время реакции и выполнения прерывания
Сергей Борщ
сообщение Jun 22 2016, 09:21
Сообщение #31


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Может крамолу скажу, но если основной цикл пустой, то зачем использовать прерывание? В основном цикле все и делать, а события ждать по WFI/WFE. Сэкономится время на переход по вектору и на сохранение контекста, а также подготовительные операции компилятор может вставить перед WFI/WFE...


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 22 2016, 09:41
Сообщение #32


Универсальный солдатик
******

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



Цитата(jcxz @ Jun 22 2016, 12:03) *
Не правильно пояснили sm.gif
Потому, что в коде из листинга используются регистры 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. rolleyes.gif Причем, без разницы, старшие или младшие регистры используются.

(номер поправил)

Цитата
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.
Go to the top of the page
 
+Quote Post
Влад Р.
сообщение Jun 22 2016, 09:51
Сообщение #33


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511



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



Сейчас необходимо добиться минимального времени срабатывания. В дальнейшем программа будет разрастаться и будут добавлены другие прерывания, а в основном цикле будут добавлены другие действия.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 22 2016, 09:51
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(ViKo @ Jun 22 2016, 12:41) *
Открываем книгу The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors, Second Edition

На каком языке написано? На олбанском китайско-английском? Ржака biggrin.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 22 2016, 10:05
Сообщение #35


Универсальный солдатик
******

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



Цитата(scifi @ Jun 22 2016, 12:51) *
На каком языке написано? На олбанском китайско-английском? Ржака biggrin.gif

Википедия лучше? Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Obam
сообщение Jun 22 2016, 12:12
Сообщение #36


Знающий
****

Группа: Участник
Сообщений: 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 даже намёка нет.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 22 2016, 12:54
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Obam @ Jun 22 2016, 15:12) *
Смеяться я не стану, но в ARM DDI 0484B (TechRefManual на v6) на Bit-banding даже намёка нет.

Ну, значит мне показалось: AHB bit-band wrapper for Cortex-M0 processor.
Go to the top of the page
 
+Quote Post
Obam
сообщение Jun 22 2016, 14:37
Сообщение #38


Знающий
****

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



Цитата(scifi @ Jun 22 2016, 16:54) *
Ну, значит мне показалось: AHB bit-band wrapper for Cortex-M0 processor.


Смайлики не надо забывать: вы использовали Technical Reference Manual (TRM) for the Cortex-M System Design Kit, я для Cortex-M0+.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 22 2016, 17:08
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Obam @ Jun 22 2016, 17:37) *
Смайлики не надо забывать: вы использовали Technical Reference Manual (TRM) for the Cortex-M System Design Kit, я для Cortex-M0+.

Слив защщитан biggrin.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 22 2016, 18:03
Сообщение #40


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(scifi @ Jun 22 2016, 12:51) *
Bit-banding - это опция на процессорах M0, M3 и M4. Так уж получилось, что она чаще встречается у M3 и M4, чем у M0.

Можете огласить список СМ0 с этой опцией?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 22 2016, 18:08
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(GetSmart @ Jun 22 2016, 21:03) *
Можете огласить список СМ0 с этой опцией?

Увы, не могу. Лицензиаты арма передо мной не отчитываются crying.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 22 2016, 18:19
Сообщение #42


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Те же лицензиаты издавали рекламные обзоры, из которых следовало, что Bit-banding в СМ0 нет и не ожидается (без намёков). Точнее, подчеркивали что эта фича характерна для СМ3 и выше. И, как уже сказано, её не было в описании ARMv6-М от самого АРМа. В Architecture Reference Manual на какое-то ядро обазано быть данное описание.

Цитата(scifi @ Jun 22 2016, 22:08) *
Увы, не могу. Лицензиаты арма передо мной не отчитываются crying.gif

Когда сможете, тогда будет корректно и "чаще встречаются" и слив.

Сообщение отредактировал GetSmart - Jun 22 2016, 18:49


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 22 2016, 19:28
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(GetSmart @ Jun 22 2016, 21:19) *
Когда сможете, тогда будет корректно и "чаще встречаются" и слив.

Ой, да ради бога: How to Use Bit-band and BME on the KE04 and KE06 Subfamilies.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 22 2016, 21:32
Сообщение #44


.
******

Группа: Участник
Сообщений: 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


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Влад Р.
сообщение Jun 23 2016, 05:52
Сообщение #45


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511



Появилась новая проблема - написание обработчика прерывания на асме.
Мои знания в асме близки к нулю, тем более под ARMы.
Кто-то может поделиться полезными ссылками, вроде каких-нибудь уроков, курсов в сети. Возможно есть проекты в свободном доступе, где прерывания тоже реализовывались на асме и работали с сишным кодом. Тоже будет полезно.
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 17:31
Рейтинг@Mail.ru


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