Страница 1 из 2
Перевод из assembler в язык СИ
Добавлено: Вт фев 07, 2023 00:19:37
bes_com
Добрый день!
Возможно есть специалисты знающие язык ассемблер, в идеале перенести код в СИ для последующей доработки и отладки на Arduino, но это в идеале, на это я не рассчитываю, многие говорят что проще написать с нуля, чем разбирается с уже написанным, но мне это не под силу, я не силён в программировании, а найти энтузиастов пока не получается.
Поэтому прошу помочь разобрать по полочкам исходник, для попытки воплощения аналога на Arduino.
Вот ссылка на исходник. там есть вся история разработки, начиная с самой первой версии, возможно будет проще отслеживать изменения и решения автора.
Первая задача стоит в том чтоб ГУ увидело устройство. Для отладки всё есть, макет, Ардуинка и ГУ. Изначально собирал всё под PIC но с Асемблером вообще беда, никто его не знает, а вот с СИ проблем нет.
Re: Перевод из assembler в язык СИ
Добавлено: Вт фев 07, 2023 11:37:11
driver_gv
Добрый день.
Знаю ассемблер и Си для PIC
Могу переписать для PIC на MPLAB X - ХС8
Также MPLAB X - ХС8 может компилировать для AVR
В Ардуинах не силен.
Re: Перевод из assembler в язык СИ
Добавлено: Вт фев 07, 2023 19:43:54
smart_pic
Переводить из НЕХ в ASM , потом сидеть разбираться с алгоритмом - еще то занятие.
А автору написать не вариант?
Может лучше алгоритм обмена найти и по нему сделать отладчик ?
Re: Перевод из assembler в язык СИ
Добавлено: Вт фев 07, 2023 20:51:22
bes_com
Спасибо всем откликнувшимся, как я понимаю программа уже написана, и лежит в исходниках
.ASM из
HEX переводить не нужно, нужно понять что там за алгоритмы, и попробовать реализовать аналогичное под Ардуино
Вот ссылка на архивы исходника, от первой версии до последней...
Re: Перевод из assembler в язык СИ
Добавлено: Вт фев 07, 2023 20:54:14
smart_pic
Разместите в теме исходники и все необходимое , а копать и рыться - нет желания.
Re: Перевод из assembler в язык СИ
Добавлено: Вт фев 07, 2023 21:18:51
bes_com
[uquote="driver_gv",url="/forum/viewtopic.php?p=4368022#p4368022"]Добрый день.
Знаю ассемблер и Си для PIC
Могу переписать для PIC на MPLAB X - ХС8
Также MPLAB X - ХС8 может компилировать для AVR
В Ардуинах не силен.[/uquote]
Можешь посмотреть что лежит в исходнике
.ASM вся программа целиком написана?
Вот немного информации по протоколу + архив ниже
Добавлено after 19 minutes 43 seconds:
итоговая задача законченного устройства, это с магнитолы управлять музыкой на телефоне по Bluetooth, есть вот такой Bluetooth модуль с дискретными входами (фото ниже)
в исходники была схожая задача, но управлялось ПК через ком порт, мне же по по факту нужны дискретные выхода по нужным командам...
Re: Перевод из assembler в язык СИ
Добавлено: Вт фев 07, 2023 21:19:21
driver_gv
Посмотрел, работы много. Но все можно сделать. Если вам для себя любимого - забудьте. Если вам продать от 200 штук то выйдете на ноль из за стоимости разработки.
Re: Перевод из assembler в язык СИ
Добавлено: Ср фев 08, 2023 08:49:42
smart_pic
[uquote="driver_gv",url="/forum/viewtopic.php?p=4368281#p4368281"]Но все можно сделать. Если вам для себя любимого - забудьте.[/uquote]
Сделать можно, но чтоб отладиться и потом описать весь протокол что бы переносить на любую платформу - так это нужна магнитола и комплект того с чего и чем управлять .
Если это конечно не тюнинг БМП (не путать с BMW) - то и на единичном экземпляре можно быть в профите

. кому интересно посмотрите тюниг этой техники.
А для себя любимого , проще сменить комплект аппаратуры. С блютуза не все так просто управлять . Если стандартные команды - то да с андроида почти все плеера шлют стандартный набор команд, а так же понимают основные команды приходящие от системы. А дальше уже приложение писать надо , потом версии поддерживать. А там начнут китайские иероглифы по блютузу гулять ... с ними бороться. есть небольшой опыт в этом направлении.
Re: Перевод из assembler в язык СИ
Добавлено: Ср фев 08, 2023 20:51:30
bes_com
Я наверно не с того начал, сейчас попробую разложить всё по полочкам.
Задача:
- эмулировать CD/MD устройство, чтоб ГУ увидела дивайс,
- в дискретном виде отдавать команды управления с ГУ ("следующий трек", "предыдущий трек", "следующая папка", "предыдущая папка" вывести их на отдельные выходы, чтоб при поступлении данной команды появлялась логическая 1, с "плей" и "паузой" тоже самое, только там один выход но разные задержки).
ГУ есть (менять не вариант, отсюда и заморочки), собран и подключён к магнитоле макет (фото 1 и schematic_v2), на шинах DATA и CLK наблюдаю импульсы, BUSON это логическая "1" при включении ГУ, чтоб разбудить устройство. Также есть Bluetooth модуль (фото 2).
Схематически я свяжу макет и модуль Bluetooth (главное получить нужные сигналу). Аудиосигнал в аналоге будет идти с Bluetooth модуля на вход ГУ.
Макет собирал под PIC16F648A (он тоже есть в наличии) но столкнулся с тем что язык Ассемблер никто из знакомых не знает и поправить исходник под мои задачи не может, поэтому и озадачился переводом в Си, как я понимаю это проблема. Можно подправить вышеупомянутые исходники под мои задачи скомпилировать HEX под PIC16F648A, этого будет достаточно для меня.
Просто хотел всё обкатать на Arduino, возможно ещё решить какие-нибудь задачи, например передавать название трека (протокол это позволяет) но тогда наверное надо использовать другой Bluetooth модуль, я ещё не изучал возможности QCC3031, но это уже лирика, есть знакомые готовые помочь допилить на языке Си под Arduino.
В исходниках есть хронология версий, возможно какая-то промежуточная уже содержит всё необходимое (разложенный протокол), без управления по СОМ порту, её и надо брать за основу.
Re: Перевод из assembler в язык СИ
Добавлено: Ср фев 08, 2023 21:10:47
smart_pic
[uquote="bes_com",url="/forum/viewtopic.php?p=4368827#p4368827"]Макет собирал под PIC16F648A (он тоже есть в наличии) но столкнулся с тем что язык Ассемблер никто из знакомых не знает и поправить исходник под мои задачи не может, поэтому и озадачился переводом в Си, как я понимаю это проблема. Можно подправить вышеупомянутые исходники под мои задачи скомпилировать HEX под PIC16F648A, этого будет достаточно для меня.[/uquote]
Вы представляете во что выливается задача изменения исходников , похоже что нет,
По факту придется раз надцать править компилить , заливать прошивку в проц, смотреть лог анализатором обмен, вникать в протокол, потом описывать все это чтоб другим было понятно.
ASM для пиков хорошо знаю , как раз для 16 и 18 серии , для 32 серии уже СИ.
Вот два примера , как описывал другие протоколы чтоб было понятно. Вот тоже самое нужно сделать и с вашим протоколом и ГУ.
Реверс-инжиниринг протокола записи адресов микросхемы UCS512
https://habr.com/ru/post/678546/
О Multi-Drop Bus замолвите слово или торговый автомат по розливу воды с управлением по MDB
https://habr.com/ru/post/704646/
Re: Перевод из assembler в язык СИ
Добавлено: Чт фев 09, 2023 00:02:41
bes_com
а разве
здесь не описан протокол?
Re: Перевод из assembler в язык СИ
Добавлено: Чт фев 09, 2023 07:18:20
smart_pic
[uquote="bes_com",url="/forum/viewtopic.php?p=4368893#p4368893"]а разве
здесь не описан протокол?[/uquote]
НЕТ.
Там описан протокол SONY для камер, он достаточно известен. Применяем его для управления камерами в конференц залах.
А дальше описан протокол межблочного соединения, когда главное устройство принимает ИК команды и затем транслирует их дальше на другие устройства. Это сделано для того чтоб иметь один пульт , один ИК приемник , но иметь возможность управлять всей системой.
Там протокол - это те же ИК посылки , только без несущей 40кГц. и все тот же протокол RC5 для ИК управления. Но он без обратной связи . Только в одну сторону. И это используем для управления оборудованием в конференц залах.
А обратная связь уже идет по другим своим проприетарным протоколам .
Если бы все было просто - то в ардуино уже была бы библиотека

Re: Перевод из assembler в язык СИ
Добавлено: Чт фев 09, 2023 21:12:27
bes_com
а вот в этом архиве?
Re: Перевод из assembler в язык СИ
Добавлено: Пт фев 10, 2023 07:20:33
smart_pic
Возможно, но без объяснения что к чему и почему видим такую картину - все это бесполезный цифровой мусор.
Тут два варианта , и о них уже писали выше. Либо вы сами собираете всю инфу и делаете это сами, либо отдавать весь комплект ГУ и чем управлять , ставите нормально задачу обсуждается бюджет и затраты и получаете готовый результат.
может быть еще гибридный вариант , когда вы все на своем месте измеряете , дистанционно показываете , в реал тайм все отлаживается с другим специалистом, но это не быстро , сложнее и т.д.
p.s. смотрел исходники , все относительно понятно , но нужно реальное железо что бы убедиться в правильности выводов . Зарисовать зафиксировать обмен , дать пояснения как реализовывать на других платформах.
А тетя SONY не будет против?

Re: Перевод из assembler в язык СИ
Добавлено: Пт фев 10, 2023 18:34:04
bes_com
smart_pic писал(а):А тетя SONY не будет против?
если ей не рассказывать то думаю она и не узнает, тем более у нас сейчас с ней отношения не очень...
Так я понял, беру творческую паузу, попробую ещё почитать интернет.
Кто сможет скомпилировать 1.8 версию под PIC16F648A и кинуть мне HEX под него, хочу проверить увидит его ГУ или нет, или подскажите в какой программе написан этот проект?
Re: Перевод из assembler в язык СИ
Добавлено: Пт фев 10, 2023 20:28:45
smart_pic
[uquote="bes_com",url="/forum/viewtopic.php?p=4369802#p4369802"]Кто сможет скомпилировать 1.8 версию под PIC16F648A и кинуть мне HEX под него, хочу проверить увидит его ГУ или нет, или подскажите в какой программе написан этот проект?[/uquote]
MPLAB подойдет .
Посмотрел , для pic16f827 компилится без ошибок в MPLAB, В проекте зависимости от процессоров прописаны . А вашего pic16f648A нет в конфигурационных настройках . Надо покопаться чтоб посмотреть где зависимый от проца код.
В личку напишите контакты.
Re: Перевод из assembler в язык СИ
Добавлено: Сб фев 11, 2023 15:04:11
bes_com
Спасибо за обратную связь..
вот наверное всё что есть, про этот протокол
Sony UniLink (Sony Bus)
Добавлено after 26 minutes 17 seconds:
Кстати
Reverse engineering был сделан китайцами,
продаётся на ebay
Добавлено after 47 minutes 58 seconds:
вот ещё статейка на ATmega8
Re: Перевод из assembler в язык СИ
Добавлено: Сб фев 11, 2023 16:28:13
smart_pic
Скомпилил по 16F648A
Re: Перевод из assembler в язык СИ
Добавлено: Вс фев 19, 2023 23:39:35
bes_com
Всем привет, если тут есть спецы по AVR, подскажите в каком софте написан данный код
Добавлено after 1 minute 45 seconds:
кстати, вот ещё
статья по описанию протокола Sony Unilink
Re: Перевод из assembler в язык СИ
Добавлено: Пн фев 20, 2023 00:25:23
smacorp
bes_com, использованы AvrStudio 4 и WinAVR (GCC) 3.4.1