Уборка сахарного тростника. Сезонная. Пайка кастрюль. Сдельная. Предложения работы.
Ответить

Перевод из assembler в язык СИ

Вт фев 07, 2023 00:19:37

Добрый день!
Возможно есть специалисты знающие язык ассемблер, в идеале перенести код в СИ для последующей доработки и отладки на Arduino, но это в идеале, на это я не рассчитываю, многие говорят что проще написать с нуля, чем разбирается с уже написанным, но мне это не под силу, я не силён в программировании, а найти энтузиастов пока не получается.

Поэтому прошу помочь разобрать по полочкам исходник, для попытки воплощения аналога на Arduino. Вот ссылка на исходник. там есть вся история разработки, начиная с самой первой версии, возможно будет проще отслеживать изменения и решения автора.

Первая задача стоит в том чтоб ГУ увидело устройство. Для отладки всё есть, макет, Ардуинка и ГУ. Изначально собирал всё под PIC но с Асемблером вообще беда, никто его не знает, а вот с СИ проблем нет.

schematic_v2.pdf
Схема
(17.78 KiB) Скачиваний: 141

IMG_20230207_000212.jpg
Макет
(243.56 KiB) Скачиваний: 88

Re: Перевод из assembler в язык СИ

Вт фев 07, 2023 11:37:11

Добрый день.

Знаю ассемблер и Си для PIC
Могу переписать для PIC на MPLAB X - ХС8
Также MPLAB X - ХС8 может компилировать для AVR
В Ардуинах не силен.

Re: Перевод из assembler в язык СИ

Вт фев 07, 2023 19:43:54

Переводить из НЕХ в ASM , потом сидеть разбираться с алгоритмом - еще то занятие.
А автору написать не вариант?
Может лучше алгоритм обмена найти и по нему сделать отладчик ?

Re: Перевод из assembler в язык СИ

Вт фев 07, 2023 20:51:22

Спасибо всем откликнувшимся, как я понимаю программа уже написана, и лежит в исходниках .ASM из HEX переводить не нужно, нужно понять что там за алгоритмы, и попробовать реализовать аналогичное под Ардуино

Вот ссылка на архивы исходника, от первой версии до последней...

Re: Перевод из assembler в язык СИ

Вт фев 07, 2023 20:54:14

Разместите в теме исходники и все необходимое , а копать и рыться - нет желания.

Re: Перевод из assembler в язык СИ

Вт фев 07, 2023 21:18:51

Добрый день.

Знаю ассемблер и Си для PIC
Могу переписать для PIC на MPLAB X - ХС8
Также MPLAB X - ХС8 может компилировать для AVR
В Ардуинах не силен.


Можешь посмотреть что лежит в исходнике .ASM вся программа целиком написана?

Вот немного информации по протоколу + архив ниже

Добавлено after 19 minutes 43 seconds:
итоговая задача законченного устройства, это с магнитолы управлять музыкой на телефоне по Bluetooth, есть вот такой Bluetooth модуль с дискретными входами (фото ниже)

в исходники была схожая задача, но управлялось ПК через ком порт, мне же по по факту нужны дискретные выхода по нужным командам...
Вложения
Bluetooth.jpg
(151.4 KiB) Скачиваний: 32
GNUnilink-1.8.zip
Исходник
(37.89 KiB) Скачиваний: 52
www.zip
По протоколу
(60.06 KiB) Скачиваний: 49

Re: Перевод из assembler в язык СИ

Вт фев 07, 2023 21:19:21

Посмотрел, работы много. Но все можно сделать. Если вам для себя любимого - забудьте. Если вам продать от 200 штук то выйдете на ноль из за стоимости разработки.

Re: Перевод из assembler в язык СИ

Ср фев 08, 2023 08:49:42

Но все можно сделать. Если вам для себя любимого - забудьте.

Сделать можно, но чтоб отладиться и потом описать весь протокол что бы переносить на любую платформу - так это нужна магнитола и комплект того с чего и чем управлять .
Если это конечно не тюнинг БМП (не путать с BMW) - то и на единичном экземпляре можно быть в профите :). кому интересно посмотрите тюниг этой техники.
А для себя любимого , проще сменить комплект аппаратуры. С блютуза не все так просто управлять . Если стандартные команды - то да с андроида почти все плеера шлют стандартный набор команд, а так же понимают основные команды приходящие от системы. А дальше уже приложение писать надо , потом версии поддерживать. А там начнут китайские иероглифы по блютузу гулять ... с ними бороться. есть небольшой опыт в этом направлении.

Re: Перевод из assembler в язык СИ

Ср фев 08, 2023 20:51:30

Я наверно не с того начал, сейчас попробую разложить всё по полочкам.

Задача:
- эмулировать CD/MD устройство, чтоб ГУ увидела дивайс,
- в дискретном виде отдавать команды управления с ГУ ("следующий трек", "предыдущий трек", "следующая папка", "предыдущая папка" вывести их на отдельные выходы, чтоб при поступлении данной команды появлялась логическая 1, с "плей" и "паузой" тоже самое, только там один выход но разные задержки).

ГУ есть (менять не вариант, отсюда и заморочки), собран и подключён к магнитоле макет (фото 1 и schematic_v2), на шинах DATA и CLK наблюдаю импульсы, BUSON это логическая "1" при включении ГУ, чтоб разбудить устройство. Также есть Bluetooth модуль (фото 2).

Схематически я свяжу макет и модуль Bluetooth (главное получить нужные сигналу). Аудиосигнал в аналоге будет идти с Bluetooth модуля на вход ГУ.

Макет собирал под PIC16F648A (он тоже есть в наличии) но столкнулся с тем что язык Ассемблер никто из знакомых не знает и поправить исходник под мои задачи не может, поэтому и озадачился переводом в Си, как я понимаю это проблема. Можно подправить вышеупомянутые исходники под мои задачи скомпилировать HEX под PIC16F648A, этого будет достаточно для меня.

Просто хотел всё обкатать на Arduino, возможно ещё решить какие-нибудь задачи, например передавать название трека (протокол это позволяет) но тогда наверное надо использовать другой Bluetooth модуль, я ещё не изучал возможности QCC3031, но это уже лирика, есть знакомые готовые помочь допилить на языке Си под Arduino.

В исходниках есть хронология версий, возможно какая-то промежуточная уже содержит всё необходимое (разложенный протокол), без управления по СОМ порту, её и надо брать за основу.
Вложения
Bluetooth.jpg
(151.4 KiB) Скачиваний: 29
schematic_v2.pdf
(17.78 KiB) Скачиваний: 50
фото 1.jpg
(243.56 KiB) Скачиваний: 30

Re: Перевод из assembler в язык СИ

Ср фев 08, 2023 21:10:47

Макет собирал под PIC16F648A (он тоже есть в наличии) но столкнулся с тем что язык Ассемблер никто из знакомых не знает и поправить исходник под мои задачи не может, поэтому и озадачился переводом в Си, как я понимаю это проблема. Можно подправить вышеупомянутые исходники под мои задачи скомпилировать HEX под PIC16F648A, этого будет достаточно для меня.

Вы представляете во что выливается задача изменения исходников , похоже что нет,
По факту придется раз надцать править компилить , заливать прошивку в проц, смотреть лог анализатором обмен, вникать в протокол, потом описывать все это чтоб другим было понятно.
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

а разве здесь не описан протокол?

Re: Перевод из assembler в язык СИ

Чт фев 09, 2023 07:18:20

а разве здесь не описан протокол?

НЕТ.
Там описан протокол SONY для камер, он достаточно известен. Применяем его для управления камерами в конференц залах.
А дальше описан протокол межблочного соединения, когда главное устройство принимает ИК команды и затем транслирует их дальше на другие устройства. Это сделано для того чтоб иметь один пульт , один ИК приемник , но иметь возможность управлять всей системой.
Там протокол - это те же ИК посылки , только без несущей 40кГц. и все тот же протокол RC5 для ИК управления. Но он без обратной связи . Только в одну сторону. И это используем для управления оборудованием в конференц залах.
А обратная связь уже идет по другим своим проприетарным протоколам .
Если бы все было просто - то в ардуино уже была бы библиотека :)

Re: Перевод из assembler в язык СИ

Чт фев 09, 2023 21:12:27

а вот в этом архиве?
Вложения
www.zip
(60.06 KiB) Скачиваний: 42

Re: Перевод из assembler в язык СИ

Пт фев 10, 2023 07:20:33

Возможно, но без объяснения что к чему и почему видим такую картину - все это бесполезный цифровой мусор.
Тут два варианта , и о них уже писали выше. Либо вы сами собираете всю инфу и делаете это сами, либо отдавать весь комплект ГУ и чем управлять , ставите нормально задачу обсуждается бюджет и затраты и получаете готовый результат.

может быть еще гибридный вариант , когда вы все на своем месте измеряете , дистанционно показываете , в реал тайм все отлаживается с другим специалистом, но это не быстро , сложнее и т.д.

p.s. смотрел исходники , все относительно понятно , но нужно реальное железо что бы убедиться в правильности выводов . Зарисовать зафиксировать обмен , дать пояснения как реализовывать на других платформах.
А тетя SONY не будет против? :)

Re: Перевод из assembler в язык СИ

Пт фев 10, 2023 18:34:04

smart_pic писал(а):А тетя SONY не будет против?
если ей не рассказывать то думаю она и не узнает, тем более у нас сейчас с ней отношения не очень...

Так я понял, беру творческую паузу, попробую ещё почитать интернет.

Кто сможет скомпилировать 1.8 версию под PIC16F648A и кинуть мне HEX под него, хочу проверить увидит его ГУ или нет, или подскажите в какой программе написан этот проект?

Re: Перевод из assembler в язык СИ

Пт фев 10, 2023 20:28:45

Кто сможет скомпилировать 1.8 версию под PIC16F648A и кинуть мне HEX под него, хочу проверить увидит его ГУ или нет, или подскажите в какой программе написан этот проект?

MPLAB подойдет .

Посмотрел , для pic16f827 компилится без ошибок в MPLAB, В проекте зависимости от процессоров прописаны . А вашего pic16f648A нет в конфигурационных настройках . Надо покопаться чтоб посмотреть где зависимый от проца код.
В личку напишите контакты.

Re: Перевод из assembler в язык СИ

Сб фев 11, 2023 15:04:11

Спасибо за обратную связь..

вот наверное всё что есть, про этот протокол 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

Скомпилил по 16F648A
Вложения
GNUnilink.zip
(1.96 KiB) Скачиваний: 41

Re: Перевод из assembler в язык СИ

Вс фев 19, 2023 23:39:35

Всем привет, если тут есть спецы по AVR, подскажите в каком софте написан данный код

Добавлено after 1 minute 45 seconds:
кстати, вот ещё статья по описанию протокола Sony Unilink
Вложения
AVR-Unilink_v2.05.zip
(120.46 KiB) Скачиваний: 48

Re: Перевод из assembler в язык СИ

Пн фев 20, 2023 00:25:23

bes_com, использованы AvrStudio 4 и WinAVR (GCC) 3.4.1
Ответить