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

Нужен программист под ARM STM32

Есть несколько маленьких задачек практически не привязанные к конкретному процессору.

Нужна помощь в составлении ТЗ и программирования.

 

Тестирую на STM32-DISC STM32L152RB6

или на STM32F103RB6

 

Сложность задач примерно на уровне институтской лабы. Присутствует RTOS.

 

Пример задания:

Есть контролер и на нём установлен RTOS

Что нужно сделать самая первая задача написать ТЗ на задачку:

"Метаданные контролера"

Модуль описывающий выводы контролера.

Это таблица со столбцами:

1. Номер ноги МК - описание порта

2. Тип данных - bool, indeger

3. Вход/выход - т.е. можно ли эту ноу читать или писать r,w,rw

4. Индефикатор - символьное сокращение названия

5. Комментарий - произвольный текст(100)

 

В модуле должны быть

1. процедура инициализации портов (чтение таблицы, тактирование портов и настройка)

2. процедура записи в порт

3. процедура чтения из порта

4. записать измененную конфигурацию в FLASH

 

хотелось бы чтобы UART был бы символьным портом чтение/запись, т.е. для каждого порта можно было бы тоже писать и читать так же как и отдельные ноги.

по хранению таблицы - хотел бы чтобы таблица могла из прошивки записываться во FLASH и в память подтягивалась если нет в FLASH бралась из прошивки.

 

 

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


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

Модуль описывающий выводы контролера.

Это таблица со столбцами:

1. Номер ноги МК - описание порта

2. Тип данных - bool, indeger

3. Вход/выход - т.е. можно ли эту ноу читать или писать r,w,rw

4. Индефикатор - символьное сокращение названия

5. Комментарий - произвольный текст(100)

Откройте даташит на CPU - там всё это есть.

 

В модуле должны быть

1. процедура инициализации портов (чтение таблицы, тактирование портов и настройка)

2. процедура записи в порт

3. процедура чтения из порта

4. записать измененную конфигурацию в FLASH

Возьмите библиотеку для работы с GPIO.

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


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

Откройте даташит на CPU - там всё это есть.

 

Возьмите библиотеку для работы с GPIO.

 

Это маленькая задачка - часть другой большей. Видимо не понятно для чего это вообще делается? От сюда и такое предложение.

 

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

Есть желание сделать открытый проект под АРМ по управлению группами контролеров (приложения АСУТП, умный дом и т.д.).

Фишкой проекта должна стать гибкость удаленного управления контролера и локальный обмен данными между контролерами напрямую минуя сервер.

Такие системы есть могу перечислить для примера:

ninjablocks.com

agocontrol.com

ab-log.ru/smart-house/ethernet/megad-328

smartanthill.ikravets.com

Atmel BitCloud

www.mzta.ru (Контар)

все системы прекрасные со своими минусами, где-то железо закрытое, у кого ПО, кто привязан строго к одному МК. Вот и с подвигло сделать свой велосипед.

 

Почему привязываюсь к STM32 или RTOS в прошивке контролера? Нужно с чего-то начать линейка STM32L0 до STM32F4 более сотни моделей в свободной продаже цены от 30руб до 2000р выбор есть. FreeRTOS портирована практически под всё современные МК.

 

Деньги за попытку оплачиваю. )

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

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


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

Деньги за попытку это интересно. А если не секрет, то это сколько?

 

Жду предложения в личку и координаты для уточнения задания, сроков, способов оплаты.

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


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

Есть желание сделать открытый проект под АРМ по управлению группами контролеров (приложения АСУТП, умный дом и т.д.).

Фишкой проекта должна стать гибкость удаленного управления контролера и локальный обмен данными между контролерами напрямую минуя сервер.

 

FreeRTOS портирована практически под всё современные МК.

 

Но во FreeRTOS нет самого главного для вас - "локальный обмен данными между контролерами напрямую"

Советую начинать не с углубления в инициализацию портов, а с более продуманного выбора оси и софта промежуточного уровня.

Ось и продиктует какое семейство микроконтроллеров выбрать. :biggrin:

 

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


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

Советую эти деньги потратить на репетитора по русскому языку.

 

Совет принят. Сори.

 

Но во FreeRTOS нет самого главного для вас - "локальный обмен данными между контролерами напрямую"

Советую начинать не с углубления в инициализацию портов, а с более продуманного выбора оси и софта промежуточного уровня.

Ось и продиктует какое семейство микроконтроллеров выбрать. :biggrin:

 

Например название OS?

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


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

Советую эти деньги потратить на репетитора по русскому языку.

При такой каше в голове репетитор не поможет. Человек , похоже, не понимает, что RTOS на МК и форточки - две большие разницы, и подход должен быть разным. Если его порты напрягают, что же он будет делать, когда до таймеров дойдет.

 

Но во FreeRTOS нет самого главного для вас - "локальный обмен данными между контролерами напрямую"

Советую начинать не с углубления в инициализацию портов, а с более продуманного выбора оси и софта промежуточного уровня.

Ось и продиктует какое семейство микроконтроллеров выбрать. :biggrin:

Да ладно, FreeRTOS зарещает "локальный обмен данными между контролерами напрямую" ? Ось ничего не диктует. Берем UCOS - портов куча, от 8051 до Cortex-M4. И что диктует ось ?

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


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

При такой каше в голове репетитор не поможет. Человек , похоже, не понимает, что RTOS на МК и форточки - две большие разницы, и подход должен быть разным. Если его порты напрягают, что же он будет делать, когда до таймеров дойдет.

 

Да ладно, FreeRTOS зарещает "локальный обмен данными между контролерами напрямую" ? Ось ничего не диктует. Берем UCOS - портов куча, от 8051 до Cortex-M4. И что диктует ось ?

 

Ну хорошо про репетитора вопрос закрыт. Диагноз - не поможет.

 

FRTOS ничего не запрещает по этому другие варианты пока не рассматриваю.

Общение контролеров по шине CAN. Это будет отдельная задача. Очень нравиться идеология SmartAnthill.

Графического интерфейса на контролере не будет, он там не нужен.

Если сложилось впечатление что порты напрягают - это ошибка. Если говорить об общей задаче то "метаданные" нужны для следующего уровня - представления их в СУБД на сервере.

Семейство МК выбрано STM32F другие варианты не рассматриваю.

 

P.S. Действительно общая задача объемная, но распадается на маленькие последовательные кирпичики. Очень нужна помощь потому как закодить всё это одному не реально.

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


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

все системы прекрасные со своими минусами, где-то железо закрытое, у кого ПО, кто привязан строго к одному МК. Вот и с подвигло сделать свой велосипед.

и

Семейство МК выбрано STM32F другие варианты не рассматриваю.

Делаете еще один велосипед "с минусом"? Зачем?

У меня давным-давно работает УД на CAN, но я не делал привязку к аппаратной платформе, а разработал универсальную архитектуру приложения.

Поэтому есть порты и под AVR, и под ARM7 (LPC23xx), и под Cortex-M (LPC17xx, STM32).

Ни в коем случае не нужно думать в терминах "порты ввода-вывода" и "таймеры" - Вам же еще межконтроллерный обмен осмыслить придется.

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


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

Очень нравиться идеология SmartAnthill.

 

Если сложилось впечатление что порты напрягают - это ошибка.

 

SmartAnthill это же просто протокол установки/чтения портов.

Примитивней некуда.

Возьмите FreeMODBUS и получите еще больше функций. Поверх CAN его тоже можно без труда поставить.

Хотя признанный стандарт здесь CANOpen. Есть и открытые проекты под CANOpen (не для FreeRTOS, правда)

 

Но это все очень далеко от понятия "локальный обмен данными между контролерами напрямую"

В этой теме важней всего роутинг(маршрутизация) и реальное время.

 

Не найдете вы для FreeRTOS подходящего middleware.

И вот когда поймете это можем вернуться к вопросу,"что не запрещает FreeRTOS". :biggrin:

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


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

Делаете еще один велосипед "с минусом"? Зачем?

У меня давным-давно работает УД на CAN, но я не делал привязку к аппаратной платформе, а разработал универсальную архитектуру приложения.

Поэтому есть порты и под AVR, и под ARM7 (LPC23xx), и под Cortex-M (LPC17xx, STM32).

Ни в коем случае не нужно думать в терминах "порты ввода-вывода" и "таймеры" - Вам же еще межконтроллерный обмен осмыслить придется.

 

 

У каждой системы есть минусы и плюсы. Нет системы в которой только плюсы. Источник такой "несправедливости" заложен в разной оценке плюсов/минусов субъектом. С минусами других систем вопрос закрыт.

Порты нарисовать для этого нужно только время. Между ARM Cortex-M порт "рисуется" заменой "standard peripheral library". Про порты(перенос между разными МК) вопрос закрыт.

STM32F выбран для отладки первой прошивки.

Задача "метаданные" как-раз и служит для того чтобы отойти от адресов ввода/вывода и перейти к идентификационной логике.

Обмен между контролерами отдельная задача. Там должен быть и протоколы регистрации, маршрутизации и транспортный протокол. Это называется сетевой стек.

 

SmartAnthill это же просто протокол установки/чтения портов.

Примитивней некуда.

Возьмите FreeMODBUS и получите еще больше функций. Поверх CAN его тоже можно без труда поставить.

Хотя признанный стандарт здесь CANOpen. Есть и открытые проекты под CANOpen (не для FreeRTOS, правда)

 

Но это все очень далеко от понятия "локальный обмен данными между контролерами напрямую"

В этой теме важней всего роутинг(маршрутизация) и реальное время.

 

Не найдете вы для FreeRTOS подходящего middleware.

И вот когда поймете это можем вернуться к вопросу,"что не запрещает FreeRTOS". :biggrin:

 

 

Когда говорил что "нравиться идеология SmartAnthill" имел в виду её открытость, простоту идеи и переносимость между разными средами RS485, CAN, Ethernet, 0-modem и т.д.

 

Прямой обмен, между контролерами минуя сервер пример тут http://www.ab-log.ru/smart-house/ethernet/megad-328 прошивка под МК AVRmega328 с исходниками встроенный http сервер, ethernet ENC28J60.

 

В FRTOS есть все, что мне нужно: диспетчер и динамическая куча.

 

Уже раньше задавал вопрос: "Например, название OS?", но он был проигнорирован.

Так какой ответ? Где же она OS с подходящим middleware?

 

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


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

Уже раньше задавал вопрос: "Например, название OS?", но он был проигнорирован.

Так какой ответ? Где же она OS с подходящим middleware?

 

По одной из ваших ссылок и было - Raspberry Pi и Линукс соответсвенно.

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


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

По одной из ваших ссылок и было - Raspberry Pi и Линукс соответсвенно.

 

Вычислительной мощности малинки уже перебор под "простой" контролер, сколько она живет от батарейки?

Лучше взять тогда ардуину с парой шилдов.

 

Кстати за 2600р можно мать взять с интегрированным Celeron874 если электричество много. Пример тут http://www.ulmart.ru/goods/412459

 

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


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

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

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

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

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

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

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

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

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

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