К сожалению, не нашёл соответствующего места где разместить тему кроме как здесь. Поскольку разработку веду на FPGA - разместил всё же здесь. Если ошибся - модераторы перенесите в более подходящий раздел.
Товарищи, созрел вопрос - создание инструментального аппаратного загрузчика на FPGA. Суть его проста - часть системы на кристалле, обеспечивающая начальную инициализацию памяти для дальнейшего функционирования внешнего блока, например, какого-либо SOFT-процессора. Т.е. после отработки - он просто отключается от всех шин.
На данный момент разработал загрузчик на базе протокола Intel Hex с небольшими изменениями.
Изменения следующие - разбил одну IntelHex запись на две части - заголовок и данные и после каждого влепил свою контрольную сумму (XOR, как в оригинальном Intel HEX), обозвав это всё пакетом.
Организовал сие за следующим: длина записи не фиксированной длины (может варьироваться от 0 до 255) и при неправильной передаче этого поля - контроллер может просто зависнуть. Т.е. проверка контрольной суммы после заголовка - служит некоторой защитой от этого. Загрузчик сейчас работает вкупе с UART (принимает данные с UART побайтно), но цель проектирования была, в первую очередь, универсальность. Т.е. возможность работы с устройствами сопрягающиеся, возможно, с менее надёжными каналами.
Вообщем, такие вот противоречивые требования, ибо проект академический.
Как по вашему - стоит ли игра с разработкой "нового" протокола свеч или, может быть, посоветуете другие проектные решения протокола для подобной задачи.
|