|
Cortex-M4(F) порт под GCC залит в репозиторий. |
|
|
|
Dec 3 2012, 18:03
|

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

|
Всем привет! Собственно, новость указана в теме  Приглашаю к тестированию. На данный момент я протестировал его на паре тестовых проектов, всё работает нормально. Но глюки конечно возможны. Что касаемо скорости. Тестировал на stm32f4discovery, проц STM32F407 Rev A (То есть, не работает ART prefetch), частота 168 МГц. Итак. - Если два процесса не использовали FPU, то передача управления осуществляется за 900ns.
- Если один из двух процессов использовал FPU, то передача управления осуществляется за 1.1us.
- Если оба процесса использовали FPU, то передача управления осуществляется за 1.34us.
Красивая картинка:
К порту залиты примеры для STM32F4xx. Кроме стандартных четырёх примеров добавлен пятый - "5-FPU". Он тестирует неизменность контекстов задач при выполнении действий с плавающей точкой. Да, кстати. Этот порт подходит без изменений для M4F, M4 и M3. Так что, скорее всего, в дальнейшем развиваться будет именно он. Забыл написать. Краткая инструкция по скачиванию.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
 |
Ответов
|
Aug 29 2013, 06:12
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463

|
а если подобные конструкции будут в паралельных задачах они друг друга путать не будут? и все же полностью без запрета прерываний не получается, Цитата(AHTOXA @ Aug 29 2013, 01:11)  В Cortex-M4, если инструкция запрета прерываний прошла, то прерывание не возникнет. где об этом можно прочитать? у меня макетка неделю работала потом повисла - ищу все потенциальные места где могло это произойти
Сообщение отредактировал сарматъ - Aug 29 2013, 06:36
|
|
|
|
|
Aug 29 2013, 11:21
|

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

|
Цитата(сарматъ @ Aug 29 2013, 12:12)  а если подобные конструкции будут в паралельных задачах они друг друга путать не будут? Параллельные задачи - это же просто метафора. Реально в каждый момент времени выполняется одна задача. Любая другая задача по отношению к данной - это как прерывание. Короче, всё будет работать как надо  Цитата(сарматъ @ 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 Короче, виснет не из-за этого.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|