Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017

Реализация языка описания протоколов обмена

23.07.2017, 10:30. Показов 4709. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет парни.

Я все чаще сталкиваюсь с необходимостью читать/прошивать микросхемы (контроллеры), которые не поддерживаются имеющимися у меня программаторами, а то и вовсе неизвестно, чем поддерживаются. При этом на них есть даташит с полным описанием процесса чтения/записи внутренней памяти.
И вот не дает мне покоя мысль об универсальном программаторе. Основной его функцией должна быть простая перенастройка на любую новую микросхему.
Вот здесь описан программатор, с которым в комплекте идет язык HPL, позволяющий просто и быстро описать протокол программирования микросхем.
Конечно, исходников никаких нет.

Кто-нибудь занимался написанием интерпретатора языка? Я пока вообще не представляю, как это делать.

В качестве железа можно применить все, что угодно, например, FT2232H, модуль PinBoard, STM32, CY68013, да хоть параллельный порт.

То есть архитектура видится такой:
Для каждой микросхемы имеется описание на HPL.
Программа читает этот файл, разбирает его и на каждый шаг составляет карту бит, которая передается на аппаратный интерфейс или читается с интерфейса.

Пример реализации самого файла hpl можно посмотреть в демо-версии оболочки программатора.
http://www.cnc-lab.com/files/or5demo.rar
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.07.2017, 10:30
Ответы с готовыми решениями:

Восприятие языка описания аппаратуры
Всем привет. Вникаю в языки описания аппаратуры, в частности в verilog, и на одном вопросе вхожу в ступор. Для примера возьмем два кода: ...

Универсальное описание протоколов обмена для периферийных устройств (Serial port)
Приходилось реализовать протокол обмена с физическими устройствами через интерфейс Serial Port на нескольких языках в разное время. И это...

Реализация сетевых протоколов
Народ, помогите пожалуйста. Уже неделю мучаюсь. :wall: В общем, суть в следующем. Существует некий бинарный протокол,...

23
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
24.07.2017, 12:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от omtomtubo
Есть еще вот такое
http://wavedrom.com/tutorial.html
Исходники доступны. Это как-то может помочь?
Ведь парсер языка есть, осталось только вместо рисования выдать наружу (это если сильно упрощая).
Какая прикольная вещь! Вместо рисования на выходе можно выдать наружу код, например, на С, который, будучи скомпилированным превращается в плагин для некоей программы-прошивалки. Как один из возможных вариантов.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
24.07.2017, 14:45
всё-таки оно для рисования диаграмм,
а для описания программирования памяти имхо больше подходит тупо последовательность функций.
там в основном не отдельными ногами надо дрыгать, а байтовые команды полысать.
то есть оборачивать их ещё раз в строку где каждый символ что-то кодирует, вроде wave: "x.345x|=.x", data: ["head", "body", "tail", "data"] наглядности имхо не добавит и описание не упростит.

Ведь парсер языка есть, осталось только вместо рисования выдать наружу
готовых скриптовых языков полно, приделать к любому из них библиотеку для работы с конкретным программатором (для той же lua, привязать несколько функций из libftdi совсем не сложно, да и поди уже что-нибудь готовое есть) который будет дёргать ногами совсем не проблема.

или обязательно надо сделать что-то своё, со своим корявым синтаксисом?
0
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
24.07.2017, 18:39
Цитата Сообщение от _pv
или обязательно надо сделать что-то своё, со своим корявым синтаксисом?
Лучше всего вообще ничего не делать.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
24.07.2017, 19:30
изначально вопрос был про свой интерпетатор.
так вот берите готовое.
любой понравившийся скриптовый язык, и пишите описание программирования памяти на нём.
используя ряд простых функций вроде SpiTransferByte(), SetPin(), ClrPin().
реализовать их для работы с конкретым программатором - имхо самая простая часть, особенно если это ftdi.
а у какого-нибудь USB btoster протокол вообще тривиальный, даже гораздо проще MPSSE. да и китайские клоны по 2$.
С Lua могу помочь.

ну либо зайти с другой стороны, как vt340 посоветовал, разбирайтесь с tcl, и добавляйте недостающие микросхемы к openOCD, там с поддержкой железа уже всё сделано.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.07.2017, 19:30
Помогаю со студенческими работами здесь

Примеры по реализации голосового обмена на Java 2 с использованием протоколов TCP/IP или UDP
Подскажите, где можно найти примеры по реализации голосового обмена на Java 2 с использованием протоколов TCP/IP или UDP.

Учебник по C#: без описания работы компилятора, создания языка и биографии его авторов
В учебнике опускается описание работы компилятора, создание языка c# и биографии его авторов. 85 страниц. Пример учебника вы можете...

Реализация устройства на языке описания аппаратуры
Здравствуйте, по заданию мне необходимо реализовать на одном из языков описания аппаратуры устройство, которое вычисляет синус угла,...

Имеются следующие описания: Язык= (Паскаль, Ява, Бейсик, Фортран, Лисп). По русскому названию языка вывести английский
Имеются следующие описания: Язык= (Паскаль, Ява, Бейсик, Фортран, Лисп). По русскому названию языка вывести английский эквивалент ...

Выбор языка программирования для обмена информацией с другим копмьютером по интернету
Здравствуйте. Подскажите пожалуйста на каком языке программирования легче реализовать следующую вещь (меня интересует C++, java, c# -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru