Пропатчить отладчик для МК КР1878ВЕ1

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

aav8 wrote:чтой-то не найду, как картинки вставить ...
У Вас же была моя почта, когда мы 580ВМ80 на Протезусе мучали...
Напомню в личку.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Что-то я тут над одной вещью затупил... :(
В моём коде 5-летней давности DLL перехвата сообщений тоже вызывается
через LoadLibraryA и должна вернуть "хэндлер" библиотеки hLib.

Под вызовом LoadLibraryA написанный мной-же комментарий:

Code: Select all

  Объявляют переменные в DLL'ке и после загрузки DLL в процесс
  exe-шника вызывают из неё процедуру инициализации переменных
  в этом случае глобальные переменные DLL доступны и в exe и в dll
Но в вызове LoadLibraryA кроме имени DLL'ки никаких переменных нет.
DLL'ка правильно находится в путях, но hLib упорно возвращает = 0.

И я что-то не пойму, где я тут затупил... :(


PS. Походу въехал... старая DLL'ка же аттачилась совсем к другому процессу... :wink:

Code: Select all

//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
   if(reason==DLL_PROCESS_ATTACH) //---- Проецируем .dll на адр. простр-во ----
   {
     //--- узнаем хэндлер своего стартового окна ---
       hMyWin=FindWindow("HookWndClass","EWBHook");
      hEWBWin=FindWindow("ewb5","Electronics Workbench Professional Edition");
   if(hEWBWin==0) //--- узнаем хэндлер окна WEWB32, если оно есть...
      PostMessage(hMyWin, WM_DESTROY, NULL, NULL); //--- иначе выходим...----
   }
   return 1;
}
Надо подправить... 8)
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Вот что в Венде порой напрягает - так некоторая непонятная неодинаковость
в подходах... :(

Вот без особых трудов захватываю я текст child-окна RAM типа Reach-Edit: по
найденному идентификатору окна использую сообщениe WM_GETTEXT - и всё
возвращается в моей строковой переменной.

Image

Решил я и потактовое время исполнения команд InClock ухватывать,
чтoбы имитировать внешнюю тактовую частоту на вывод порта.

Хорошо... находим идентификатор StatusBar, узнаем сколько у него
полей через SB_GETPARTS, узнаем размер текстового буфера для
нужного поля через SB_GETTEXTLENGTH, и остаётся последнее -
прочитать содержимое поля в буфер через SB_GETTEXT. Всё довольно
аналогично ситуации с WM_GETTEXT.

А вот тут и - обломинго! :o
Переменная, в которую мы хотим передать текст, и исходный текст
содержатся в разных адресных пространствах.
А я еще задумался - зачем в одном из вариантов DLL у меня выделяется
область памяти общая для всех процессов! Думал, что перемудрил... :wink:

Выходит, что если WM_GETTEXT, то моя переменная и текст типа в
"одном адресном пространстве", хотя процессы и разные! :o
А вот если SB_GETTEXT - то они сразу стали "в разных адресных
пространствах
"...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re:

Post by Lavr »

Lavr wrote:Есть вот такой Виндавозный отладчик для микроконтроллера КР1878ВЕ1, работает он довольно-таки
неплохо, все примеры для микроконтроллера я проверяю на нём.

Image

То, что обведено красным контуром в окошках - это состояние портов ввода-вывода А и В.
Так вот хотелось мне вывод в эти окна перехватить и сделать плагин для отладчика с эмуляцией
внешнего устройства, скажем, линейки светодиодов или матрицы их как в MPLAB IDE для PICxx.

Image

Если исправлять содержимое полей портов в этих окнах, то отладчик это воспринимает, как ввод с ВУ.
Можно было бы эмуляцию кнопок прицепить... а то отлаживать, видя лишь циферки, - кисло немного... :-?
Собственно, это у меня была идея подшаманить Виндавозный отладчик для микроконтроллера КР1878ВЕ1,
так, как я позже умудрился-таки подправить эмулятор компьютера БК, чтобы можно было прицепить
внешний плагин, отображающий зажигание светодиодов или 7-сегментных индикаторов через порты контроллера,
а также эмулировать нажатие кнопок.

Image

С эмулятором БК это получилось методом внедрения в код. А вот с фирменным отладчиком для микроконтроллера
КР1878ВЕ1 фокус тогда не удался... :-?
iLavr
Pavtik
Novelist
Posts: 26
Joined: 11 Nov 2015 09:34

Re: Пропатчить отладчик для МК КР1878ВЕ1

Post by Pavtik »

А где скачать этот DebugMCT.exe ?
нигде не могу найти. :econfused:
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Пропатчить отладчик для МК КР1878ВЕ1

Post by Lavr »

Pavtik wrote:А где скачать этот DebugMCT.exe ?
нигде не могу найти. :econfused:
На сайте ОАО "Ангстрем": https://www.angstrem.ru/
Но я туда давненько не заходил... :-?
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Пропатчить отладчик для МК КР1878ВЕ1

Post by Lavr »

Я нашел у себя на диске одну копию DebugMCT.exe в папке EXEScope, где я обычно
патчу exe-шники или их ресурсы.
Я не знаю, патчил я этот экземпляр DebugMCT.exe или нет, но он работает.

Судя по записи в Реестре Венды он был инсталлирован в папку C:\1878ВЕ1, где должна быть
и папка C:\1878ВЕ1\DebugMCT с файлами *.LST и *.SAV.
Основные настройки программа DebugMCT.exe хранит в Реестре, я эту ветку Реестра
в архив приложил.

Так чисто на вид - работает нормально, хотя я очень давно не трогал КР1878ВЕ1 и связанный
с ним софт...
1878ВЕ1.zip
You do not have the required permissions to view the files attached to this post.
iLavr
Pavtik
Novelist
Posts: 26
Joined: 11 Nov 2015 09:34

Re: Пропатчить отладчик для МК КР1878ВЕ1

Post by Pavtik »

Да, спасибо, нашёл на Ангстреме, ваш exe и с сайта одинаковые.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Пропатчить отладчик для МК КР1878ВЕ1

Post by Lavr »

Lavr wrote:
Pavtik wrote:А где скачать этот DebugMCT.exe ?
нигде не могу найти. :econfused:
На сайте ОАО "Ангстрем": https://www.angstrem.ru/
Но я туда давненько не заходил... :-?
Да, они там всё несколько обновили, сразу и не найти нужное... :-?
Все материалы по микроконтроллеру КР1878ВЕ1 теперь здесь:
http://old.angstrem.ru/products/micro/t ... 78BE1.html
iLavr