|
Как пишут под арм? Или с чего начать?, До этого всё были мелочи под AVR |
|
|
|
May 1 2012, 13:47
|
Частый гость
 
Группа: Участник
Сообщений: 195
Регистрация: 16-02-12
Пользователь №: 70 299

|
Цитата Как пишут под арм? Или с чего начать?, До этого всё были мелочи под AVR абсолютно так же, тем более если писать под GCC. Только придется подключить стандартные либы от STM32, с ними работа с периферией ненамного сложнее чем на АВР без либ. Для параллельности можно использовать Protothreads - абсолютно кроссплатформенная штучка, очень легкая
Сообщение отредактировал zöner - May 1 2012, 13:49
|
|
|
|
|
May 1 2012, 15:41
|
Частый гость
 
Группа: Участник
Сообщений: 195
Регистрация: 16-02-12
Пользователь №: 70 299

|
Цитата Ни один еще проект с арм-ами пока не делал без freertos сколько памяти съедает сама РТОС ?
|
|
|
|
|
May 2 2012, 01:43
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (Alexey Belyaev @ May 1 2012, 20:24)  Всем привет! Заранее спасибо! Добрый день! Я лично проходил все это тернистым путем. Моими учителями были уважаемые участники данного форума, других интернет-сообществ, различные FAQ, UM и т.д. и т.п. Но если быть более точным, то начинал с ARM GCC (WinARM) в 2008 г. на LPC2468. Затем на год все забросил. Снова вернулся с тем же компилятором. Потом снова бросил. Опять вернулся) В начале 2012 года все новогодние праздники угробил на серьезный разбор как инструмента (компилятора, линкера, скриптов), так и самого МК. Тут использовался и Кейл, и GCC. Удалось написать свой загрузчик (проект забросил, не до него сейчас), который может грузить hex (именно этот формат) как с сети, так с SD-карты, так и по последовательному каналу. Сгородил что-то типа маленького UDP-стека. Кривого и убогого. Понял, что все это никому не нужно, в т.ч. и мне))) Проще, а главное - правильнее, взять готовое. Но, эти разборы дали мне очень неплохой опыт в различных направления (сеть, ядро ARM7, адресное пространство, MAC, PHY и т.д.). Сейчас плотно мучаю ARM9. Вот такой запутанный путь. Поэтому, извините, я Вам дать совет, как правильнее идти, не могу Сам до сих пор плохо понимаю, как это оно - правильно идти)))
--------------------
Выбор.
|
|
|
|
|
May 2 2012, 03:12
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(kan35 @ May 1 2012, 20:21)  Ни один еще проект с арм-ами пока не делал без freertos, везде она облегчает жизнь. Очень советую применять ее. А вот интересно - вопрос любителям freertos - сколько она производительности проца съедает? Она пытается вытеснять задачу по каждому прерыванию или только по сис. таймеру? Что если в системе есть высокочастотные прерывания? На сколько тактов увеличивается время работы ISR-ов? По своему опыту использования uCOS знаю, что она (в недоработанном своем виде  пытается вытеснить задачу по любому прерыванию и та же задача, но запущенная под ней, расходует примерно на 10% больше проиводительности, чем если бы была запущена без ОС.
|
|
|
|
|
May 2 2012, 04:30
|
Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687

|
Цитата(jcxz @ May 2 2012, 07:12)  А вот интересно - вопрос любителям freertos - сколько она производительности проца съедает? Она пытается вытеснять задачу по каждому прерыванию или только по сис. таймеру? Что если в системе есть высокочастотные прерывания? На сколько тактов увеличивается время работы ISR-ов? По своему опыту использования uCOS знаю, что она (в недоработанном своем виде  пытается вытеснить задачу по любому прерыванию и та же задача, но запущенная под ней, расходует примерно на 10% больше проиводительности, чем если бы была запущена без ОС. Все сильно зависит от архитектуры процессора, порта ОС на эту архитектуру и, конечно, правильности применения данной ОС. Насчет uCOS не согласен. Она будет пытаться перепланировать задачи при выходе из прерывания ТОЛЬКО в том случае, если в прерывании была вызвана функция C_ISR_ENTER(). Если необходимо 1000 раз выполнить прерывание без перепланирования и только на 1001-й передать управление другой задаче, так и вызовите C_ISR_ENTER() только на 1001 раз. Тогда и оверхеда не получите. С Cortex'ами, например, еще проще. Там даже не надо системе говорить, что началось прерывание. В любой ПРАВИЛЬНО портированной ОС перепланировка будет вызвана при выходе из прерывания ТОЛЬКО в случае активации в этом прерывании каких-либо механизмов межпроцессного взаимодействия, таких как взведение семафоров, флагов, передача сообщений и т.п. Так что при правильном использовании ОС оверхед минимален.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|