Перейти к содержанию
    

FreeRTOS + STM32

Привет ВСЕМ!

 

Кто нить ставил FreeRTOS на STM32(F103 у меня), стоит ли вообще с ней связываться? Поделитесь опытом в выборе ОС. Мне нужно чтобы с поддержкой IAR была. FreeRTOS скачал, доков только по ней пока не нашел, есть «демки» и мануал урезанный выложили на сайте. Вот:

 

FreeRTOS eBook Generic Cortex M3 Edition: "Using the FreeRTOS Real Time Kernel - a Practical Guide".

 

http://www.freertos.org/Documentation/Free...n-and-book.html

 

ОС нужна для широкого круга задач.

 

 

Спасибо!

Изменено пользователем Danis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучшая OS - самодельная.

Делаете переключатель задач (Или выдираете его хоть из той же FreeRTOS). Добавляете необходимое по мере надобности.

Добавлю от себя - в 95% случаях добавлять к переключателю задач ничего не нужно.

(Естетственно, способность задачи отдавать управление следущей по списку - обязательна).

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2

У меня несколько проектов на STM32 c FREERTOS, с IAR нет никаких проблем даже плагин есть что бы можно было отлаживать в дебагере IAR. ОС проверенная временем, у нее конечно не очень большой функционал, но его вполне достаточно. Имена API кривые но это тоже поправимо. На сайте есть вся инфа с примерами. Еще плюс что ее довольно легко отлаживать так как для этого заложено много всяких фич.

 

Лучшая OS - самодельная.

Лучший микроконтроллер самодельный!!!! почему вы его не засовываете а какой нибудь самодельный ASIC ? походу надо еще и самодельный компилятор сделать чтобы было все пучком.

 

Добавлю от себя - в 95% случаях добавлять к переключателю задач ничего не нужно.

 

Ну да, а синхронизация между задачами ? а разруливание доступа к ресурсам ?

 

Делаете переключатель задач (Или выдираете его хоть из той же FreeRTOS). Добавляете необходимое по мере надобности.

 

Также само ставите FREERTOS и отключаете все не нужное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ставил и работал на AVR и недели 2 назад поставил на STM32F101. Переделал скрипт линкера и инициализацию. Если у Вас "103" то все должно из примера сработать без проблем. Мне нравится. Знакомиться с ней приходится по примерам и описаниям функций, которые приведены на их сайте. В принципе, этого достаточно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По-моему, STM-щики сами предлагают готовый порт FreeRTOS с дополнительными библиотеками. Если не они, то производители китов.

Коллега недавно разбирался, склонился в пользу STM относительно NXP именно по этой причине (ну и по другим тоже)

 

Или на FreeRTOS.org примеры под разные киты...

Вот под ИАР и как раз под F103

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

To MALLOY

Имена API кривые но это тоже поправимо.
Как и ненужный функционал для человека, который спрашивает совета по ОС. Ибо человек, который в состоянии этот функционал использовать совета про ОС не спрашивает. Это раз.

 

Два. Взаимодействие между процессами и доступу к ресурсам осуществляется РОВНО ОДНОЙ АССЕМБЛЕРНОЙ АТОМАРНОЙ операцией SWAP @R1, R2 (запись команды условная - смысл ее понятен из написания). Все. Чего тут городить? Определил ячейку памяти какую-нибудь и разделяй ей ресурсы как хочешь.

 

Микропроцессор, конечно же, лучше свой. Ибо ЗАТОЧЕННОЕ под задачу ВСЕГДА (закон сохранения Ломоносова-Лавуазье) ЛУЧШЕ. Но - дороже. СВОЯ же ОС, по сравнению с чужой - НЕ ДОРОЖЕ. А ДЕШЕВЛЕ.

 

К слову, вот мой переключатель задач состоит из ровно 40 сишных строк (операторов, конечно, больше). Все.

(Не считая ассемблерной вставки сохранения-восстановления регистров).

 

Меньше строк, меньше багов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можете высказаться по поводу других OS. scmRTOS? ...

Что взять, как наиболее простое? Может быть, именно, как пример для создания своей.

Сам думаю о FreeRTOS, потому как часто звучит. Но пока конкретно не приступал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня несколько проектов на STM32 c FREERTOS, с IAR нет никаких проблем даже плагин есть что бы можно было отлаживать в дебагере IAR.

 

Интересно, можно ссылочку на плагин, попробую поставлю. Спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
Два. Взаимодействие между процессами и доступу к ресурсам осуществляется РОВНО ОДНОЙ АССЕМБЛЕРНОЙ АТОМАРНОЙ операцией SWAP @R1, R2

А как же периферия ? Прерывания ? Просто одно дело лампочками мигать а другое дело когда работает TCP стек или USB.

 

 

Но - дороже. СВОЯ же ОС, по сравнению с чужой - НЕ ДОРОЖЕ. А ДЕШЕВЛЕ.

 

Ы... обоснуйте

 

И в конце концов чтобы написать свою ОС, нужно немало потратить времени, или иметь большой опыт работы с другими разными ОС что бы сократить время на написание своей, а если при этом изучение другой ОС вызывает затруднение то тут лучше еще набраться опыта прежде чем писать свою ОС. Да и тестирование ОС занимает много времени, так что как не крути свое будет по нынешним временам гораздо дороже. В любом случае дешевле напильником подогнать что-то готовое чем городить что то свое. Собственно большинство так и делает.

 

Ссылка на плагин регистрируетесь и качаете, дальше в мануале написано как устанавливать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ибо человек, который в состоянии этот функционал использовать совета про ОС не спрашивает. Это раз.

А зачем собственно форум то нужен, если все можно самому сделать. и "винда" наверное тогда не нужна и все остальное....

 

 

регистрируетесь и качаете, дальше в мануале написано как устанавливать

 

MALLOY спасибо Вам!!!

Изменено пользователем Danis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как же периферия ?

Если умеешь разделять ресурсы - все остальное - вообще никаких проблем.

У меня нет TCP, но есть USB (CDC и mass storage). Заодно запись воспроизведение звука, touchscreen, куча всякой разной памяти, клавиатура, манипулятор Морзе, радиоканал с кучей выводов, RS232.

 

Все работает параллельно и ОДНОВРЕМЕННО. Именно все это. Всегда идет запись и воспроизведение звука, отдается в USB и RS232, заодно параллельно записывается на SD card (типа крутейший лог для радиостанции).

 

Использую пять прерываний. 8 кГц от таймера для звука, 3.9 мс от RTC для переключателя задач, и одно для работы с Rotary Encoder (волкодер вроде как по нашему), UART, USB.

 

Никаких затруднений в компоновке процедур и ресурсов не испытываю. Пишу прямо. Без затей. Единственное правило - если задаче нечего делать - она должна отдавать управление. Иначе тормоза (72 Мгц проц). А графика насыщенная - сглаживание не только шрифтов но и картинок всяких.

 

Я пробовал думать как применить FreeRTOS не трогая ничего. И не придумал. А этот вариант (свой) легко перенес с атмеловского ARM9 на филипс ARM7. Причем поменял только одну команду. Джампа с сохранением LR в ARM7 не оказалось. И все.

 

Да, регистры у меня сохраняются не так оптимально, как могли бы. Сишную часть наверняка можно подсократить (не умею я на Си программировать). Но тем не менее написание этого заняло у малоподготовленного меня не больше 3 дней. Это реальная цифра. Из меня программист очень плохой (Именно поэтому разобраться с текстом FreeRTOS для меня оказалось трудной задачей - никак учебника по Сям не сыщу бумажного, а монитор у меня 15 дюймовый).

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
не умею я на Си программировать

 

С этого надо было начинать, но начинать никогда не поздно.

 

Джампа с сохранением LR в ARM7 не оказалось.

 

для этого в ARM7 есть 2 инструкции это BL и BLX. По ходу вам еще и ассемблер повторить надо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...