|
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
|
|
Реализация языка описания протоколов обмена23.07.2017, 10:30. Показов 4693. Ответов 23
Метки нет (Все метки)
Привет парни.
Я все чаще сталкиваюсь с необходимостью читать/прошивать микросхемы (контроллеры), которые не поддерживаются имеющимися у меня программаторами, а то и вовсе неизвестно, чем поддерживаются. При этом на них есть даташит с полным описанием процесса чтения/записи внутренней памяти. И вот не дает мне покоя мысль об универсальном программаторе. Основной его функцией должна быть простая перенастройка на любую новую микросхему. Вот здесь описан программатор, с которым в комплекте идет язык HPL, позволяющий просто и быстро описать протокол программирования микросхем. Конечно, исходников никаких нет. Кто-нибудь занимался написанием интерпретатора языка? Я пока вообще не представляю, как это делать. В качестве железа можно применить все, что угодно, например, FT2232H, модуль PinBoard, STM32, CY68013, да хоть параллельный порт. То есть архитектура видится такой: Для каждой микросхемы имеется описание на HPL. Программа читает этот файл, разбирает его и на каждый шаг составляет карту бит, которая передается на аппаратный интерфейс или читается с интерфейса. Пример реализации самого файла hpl можно посмотреть в демо-версии оболочки программатора. http://www.cnc-lab.com/files/or5demo.rar
0
|
|
| 23.07.2017, 10:30 | |
|
Ответы с готовыми решениями:
23
Восприятие языка описания аппаратуры Универсальное описание протоколов обмена для периферийных устройств (Serial port) Реализация сетевых протоколов |
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 737
|
||
| 23.07.2017, 11:05 | ||
Не столько сложно, сколько громоздко и муторно, но вполне решаемо. Но понадобится еще знание стандартов в которых предоставлены данные для прошивания, так как их придется читать тоже.
0
|
||
|
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
|
|||
| 23.07.2017, 11:35 | |||
Для новых микросхем придется написать самому.
0
|
|||
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 23.07.2017, 11:44 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
|
||
| 23.07.2017, 12:00 | ||
По поводу парсинга: если где-нибудь есть описание грамматики языка (сомневаюсь, но все-таки), то парсинг пишется с пол-пинка с помощью какого-нибудь lex + bison или (лучше) antlr. Если описания грамматики нет, то ее можно попробовать восстановить анализом исходных файлов. Полторы тысячи описаний должно быть более чем достаточно для этого. Ну и в любом случае нужен некоторый бекграунд по теории. Я бы посоветовал "Грис Д. Конструирование компиляторов для цифровых вычислительных машин" (можно взять вот тут) . Не смотря на возраст она, пожалуй, остается самым внятным учебником по этому вопросу. Впрочем, имея бэкграунд написать парсер рекурсивным спуском вполне посильная задача без каких-либо дополнительных инструментов. P.S. вообще имеет смысл взять эти описания и перегнать в другой синтаксис (естественно, автоматически), но это отдельная и чуть более сложная задача.
0
|
||
|
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
|
|
| 23.07.2017, 15:55 | |
|
Спасибо.
Для человека недалекого (то есть далекого от предмета): Вначале нужно написать описание языка в формате antlr. Потом вместе с описанием языка подсовывать файлы с описаниями различных микросхем, чтобы сформировать полный набор функций, выполняющихся при соответствующих конструкциях в исходнике. Этот пункт лишний. Описания языка достаточно. А дальше заполнить тело этих функций соответствующим кодом взаимодействия с аппаратурой. Так получается?
0
|
|
|
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
|
||
| 23.07.2017, 16:10 | ||
P.S. я бы посоветовал разобраться с парсингом (на самом деле это далеко не самый сложный раздел в программировании) и написать разбор руками рекурсивным спуском. грамматика у этого языка не выглядит сложной, рекурсивный спуск должен справиться. в итоге будет а) лучшее понимание как все работает (и, соответственно, будет проще править ошибки/доделки/переделки) и б) будет проще выполнять операции или генерировать промежуточное представление.
0
|
||
|
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
|
|
| 23.07.2017, 17:03 | |
|
Хм. Это большая работа. К тому же на PC уже забыл, когда писал в прошлый раз.
0
|
|
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
| 23.07.2017, 17:16 | |
|
если задача прикрутить новую микросхему к какому-либо программатору, взаимодействовать с которым опять же собрались сами напрямую, то зачем это делать через жопу ещё одну прокладку, тем более что выглядит это .ini - образное описание мягко говоря не очень уж красиво.
имхо тогда проще взять любой понравившийся скриптовый язык lua, python,... и писать описание из даташита сразу на нём. function Init() on(RESIT) ... off(RESIT) on(CS) write(0xaaaa) off(CS) end function WriteData(data) on(CS) write(CMD1) write(CMD2) write(data) off(CS) end хотя обычно даже этого не надо. как-то когда надо было прошить какой-то простой еепром, вместо поиска подходяшего программатора проще и быстрее оказалось наговнячить на С небольшую утилитку которая альтеровским усб-бластером тупо шила только эту конкретную микросхему. не каждый же день надо десяток новых типов микросхем шить?
0
|
|
|
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
|
||
| 23.07.2017, 17:39 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 737
|
|
| 23.07.2017, 18:41 | |
|
Да дело ж не в этом.
А (как пишет автор) - к его услугам здоровенный массив готовых описаний на языке HPL. И он хочет ими воспользоваться.
0
|
|
|
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
|
|
| 23.07.2017, 18:48 | |
|
А как у этого массива с лицензией? А то напишешь интерпретатор, а выложить никуда нельзя.
0
|
|
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
| 23.07.2017, 18:53 | |
|
Огласите весь спсочек пожалуйста.
описанных на этом HPL микросхем если он реально большой, то можно подумать просто о том чтобы сконвертировать этот убогий HPL в скрипт на той же Lua, и исполнять его уже готовым интерпретатором. а если нет, то тогда ну его, проще что-нибудь другое взять за основу для описания действий для программирования микросхем памяти.
0
|
|
|
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
|
||
| 23.07.2017, 18:57 | ||
P.S. как тут верно заметили, зачастую под конкретную задачу (конкретный чип и протокол) проще выпилить свой инструмент на коленке.
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 737
|
||
| 23.07.2017, 19:05 | ||
|
А может эта фирма cnc будет пополнять))))) - и вот чтоб не перегонять каждый раз, ...
Касательно же массива - раз выкладывают в свободный доступ, значит позволяют брать.
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 737
|
||
| 23.07.2017, 19:21 | ||
Ведь сей список - не данные)))))) Динные - это файл прошивки, например .hex или .bin А этот HPL должен сформировать некую управляющую структуру, которая, будучи запущена, обработает данные и произведет дрыганье ногами Сможет Lua такое?
0
|
||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
| 23.07.2017, 19:44 | |
|
проще.
сможет.
0
|
|
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
||
| 24.07.2017, 11:04 | ||
Самое простое решение: OpenOCD --> jtag адаптер --> STM32 --> target В OpenOCD встроен Tcl, как раз подходящий язык, чтоб делать свои интерпретаторы, да и сам OpenOCD так и сделан. Вот пример - HPL файлы под жёстким копирайтом, их нельзя использовать, разве что для информации.
0
|
||
|
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
|
|
| 24.07.2017, 12:32 | |
|
Есть еще вот такое
http://wavedrom.com/tutorial.html Исходники доступны. Это как-то может помочь? Ведь парсер языка есть, осталось только вместо рисования выдать наружу (это если сильно упрощая).
0
|
|
|
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
|
||||
| 24.07.2017, 12:42 | ||||
0
|
||||
| 24.07.2017, 12:42 | |
|
Помогаю со студенческими работами здесь
20
Примеры по реализации голосового обмена на Java 2 с использованием протоколов TCP/IP или UDP Учебник по C#: без описания работы компилятора, создания языка и биографии его авторов Реализация устройства на языке описания аппаратуры Имеются следующие описания: Язык= (Паскаль, Ява, Бейсик, Фортран, Лисп). По русскому названию языка вывести английский Выбор языка программирования для обмена информацией с другим копмьютером по интернету Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|