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

 
 
> Cortex-M4(F) порт под GCC залит в репозиторий.
AHTOXA
сообщение Dec 3 2012, 18:03
Сообщение #1


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Всем привет!

Собственно, новость указана в темеsm.gif
Приглашаю к тестированию.
На данный момент я протестировал его на паре тестовых проектов, всё работает нормально. Но глюки конечно возможны.

Что касаемо скорости. Тестировал на stm32f4discovery, проц STM32F407 Rev A (То есть, не работает ART prefetch), частота 168 МГц.
Итак.
  • Если два процесса не использовали FPU, то передача управления осуществляется за 900ns.
  • Если один из двух процессов использовал FPU, то передача управления осуществляется за 1.1us.
  • Если оба процесса использовали FPU, то передача управления осуществляется за 1.34us.

Красивая картинка:
Прикрепленное изображение

К порту залиты примеры для STM32F4xx. Кроме стандартных четырёх примеров добавлен пятый - "5-FPU".
Он тестирует неизменность контекстов задач при выполнении действий с плавающей точкой.

Да, кстати. Этот порт подходит без изменений для M4F, M4 и M3. Так что, скорее всего, в дальнейшем развиваться будет именно он.


Забыл написать.
Краткая инструкция по скачиванию.
  • Забираемся в папку, в которую мы хотим скачать примеры.
  • Даём команду
    svn co https://scmrtos.svn.sourceforge.net/svnroot...F/GCC/STM32F4XX STM32F4XX
  • Появляется папка STM32F4XX
  • Заходим в неё, даём команду switch.bat (в линуксе - sh switch.sh)
  • Всё.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
сарматъ
сообщение Aug 29 2013, 06:12
Сообщение #2


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

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



а если подобные конструкции будут в паралельных задачах они друг друга путать не будут?


и все же полностью без запрета прерываний не получается,
Цитата(AHTOXA @ Aug 29 2013, 01:11) *
В Cortex-M4, если инструкция запрета прерываний прошла, то прерывание не возникнет.

где об этом можно прочитать? у меня макетка неделю работала потом повисла - ищу все потенциальные места где могло это произойти

Сообщение отредактировал сарматъ - Aug 29 2013, 06:36
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 29 2013, 11:21
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(сарматъ @ Aug 29 2013, 12:12) *
а если подобные конструкции будут в паралельных задачах они друг друга путать не будут?

Параллельные задачи - это же просто метафора. Реально в каждый момент времени выполняется одна задача. Любая другая задача по отношению к данной - это как прерывание. Короче, всё будет работать как надоsm.gif
Цитата(сарматъ @ Aug 29 2013, 12:12) *
где об этом можно прочитать?

Вот тут. Более развёрнутое объяснение от Joseph Yiu (отсюда) :
Цитата
On some processors, the disable interrupt function might take sometime to take effect. This is because the masking is done via control register accesses through the bus. (there could be wait state on the bus and the write operation could be buffered, and the interrupt controller might need a cycle to update to the new setting).

On Cortex-M3, the interrupt mask registers are inside the processors (e.g. FAULTMASK, PRIMASK). As soon as PRIMASK/FAULTMASK/BASEPRI is set, the effect come immediately. So if you set the PRIMASK and the interrupt arrived at the same time, the interrupt will have to wait until the mask is cleared. To do this, the interrupt mask registers are accessible by CPS, MSR and MRS instructions only

Короче, виснет не из-за этого.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AHTOXA   Cortex-M4(F) порт под GCC залит в репозиторий.   Dec 3 2012, 18:03
- - Pat   Антон, Спасибо огромное.   Dec 3 2012, 18:25
- - ReAl   Цитата(AHTOXA @ Dec 3 2012, 20:03) Собств...   Dec 3 2012, 18:46
- - spf   Схемы доступа претерпели изменения, в текущий моме...   Dec 25 2012, 08:28
|- - AHTOXA   Добавлю сюда, пожалуй. Вот что я раскопал по повод...   Dec 26 2012, 14:44
|- - mdmitry   Цитата(AHTOXA @ Dec 26 2012, 17:44) Добав...   Dec 27 2012, 11:42
|- - AHTOXA   Цитата(mdmitry @ Dec 27 2012, 17:42) Вопр...   Dec 27 2012, 15:19
- - сарматъ   добрый день, а тестовые задачки не делали, чтобы у...   Apr 26 2013, 21:41
|- - AHTOXA   Конечно делали Пример 5-FPU как раз этим и занимае...   Apr 27 2013, 05:38
|- - сарматъ   Цитата(AHTOXA @ Apr 27 2013, 08:38) Конеч...   Apr 27 2013, 06:31
|- - AHTOXA   Цитата(сарматъ @ Apr 27 2013, 12:31) я не...   Apr 27 2013, 08:33
|- - сарматъ   Цитата(AHTOXA @ Apr 27 2013, 11:33) Там с...   Apr 27 2013, 09:52
|- - сарматъ   Цитата(AHTOXA @ Apr 27 2013, 11:33) Там с...   Aug 11 2013, 18:25
|- - AHTOXA   Может быть. Хотя я довольно интенсивно использую п...   Aug 12 2013, 08:24
|- - сарматъ   Цитата(AHTOXA @ Aug 12 2013, 11:24) Может...   Aug 12 2013, 08:53
|- - AHTOXA   Увеличивать стек конкретно этой задачи нет смысла,...   Aug 12 2013, 10:54
|- - сарматъ   Цитата(AHTOXA @ Aug 12 2013, 13:54) Увели...   Aug 12 2013, 11:41
|- - AHTOXA   Я имел в виду, что не смогу добраться до своих сер...   Aug 12 2013, 14:54
|- - сарматъ   версия os 4.0 динамически память вообще не выделя...   Aug 12 2013, 15:03
|- - AHTOXA   Вот тут: ссылка. Там можно нажать на "Downloa...   Aug 12 2013, 15:54
- - сарматъ   вот распределение памяти в чистой вашей задаче ...   Aug 12 2013, 17:26
|- - AHTOXA   Что с осью, у вас была свежая версия? У меня с так...   Aug 12 2013, 17:58
- - сарматъ   копмилятор gcc-arm-none-eabi-4_6-2012q2 ********...   Aug 12 2013, 18:47
|- - AHTOXA   Творится что-то невероятное Давайте сделаем чистый...   Aug 13 2013, 15:02
- - сарматъ   сейчас установил как раз этот тулчейн, устанавлива...   Aug 13 2013, 17:03
- - сарматъ   результат сборки со стеком 300 text data ...   Aug 13 2013, 19:22
|- - AHTOXA   Уф-ф Я думаю, что причина всё-таки в том, что в за...   Aug 14 2013, 05:14
- - IgorKossak   А ещё, на мой взгляд, лучше - создать отдельную те...   Aug 14 2013, 07:39
- - сарматъ   а как грамотно подключить в .ld использование 16к ...   Aug 14 2013, 08:02
- - AHTOXA   Цитата(IgorKossak @ Aug 14 2013, 13:39) А...   Aug 15 2013, 08:16
|- - сарматъ   Цитата(AHTOXA @ Aug 15 2013, 11:16) и зат...   Aug 15 2013, 09:09
|- - AHTOXA   Цитата(сарматъ @ Aug 15 2013, 15:09) в ве...   Aug 16 2013, 09:58
|- - сарматъ   Цитата(AHTOXA @ Aug 16 2013, 12:58) Но. В...   Aug 16 2013, 10:16
|- - AHTOXA   Цитата(сарматъ @ Aug 16 2013, 16:16) они ...   Aug 16 2013, 14:43
- - сарматъ   короче сломал себе голову и сделал проще, вот так ...   Aug 16 2013, 18:37
|- - AHTOXA   Цитата(сарматъ @ Aug 17 2013, 00:37) ну и...   Aug 17 2013, 20:53
|- - сарматъ   Цитата(AHTOXA @ Aug 17 2013, 23:53) А зач...   Aug 18 2013, 09:05
|- - AHTOXA   Компилятор ставит дефайн __SOFTFP__ в двух случаях...   Aug 18 2013, 12:56
- - сарматъ   а как кстати определить адрес функции во флеше?   Aug 18 2013, 14:40
|- - Сергей Борщ   Что вы подразумеваете под "определить"? ...   Aug 18 2013, 15:40
- - сарматъ   я имею ввиду написание загрузчика-биоса отдельно о...   Aug 18 2013, 16:17
|- - Сергей Борщ   QUOTE (сарматъ @ Aug 18 2013, 18:17) я им...   Aug 18 2013, 16:26
- - сарматъ   узнать, т.е. загрузчик-биос загружает из внешней п...   Aug 18 2013, 16:31
|- - Сергей Борщ   QUOTE (сарматъ @ Aug 18 2013, 18:31) пото...   Aug 19 2013, 13:24
- - сарматъ   восстановил задачку, все работает очень приятное ...   Aug 19 2013, 12:07
- - сарматъ   еще раз спасибо, буду осмысливать   Aug 19 2013, 13:47
- - arm-user   Добрый день. Пользуюсь SCM под LPC17xx продолжите...   Aug 27 2013, 07:21
|- - Сергей Борщ   QUOTE (arm-user @ Aug 27 2013, 09:21...   Aug 27 2013, 09:54
|- - arm-user   Цитата(Сергей Борщ @ Aug 27 2013, 13:54) ...   Aug 27 2013, 17:16
- - сарматъ   добрый день, подскажите а ТMutex.lock() запрещает ...   Aug 28 2013, 07:55
|- - Сергей Борщ   QUOTE (сарматъ @ Aug 28 2013, 09:55) подс...   Aug 28 2013, 09:22
- - сарматъ   а вот эта функция static __INLINE void __disable_i...   Aug 28 2013, 10:37
|- - AHTOXA   Да, запретит. Но удобнее для этого пользоваться TC...   Aug 28 2013, 11:01
- - сарматъ   спасибо, сейчас почитаю что это вот что нашел htt...   Aug 28 2013, 11:22
|- - mdmitry   А не проще ли почитать документацию на scmRTOS отс...   Aug 28 2013, 11:55
- - сарматъ   наверное проще и этот файл у меня открыт, вот толь...   Aug 28 2013, 12:01
|- - mdmitry   Цитата(сарматъ @ Aug 28 2013, 16:01) наве...   Aug 28 2013, 12:15
- - сарматъ   мдмитрий и опять вы правы антоха, снова я уперся...   Aug 28 2013, 12:28
|- - AHTOXA   Цитата(сарматъ @ Aug 28 2013, 18:28) а в ...   Aug 28 2013, 14:33
|- - сарматъ   аааааа.... вот как раз по поводу этого я ссылку вы...   Aug 28 2013, 15:13
|- - AHTOXA   Ссылки про ARM7TDMI, это не то. У Кортексов всё эт...   Aug 28 2013, 16:30
- - сарматъ   дааа.... пока все это далеко от моего понимания, п...   Aug 28 2013, 20:20
|- - AHTOXA   А чего там понимать? Вы читали не про тот контролл...   Aug 28 2013, 22:11
- - сарматъ   #define disable_interrupts() __asm__ __volatile__ ...   Aug 30 2013, 21:50
|- - AHTOXA   Варианты равнозначны. Ось не сломается. Но два раз...   Aug 31 2013, 07:04
- - сарматъ   RE: Cortex-M4(F) порт под GCC залит в репозиторий.   Aug 31 2013, 07:56
- - сарматъ   антоха, я вот нашел что происходит когда во время ...   Sep 1 2013, 17:45
|- - AHTOXA   Прерывание с тем же приоритетом, что и текущее -- ...   Sep 1 2013, 19:39
- - сарматъ   спасибо   Sep 1 2013, 20:31
- - сарматъ   а в порте для см4 обработка прерываний происходит ...   Sep 2 2013, 14:14
|- - AHTOXA   Нет. У нас прерывание системного таймера имеет сам...   Sep 2 2013, 17:13
- - сарматъ   а что более ресурсоемко TEventFlag.wait() или slee...   Sep 3 2013, 09:46
|- - Сергей Борщ   QUOTE (сарматъ @ Sep 3 2013, 11:46) а что...   Sep 3 2013, 11:09
- - сарматъ   отсутствие необходимой квалификации как минимум   Sep 3 2013, 11:38
|- - Сергей Борщ   QUOTE (сарматъ @ Sep 3 2013, 13:38) отсут...   Sep 3 2013, 13:28
- - сарматъ   во первых я не ставил целью кого то рассмешить во...   Sep 3 2013, 14:10
- - сарматъ   измерил время выполнения sleep и wait таким образо...   Sep 4 2013, 08:04
- - AHTOXA   Цитата(сарматъ @ Sep 3 2013, 20:10) реком...   Sep 4 2013, 08:35
- - сарматъ   да у меня ошибочная методика измерения времени, с ...   Sep 4 2013, 08:46
|- - AHTOXA   Цитата(сарматъ @ Sep 4 2013, 14:46) а в в...   Sep 4 2013, 09:50
- - сарматъ   а приоритет этого процесса наивысший? и этот обраб...   Sep 4 2013, 10:02
|- - AHTOXA   Цитата(сарматъ @ Sep 4 2013, 16:02) а при...   Sep 4 2013, 12:43
|- - Сергей Борщ   Вы забыли: а) тег [ code ] б) в начале обработчика...   Sep 4 2013, 12:44
- - сарматъ   спасибо, не помню ставил ли я эту строчку... в дру...   Sep 4 2013, 12:50
- - сарматъ   антоха а в планах не стоит для ф417 контроллера по...   Sep 19 2013, 08:10
|- - AHTOXA   А какая разница с точки зрения порта?   Sep 19 2013, 09:38
- - сарматъ   сейчас вот подумал может действительно никакой, пр...   Sep 19 2013, 09:53


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

 


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


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