Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: генерация бинарника
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
TigerSHARC
Прблема:
нужно генерировать в приложении на ПК конфигурационный файл в бинарном виде, затем заливать его на ARM(Linux) и читать из него данные, инициализируя соотвесттвующие поля структур (в программе на ARM).

Вопрос: поскольку никогда такого не делал есть сомнения в правильности пути. я хотел делать так: в исходный код в приложении скопипастить те же структуры что и в исходнике для ARM (ато данных слишком много). Пользователь, вводя данные, заполняет поля этих структуры
как то так
, затем приложение записывает все структуры в бинарный файл последовательно начиная с нуля и добавляет CRC вконце.
Приложение под ARM читает бинарник и в том же порядке заполняет структуры данных
примерно так


CODE
fread( pStr, 1, size, pFile );


где pStr - указатель на структуру для заполнения(содержит вне нужные струтктуры как поля)
size - размер данных (размер всех полей всех струткур)
pFile - указатель на сам файл, который получили через fopen

и сравнивает CRC.

мысли верные? задумался сейчас о порядке байт в архитектурах...
esaulenka
Цитата
мысли верные? задумался сейчас о порядке байт в архитектурах...

И о pragma pack (оно же - атрибут __packed на других компиляторах) подумайте.

И о том, что будет, если в ПК и Вашей прошивке окажутся разные версии структур.


У нас в изделиях тоже хранятся развесистые настроечные таблицы в EEPROM. К ним есть доступ как командой по протоколу "прочитай настройку номер 27".
Делали команду прямого доступа к EEPROM и графический конфигуратор для ПК по считанному дампу. Проект быстро загнулся, т.к. строгого выдерживания структуры полей на всех n-цати разновидностях изделий (и версий изделий) не было, и поддерживать это в двух местах - в прошивке и в ПК было некому. Но работает, в принципе...
PoReX
Цитата(esaulenka @ Aug 27 2012, 12:29) *
и поддерживать это в двух местах - в прошивке и в ПК было некому.

Для этого делается один общий h-ник со структурами и никаких проблем.
_Pasha
Цитата(PoReX @ Aug 28 2012, 16:38) *
Для этого делается один общий h-ник со структурами и никаких проблем.

Это в случае, когда конфиг-программа обновляется синхронно с прошивкой. А так - номера функций рулят чаще, особенно, где есть read-only поля, а также поля, вычисляемые на стороне девайса.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.