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

 
 
> Освоение ARM контроллеров
maxntf
сообщение Mar 29 2016, 14:17
Сообщение #1


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

Группа: Участник
Сообщений: 107
Регистрация: 13-05-09
Пользователь №: 49 008



Появилась необходимость в освоении ARM контроллеров.
Есть проект реализованный на PIC контроллере, который необходимо портировать на ARM. Это связано с тем, что в него нужно доработать реализацию воспроизведения аудио файлов.
Просьба помочь в выборе контроллера и отладочных средств к нему для изучения ARM, с учетом моих задач. Просто не хочется брать первую попавшеюся отладочную плату с установленным в нее контроллером. А выбрать тот набор оборудования и ПО, который поможет мне в изучении ARM и параллельно реализовать все мои задачи.
Основные параметры основываясь на старый проект:
1) Объем памяти программ не меньше 128kB.
2) Объем памяти данных не меньше 4kB. Учитывая что в старом проекте используется внешняя EEPROM для хранения параметров на 64kB, а в новом проекте еще и нужно хранить аудио треки. И насколько я успел поверхностно ознакомится, в ARM можно использовать внешнюю flash память и для памяти данных контроллера и для хранения треков и параметров. Если я прав, то тогда ARM можно брать вообще без внутреннего ОЗУ.
3) Большое количество портов. В старом проекте был PIC на 80 ног.
4) Нужно 17 АЦП для измерения напряжения, остальные GPIO.
5) 2 порта UART.
6) Желательно USB.
7) И самое главное возможность проиграть аудио ролики (не важно в каком формате хоть в “amr”) в аудио тракт GSM модема. Эти ролики будут подготовлены на ПК и записываться в цифровом формате во внешнюю flash (то есть никаких кодеков для записи аудио не нужно).
Есть под ARM готовые библиотеки для воспроизведения аудио файлов?
В качестве среды разработки хочу взять CooCox CoIDE (GCC Compiler) в виду того что она бесплатная. Вроде неплохие отзывы о ней. Кстати кто знает, в ней есть ОС под ARM.
ARM контроллер и отладочный комплект ST или NuVotone. Лучше ST так как на мой взгляд они наиболее популярны, а по второму производителю маловато информации в сети.
Заранее благодарен за любую помощь.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Apr 13 2016, 07:25
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Как можно контролировать стек (не задач в RTOS), который растет себе и растет, пока не налезет на кучу или переменные??
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 13 2016, 07:50
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (ViKo @ Apr 13 2016, 10:25) *
Как можно контролировать стек (не задач в RTOS), который растет себе и растет, пока не налезет на кучу или переменные??

Также, как и "задач в RTOS". Какие проблемы? Те стеки тоже "растут себе и растут"... С контролем НЕ в реальном массштабе времени проблем нет. Но вот именно отсутствие контроля в реальном времени как раз и не позволяет на ходу разруливать ситуации со стеком и следовательно по любому под стек нужно выделять гарантированно достаточное место. Потом уже постфактум по результатам контроля, если надо, думать уменьшить его или нет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 13 2016, 09:05
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(zltigo @ Apr 13 2016, 13:50) *
Также, как и "задач в RTOS". Какие проблемы? Те стеки тоже "растут себе и растут"... С контролем НЕ в реальном массштабе времени проблем нет. Но вот именно отсутствие контроля в реальном времени как раз и не позволяет на ходу разруливать ситуации со стеком и следовательно по любому под стек нужно выделять гарантированно достаточное место. Потом уже постфактум по результатам контроля, если надо, думать уменьшить его или нет.

В принципе - можно и в реальном. И даже под многозадачную ОС.
С MMU конечно вообще проблем нет такое сделать. Но даже с MPU это возможно. Я уже не раз задумывался чтобы внести такую функциональность в свои проекты, всё руки не доходят.
Как:
Вынести все стеки задач в единый сплошной сегмент памяти. Закрыть полностью доступ к этому сегменту через MPU. В ISR PendSV при каждом переключении пользовательского контекста, программировать перекрывающую запись таблицы MPU (более приоритетную чем та запись, которая закрывает доступ ко всему сегменту стека) на новый стек (находящийся внутри общего сегмента стека).
Конечно будут потери памяти на выравнивании, необходимом для MPU. Но сделать вроде можно.
Да - в начале и в конце сегмента стека должны быть небольшие интервалы неиспользуемой памяти.
Конечно, если функция внутри задачи написана так, что выделяет размер массива выходящий за границу сегмента стека, то тогда такая защита может не спасти. Но чаще всего доступ к стеку идёт более-менее последовательно, небольшими шагами.

Цитата(zltigo @ Apr 13 2016, 15:01) *
Если-бы я с какого-то бодуна выделял стеки задачам статически, то, да и эти БЛОКИ памяти я бы ТОЖЕ описал для линкера.

А с какого бодуна Вы выделяете стеки задачам динамически? И зачем такое делать? Задачи создавать/убивать? Это лишнее.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 13 2016, 09:08
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (jcxz @ Apr 13 2016, 12:05) *
А с какого бодуна Вы выделяете стеки задачам динамически? И зачем такое делать? Задачи создавать/убивать? Это лишнее.

Без комментариев, ибо рожденный ползать понять "лишнего" не может sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- maxntf   Освоение ARM контроллеров   Mar 29 2016, 14:17
- - Forger   Цитата(maxntf @ Mar 29 2016, 17:17) Появи...   Mar 29 2016, 15:54
- - agregat   Цитата(maxntf @ Mar 29 2016, 17:17) Появи...   Mar 29 2016, 15:59
|- - Forger   Цитата(agregat @ Mar 29 2016, 18:59) А за...   Mar 29 2016, 16:01
- - ЯadiatoR   Вы путаете назначение ОЗУ и энергонезависимой памя...   Mar 29 2016, 16:07
|- - maxntf   Цитата(ЯadiatoR @ Mar 29 2016, 19:07) Вы ...   Mar 29 2016, 17:44
|- - Forger   Цитата(maxntf @ Mar 29 2016, 20:44) STM32...   Mar 29 2016, 17:49
||- - maxntf   Цитата(Forger @ Mar 29 2016, 20:49) Это ч...   Mar 29 2016, 17:55
||- - Forger   Цитата(maxntf @ Mar 29 2016, 20:55) Не пл...   Mar 29 2016, 18:02
||- - Obam   ЦитатаЦитата(maxntf @ Mar 29 2016, 20:44) * Взять ...   Mar 30 2016, 08:14
||- - maxntf   Цитата(Obam @ Mar 30 2016, 11:14) Характе...   Mar 30 2016, 09:05
||- - AVI-crak   Цитата(maxntf @ Mar 30 2016, 16:05) Понят...   Mar 30 2016, 13:15
|- - scifi   Цитата(maxntf @ Mar 29 2016, 20:44) Допус...   Mar 29 2016, 17:56
|- - mantech   Цитата(maxntf @ Mar 29 2016, 20:44) Возмо...   Mar 29 2016, 18:46
||- - maxntf   Цитата(mantech @ Mar 29 2016, 21:46) Реко...   Mar 29 2016, 18:51
|- - mantech   Цитата(maxntf @ Mar 29 2016, 20:44) Взять...   Mar 29 2016, 18:48
|- - jcxz   Цитата(mantech @ Mar 30 2016, 00:48) Стра...   Mar 30 2016, 04:53
- - Tarbal   Да что вы все такие злые? Ну не знает человек сто...   Mar 29 2016, 17:18
|- - Forger   Цитата(Tarbal @ Mar 29 2016, 20:18) Да чт...   Mar 29 2016, 17:33
- - ЯadiatoR   Печально, что вы гоняясь за бюджетом и другими вещ...   Mar 29 2016, 17:59
|- - maxntf   Цитата(ЯadiatoR @ Mar 29 2016, 20:59) + д...   Mar 29 2016, 18:48
- - maxntf   Во избежание лишних дискуссий буду задавать более ...   Mar 30 2016, 07:33
|- - jcxz   Цитата(maxntf @ Mar 30 2016, 13:33) ROM -...   Mar 30 2016, 07:57
|- - maxntf   Цитата(jcxz @ Mar 30 2016, 10:47) Сомнева...   Mar 30 2016, 08:05
|- - jcxz   Цитата(maxntf @ Mar 30 2016, 14:05) ROM -...   Mar 30 2016, 08:16
|- - ЯadiatoR   Цитата(maxntf @ Mar 30 2016, 11:05) Так я...   Mar 30 2016, 11:18
- - ЯadiatoR   Опять же как я и говорил - нечеткие требования нап...   Mar 30 2016, 08:01
- - ЯadiatoR   Не имея представления об ARM, в частности о процах...   Mar 30 2016, 13:21
- - den1s   по требованиям много каналов АЦП, памяти, USB и Co...   Apr 1 2016, 16:03
|- - jcxz   Цитата(den1s @ Apr 1 2016, 22:03) Отладку...   Apr 1 2016, 18:18
|- - den1s   Цитата(jcxz @ Apr 1 2016, 21:18) Вменяемы...   Apr 1 2016, 19:24
|- - jcxz   Документация вроде нормально к ним находится в ине...   Apr 2 2016, 08:19
|- - den1s   Цитата(jcxz @ Apr 2 2016, 12:19) Документ...   Apr 2 2016, 14:50
|- - jcxz   Цитата(den1s @ Apr 2 2016, 20:50) Возможн...   Apr 2 2016, 17:29
- - maxntf   Продолжаем разбираться. Получил железо, просмотрел...   Apr 4 2016, 12:51
- - ЯadiatoR   Адрес 0x00 не принимает никакого значения boot. Ту...   Apr 4 2016, 14:12
|- - maxntf   Цитата(ЯadiatoR @ Apr 4 2016, 17:12) Адре...   Apr 4 2016, 16:23
- - esaulenka   Нет. Значение SYSCFG определяет, на какую область ...   Apr 4 2016, 19:33
|- - AVI-crak   Цитата(esaulenka @ Apr 5 2016, 02:33) Но ...   Apr 5 2016, 04:17
|- - jcxz   Цитата(esaulenka @ Apr 5 2016, 01:33) Нет...   Apr 5 2016, 08:37
- - x893   Ремапом приходится пользоваться в STM32F0 серии та...   Apr 4 2016, 19:52
- - maxntf   STM32F407VG. Как в программе выполнить reset? В PI...   Apr 5 2016, 09:06
|- - scifi   Цитата(maxntf @ Apr 5 2016, 12:06) STM32F...   Apr 5 2016, 09:29
|- - jcxz   Цитата(maxntf @ Apr 5 2016, 15:06) STM32F...   Apr 5 2016, 09:38
|- - scifi   Цитата(jcxz @ Apr 5 2016, 12:38) Универса...   Apr 5 2016, 10:15
|- - jcxz   Цитата(scifi @ Apr 5 2016, 16:15) А ещё м...   Apr 5 2016, 10:27
- - maxntf   Сейчас разбираюсь с юзерским бутлоадером. Почитал ...   Apr 5 2016, 13:32
|- - scifi   Цитата(maxntf @ Apr 5 2016, 16:32) Только...   Apr 5 2016, 13:45
- - maxntf   Вот два кода, первый бутлоадера, а второй моя прог...   Apr 5 2016, 14:29
|- - scifi   Цитата(maxntf @ Apr 5 2016, 17:29) Вот дв...   Apr 5 2016, 14:41
||- - maxntf   Тогда не верно выразился, нужно так - "Так вс...   Apr 5 2016, 14:55
||- - scifi   Цитата(maxntf @ Apr 5 2016, 17:55) - когд...   Apr 5 2016, 15:10
||- - maxntf   Цитата(scifi @ Apr 5 2016, 18:10) Я отлаж...   Apr 9 2016, 07:36
||- - scifi   Цитата(maxntf @ Apr 9 2016, 10:36) А где ...   Apr 9 2016, 09:13
|- - jcxz   Цитата(maxntf @ Apr 5 2016, 20:29) //здес...   Apr 5 2016, 15:33
|- - maxntf   Цитата(jcxz @ Apr 5 2016, 18:33) Это то к...   Apr 5 2016, 15:58
||- - jcxz   Цитата(maxntf @ Apr 5 2016, 21:58) При ус...   Apr 5 2016, 16:08
||- - maxntf   Цитата(jcxz @ Apr 5 2016, 19:08) Так если...   Apr 5 2016, 16:20
||- - jcxz   Цитата(maxntf @ Apr 5 2016, 22:20) Хотя с...   Apr 5 2016, 16:37
||- - maxntf   Цитата(jcxz @ Apr 5 2016, 19:37) Как Вы с...   Apr 5 2016, 17:26
|- - zltigo   QUOTE (jcxz @ Apr 5 2016, 18:33) Как-то с...   Apr 5 2016, 16:43
|- - jcxz   Цитата(zltigo @ Apr 5 2016, 22:43) 1. #de...   Apr 5 2016, 16:50
|- - zltigo   QUOTE (jcxz @ Apr 5 2016, 19:50) У ТС адр...   Apr 5 2016, 16:56
|- - scifi   Цитата(zltigo @ Apr 5 2016, 19:56) Это см...   Apr 5 2016, 17:35
- - Kabdim   Афаик нужно после смены адреса таблицы прерываний ...   Apr 6 2016, 08:23
- - maxntf   Подключил FreeRTOS, пока практически пустой проект...   Apr 12 2016, 15:09
|- - Сергей Борщ   QUOTE (maxntf @ Apr 12 2016, 17:09) Подск...   Apr 12 2016, 15:36
|- - zltigo   QUOTE (maxntf @ Apr 12 2016, 18:09) Смотр...   Apr 12 2016, 16:13
|- - AVI-crak   Цитата(zltigo @ Apr 12 2016, 23:13) Следу...   Apr 12 2016, 17:14
||- - zltigo   Цитата(AVI-crak @ Apr 12 2016, 20:14...   Apr 12 2016, 18:49
||- - AVI-crak   Цитата(zltigo @ Apr 13 2016, 01:49) Как и...   Apr 12 2016, 21:39
||- - zltigo   QUOTE (AVI-crak @ Apr 13 2016, 00:39...   Apr 12 2016, 21:52
||- - AVI-crak   Цитата(zltigo @ Apr 13 2016, 04:52) Это В...   Apr 13 2016, 00:41
||- - zltigo   QUOTE (AVI-crak @ Apr 13 2016, 03:41...   Apr 13 2016, 05:30
|- - jcxz   Цитата(zltigo @ Apr 12 2016, 22:13) Вообщ...   Apr 13 2016, 06:10
|- - zltigo   QUOTE (jcxz @ Apr 13 2016, 09:10) ЗАЧЕМ??...   Apr 13 2016, 06:27
||- - jcxz   Цитата(zltigo @ Apr 13 2016, 12:27) Чем? ...   Apr 13 2016, 08:43
||- - zltigo   QUOTE (jcxz @ Apr 13 2016, 11:43) Есть за...   Apr 13 2016, 09:01
||- - jcxz   Цитата(zltigo @ Apr 13 2016, 15:01) Вот и...   Apr 13 2016, 09:19
||- - zltigo   QUOTE (jcxz @ Apr 13 2016, 12:19) И не уб...   Apr 13 2016, 09:38
|- - KnightIgor   Цитата(jcxz @ Apr 13 2016, 07:10) PS: Кон...   Apr 13 2016, 09:20
|- - jcxz   Цитата(KnightIgor @ Apr 13 2016, 15:20) Н...   Apr 13 2016, 09:25
||- - MrYuran   Цитата(jcxz @ Apr 13 2016, 12:25) Если ес...   Apr 13 2016, 09:40
|- - zltigo   QUOTE (KnightIgor @ Apr 13 2016, 12:20) С...   Apr 13 2016, 09:41
- - maxntf   Блин сам и напоролся. Смотрел конфиг из чужого про...   Apr 12 2016, 15:37
- - maxntf   Подскажите во время отладки в CoIDE где можно узна...   Apr 13 2016, 13:24


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

 


RSS Текстовая версия Сейчас: 1st August 2025 - 21:13
Рейтинг@Mail.ru


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