Перейти к содержанию
    

RDI исходники ?

Пришлось начать работатьс АРМом. В связи с наличием камней с USB возникла идея потренироваться в разработке собственного отладчика. В качестве програмного интерфейса со средами разработки выбрал RDI dll. Заголовочные файлы нашел. А вот простой рабочий пример длл ( напрмер для вигглера), с исходниками - пока нет. Вопрос- он есть на нашем ФТП ( или где-то еще)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гм, размечтались. Могу посоветовать использовать J-Link или MT-Link.

Для них внешний интерфейс прост (ReadMem, Writemem и т п)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гм, размечтались. Могу посоветовать использовать J-Link или MT-Link.

Для них внешний интерфейс прост (ReadMem, Writemem и т п)

Купить то легко, но хочеться совместить приятное с полезным ( изучить платформу и собрать отладчик). А разве это так трудно? С экспортом фунуций все понятно- вот список по RDI dllям от разных jtagов

ADI

WinRDI_Config                  10017CF0 1  
WinRDI_GetRDIProcVec           10017CE0 2  
WinRDI_GetVersion              10017C90 3  
WinRDI_Get_DLL_Description     10017C10 4  
WinRDI_Info                    10017DB0 5  
WinRDI_Initialise              10017D60 6  
WinRDI_Register_Yield_Callback 1001CE90 7  
WinRDI_SetProgressFunc         10017CB0 8  
WinRDI_SetVersion              10017C50 9  
WinRDI_Valid_RDI_DLL           10017C00 10 
WinRDI_ZeroProgressValues      10017CD0 11 
start                          1001FC3A    


RealMonitor

WinRDI_Config                  1001AFC0 1 
WinRDI_GetRDIProcVec           1001AF60 2 
WinRDI_GetVersion              1001AF90 3 
WinRDI_Get_DLL_Description     1001AF50 4 
WinRDI_Info                    1001B010 5 
WinRDI_Initialise              1001AFA0 6 
WinRDI_Register_Yield_Callback 1001AFF0 7 
WinRDI_SetVersion              1001AF70 8 
WinRDI_Valid_RDI_DLL           1001AF40 9 
start                          1001FDD7   

Remote-A
WinRDI_Initialise              1000194F 1  
WinRDI_GetVersion              10003F80 3  
WinRDI_GetRDIProcVec           10003F70 4  
WinRDI_Config                  10001000 5  
WinRDI_SetProgressFunc         10004020 6  
WinRDI_Get_DLL_Description     10003FA0 7  
WinRDI_Valid_RDI_DLL           10004080 8  
WinRDI_ZeroProgressValues      10004060 9  
WinRDI_Register_Yield_Callback 10003C60 10 
start                          10003D7D    


ARMulator
DllMain                        100012B0 1 
WinRDI_Config                  10001270 2 
WinRDI_GetRDIProcVec           10001000 3 
WinRDI_GetVersion              10001180 4 
WinRDI_Get_DLL_Description     10001190 5 
WinRDI_Info                    100011A0 6 
WinRDI_Register_Yield_Callback 100011F0 7 
WinRDI_Valid_RDI_DLL           10001260 8 
start                          10004C8B   

JLink
WinRDI_Config                  10009160 1  
WinRDI_Download                10009130 2  
WinRDI_GetRDIProcVec           10009120 3  
WinRDI_GetVersion              100090C0 4  
WinRDI_Get_DLL_Description     10009110 5  
WinRDI_Info                    100090D0 6  
WinRDI_Initialise              10009130 7  
WinRDI_Register_Yield_Callback 10009140 8  
WinRDI_SetVersion              100090A0 9  
WinRDI_Valid_RDI_DLL           10009090 10 
start                          10029FD0    

EasyJTAG China

WinRDI_Valid_RDI_DLL           10006150 11 
WinRDI_GetVersion              10006160 4  
WinRDI_Info                    10006170 6  
WinRDI_Get_DLL_Description     100061E0 5  
WinRDI_GetRDIProcVec           100061F0 3  
WinRDI_Download                10006200 2  
WinRDI_Config                  10006220 1  
WinRDI_Initialise              10006250 7  
WinRDI_ZeroProgressValues      10006400 12 
WinRDI_Register_Yield_Callback 10006410 9  
WinRDI_SetStopping             10006430 10 
WinRDI_MultiConfig             10006440 8  
start                          1000A14A    

Заголовочный файл winrdi.h достаточно хорошо документирован.

Вот с максимальной достижимой скоростью- интересно. Приходилось работать с JTAG отладчиками для ST20 семейства - там максимальная скорость TCK указана в bsdl файле и достигает 80 Мгц для некоторых камней. Поэтому JTAG драйвился хардверным сдвигателем на FPGA с FIFO. А вот для АРМов сколько можно выжать максимум?

Кстати, нашел тут "неуловимого Джо":

Для вигглера дллку от китайских друзей я залил на наш фтп

upload/MCs/ARM/Segger_J-Link_keygen ( проверьте кто-нибудь, а то сейчас железо недоступно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у ARM JTAG построен так, что например для изменения памяти в его SCAN CHAIN вгоняется опкод команды STMIA а потом данные. После чего процессор должен отработать это на своей родной частоте. Поэтому если частота ядра низкая - JTAG никогда не даст высокой скорости. Реально - одна шестая частоты ядра. По RDI - вам эти сурцы ничего не дадут, там нет кода непосредственно работы с ARM ядром

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...