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

 
 
> 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 12 2013, 18:47
Сообщение #2


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

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



копмилятор gcc-arm-none-eabi-4_6-2012q2

*************************************************
GNU Tools for ARM Embedded Processors
- June 2012
*************************************************

This release includes the following items:
* Bare metal EABI pre-built binaries for running on a Windows host
* Bare metal EABI pre-built binaries for running on a Linux host
* Source code package (together with build scripts and instructions to setup
build environment), composed of:
* gcc : ARM/embedded-4_6-branch revision 188521
http://gcc.gnu.org/svn/gcc/branches/ARM/embedded-4_6-branch/

* binutils : 2.21 with mainline backports
git://sourceware.org/git/binutils.git

* newlib : 1.19 with mainline backports
ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz

* gdb : 7.3.1 with mainline backports, without target sim support
git://sourceware.org/git/gdb.git

* cloog-ppl 0.15.11 :
ftp://gcc.gnu.org/pub/gcc/infrastructure/...-0.15.11.tar.gz

* expat 2.0.1 :
http://space.dl.sourceforge.net/project/ex...at-2.0.1.tar.gz

* gmp 4.3.2 : ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2

* libelf 0.8.13 : http://www.mr511.de/software/libelf-0.8.13.tar.gz

* libiconv 1.11.1 :
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.1.tar.gz

* mpc 0.8.1 : ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz

* mpfr 2.4.2 : ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2

* ppl 0.11 : ftp://gcc.gnu.org/pub/gcc/infrastructure/ppl-0.11.tar.gz

* zlib 1.2.5 with makefile patch :
http://sourceforge.net/projects/libpng/fil...ar.bz2/download

* ncurses 5.9 :
http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz

а что за сборка от klen-а?

относительно версии оси... она была 4.0 какой именно ее вариант сказать не могу - я просто на ее место переписал из новой ссылки..

может все дело в .ld файле? он из примера для евентфлаг

и да зеленый тоже моргает но с ним и моргает оранжевый... может в тестовой задаче test_context(0x87654321); у меня что то другое?

//
typedef OS::process<OS::pr0, 300> TProc1;
typedef OS::process<OS::pr1, 300> TProc2;
typedef OS::process<OS::pr2, 300> TProc3;
typedef OS::process<OS::pr3, 300> TProc4;

text data bss dec hex filename
2576 0 1944 4520 11a8 ./exe/5-FPU.elf
Errors: none

а при таком стеке что с памятью?

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

в общем с новым мейк файлом перестало собираться, буду разбираться что не так

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

# compile options
OPTIMIZE = -O1(s)

Сообщение отредактировал сарматъ - Aug 13 2013, 05:56
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 13 2013, 15:02
Сообщение #3


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

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



Творится что-то невероятноеsm.gif
Давайте сделаем чистый эксперимент, по шагам. Я проделаю, опишу шаги, а вы повторите. Итак...
  • Идём на https://launchpad.net/gcc-arm-embedded, качаем компилятор. Я скачал gcc-arm-none-eabi-4_7-2013q2-20130614-linux.tar.bz2.
  • Устанавливаем его, убеждаемся, что он доступен:
    Код
    $ arm-none-eabi-gcc --version
    arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.7.4 20130613 (release) [ARM/embedded-4_7-branch revision 200083]
    Copyright (C) 2012 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
  • Создаём папку test, заходим в неё.
  • Качаем примеры:
    Код
    svn checkout http://svn.code.sf.net/p/scmrtos/code/trunk/Samples/CortexM4F/GCC/STM32F4XX STM32F4XX
  • заходим в папку STM32F4XX;
  • запускаем switch.bat (под линуксом - switch.sh)
    Всё, теперь у нас есть самые свежие примеры с самой свежей осью.
  • Теперь компилируем пример №5. Заходим в папку 5-FPU и командуем make.
  • И наконец, заливаем пример в плату. Я для этого набираю make program, но это не суть.
    Моргает зелёный светодиод.
  • Меняем стек процесса TProc3 на 1000, компилируем, заливаем. Моргает зелёный светодиод! Красный не подаёт признаков жизни.


--------------------
Если бы я знал, что такое электричество...
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
- - сарматъ   сейчас установил как раз этот тулчейн, устанавлива...   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
- - сарматъ   а если подобные конструкции будут в паралельных за...   Aug 29 2013, 06:12
|- - AHTOXA   Цитата(сарматъ @ Aug 29 2013, 12:12) а ес...   Aug 29 2013, 11:21
- - сарматъ   #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 - 07:32
Рейтинг@Mail.ru


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