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

Macslim

Участник
  • Постов

    12
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Посетители профиля

474 просмотра профиля
  1. Это понятно. Но как в таком случае менять прошивку если нет доступа до устройства (например под водой или под землей)?
  2. Большое спасибо за ссылку! Ну собственно, сейчас так и есть, "прошивка" не знает о существовании "загрузчика". По поводу почему программа разделена на "загрузчик" и "прошивку"? Это сделано из-за того что устройство меняет функционал, в зависимости от "прошивки". То есть, через протокол можно менять "прошивку". Например устройство с 4 реле может работать как 4 канала реле, или как два канала управления моторами. То есть аппаратная часть не меняется, а вот логика работы устройства за счет замены "прошивки" меняется кардинально.
  3. То есть сделать таблицу с нужными указателями на нужные функции? Хм.. мне нравится. Спасибо!
  4. Ну если более детально то выглядит приблизительно так: "Загрузчик" располагается с адреса 0x8000000 "Прошивка" с адреса 0x8008000 Разработка ведется в Keil. Вызвать метод по указанному адресу у меня проблем не вызывает. Проблема в том каким методом, при изменении в общих процедурах и функциях, менять указатели на процедуры и функции. Я понял что Вы предлагаете вычитывать это из ELF файлов, то есть написать некую внешнную программу которая будет вызываться по окончанию компиляции "загрузчика", и формировать некий файл описания на основе ELF файла, для последующего использования в "Прошивке"? Я правильно понимаю?
  5. Вызов функций и процедур

    Возник вопрос оптимизации размера программы. Имеется устройство, ПО которого состоит из двух частей: 1. Программа "загрузчик", которая содержит процедуры функции: - инициализация периферии и работу с ней. - работа с протоколом - шифрования/расшифровка данных. - логика работы "загрузчика" 2. Программа "прошивка", которая содержит процедуры функции: - инициализация периферии и работу с ней. - работа с протоколом - шифрования/расшифровка данных. - логика работы "прошивки" - данные для работы "прошивки" Работа программы строится следующим образом, после старта контроллер запускает "загрузчик", который в свою очередь проверяет наличие прошивки, ее целостность и подпись. В случае прохождения проверки, производится старт "прошивки" Встал вопрос оптимизации программы, невооруженным взглядом видно, что "загрузчик" и "прошивка" содержат одинаковые части кода (отмечено жирным). В идеале, было бы здорово, чтобы структура выродилась в следующее: 1. Программа "загрузчик", которая содержит процедуры функции: - инициализация периферии и работу с ней. - работа с протоколом - шифрования/расшифровка данных. - логика работы "загрузчика" 2. Программа "прошивка", которая содержит процедуры функции: - логика работы "прошивки" - данные для работы "прошивки" Но возникает вопрос, как вызывать процедуры и функции из разных программ? И как это лучше сделать? "загрузчик" и "прошивка" пишутся отдельно и выглядят как разные программы, только вот сборка осуществляется в разные участки памяти микроконтроллера. Не подскажите что почитать или где можно посмотреть об этом?
  6. Ну в том то и дело что гостиницу в Чехии испортили подключившись к внутренней сети через Wi-Fi, далее обнаружив шлюзы в течении некоторого времени слушали шину, затем скопировали конфигурацию, потом в удобный день просто перешили устройства и поставили пароль. Конечно можно их недостаток в том что они включили шлюзы в обычную сеть. С другой стороны если бы шина была бы закрыта, то без ключа шифрования перешить шину проблематично. На счет UART ориентированости, думаю нет. Просто если делать TCP то получится что сеть становится централизованной, а BUS 77 это все же шина. UDP практически не теряет пакетов в проводных сетях, а вот на Wi-Fi постоянно. Вот пример работы на ESP8266 video.mp4
  7. Несколько производителей выпустили устройства с этим протоколом, правда этих устройств нет в широкой продаже. Верхний уровень (работа с серверами, облаком, панелями) протокола используется уже лет 6, его откроют позже. На счет шифрования, связано с тем что появились прецеденты когда "обносят" гостиницы на HDL и KNX и требуют выкуп за конфигурацию. Пробовал запустить протокол ESP8266 (Перешил Sonoff) по UDP, работает, правда нужная хорошая Wi-Fi сеть или надежный механизм пере отправки пакетов.
  8. Компания iRidium mobile выложила в открытый доступ свой протокол нижнего уровня для микроконтроллеров типа stm32. Если кому интересно, вот ссылка на Git https://github.com/iRidiumMobileLTD/BUS-77 Судя по исходникам, есть версия порт под AVR, но примеры не выложены.
  9. Согласен, с Вами, но требования такие, дело в том что мы разработали протокол который имеет множество функций и из-за этого такие требования. Я был бы очень рад, если бы требования к МК были бы ниже. Но пока протокол и полезная нагрузка требуют достаточного количества памяти. Возможно в будущем удастся оптимизировать, под stm32f042.
  10. Прошивка и загрузчик уже написаны и оттестированы, во время разработки программы было выяснено какие требования нужны. Спасибо за совет.
  11. Корпус можно и готовый. Питание внешнее. Нужно именно 20 кб ОЗУ и 64 кб Flash, так как будет обновление прошивки устройства по CAN протоколу. Если в будущем протокол будет менее требовательным к памяти, то проще заказать новое устройство с МК попроще. e-mail: macslim[]mail.ru
  12. Доброго времени суток! Ищу разработчика для разработки устройства, 4х канальный релейный блок. Нужно выполнить следующие работы: - разработать схему - разработать плату - подобрать компоненты - разработать корпус - сделать прототип - написать инициализирующий слой для периферии (инициализация CAN, входов и выходов. Прошивку писать не надо), среда разработки Keil Требования к МК. - stm32хх - ОЗУ не менее 20 кб - Flash не менее 64 кб - Наличие CAN интерфейса - Крайне желательно наличие EEPROM не менее 256 байт Требования к готовому устройству. - CAN интерфейс - 4 реле 10А 250В. Нагрузка может быть моторы, лампы, домашние приборы. Крайне важно чтобы реле не "залипали". - 1 светодиод для индикации состояния прибора - 1 кнопка, будет использоваться для перевода состояния устройства или сброса устройства. - Питание устройства от 24 вольт - Готовое устройство на DIN рейку - Клеммы с болтовым зажимом Для связи: телергамм @macslim
×
×
  • Создать...