khach 33 1 октября, 2005 Опубликовано 1 октября, 2005 · Жалоба Пришлось начать работатьс АРМом. В связи с наличием камней с USB возникла идея потренироваться в разработке собственного отладчика. В качестве програмного интерфейса со средами разработки выбрал RDI dll. Заголовочные файлы нашел. А вот простой рабочий пример длл ( напрмер для вигглера), с исходниками - пока нет. Вопрос- он есть на нашем ФТП ( или где-то еще)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 1 октября, 2005 Опубликовано 1 октября, 2005 · Жалоба Гм, размечтались. Могу посоветовать использовать J-Link или MT-Link. Для них внешний интерфейс прост (ReadMem, Writemem и т п) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 33 2 октября, 2005 Опубликовано 2 октября, 2005 · Жалоба Гм, размечтались. Могу посоветовать использовать J-Link или MT-Link. Для них внешний интерфейс прост (ReadMem, Writemem и т п) <{POST_SNAPBACK}> Купить то легко, но хочеться совместить приятное с полезным ( изучить платформу и собрать отладчик). А разве это так трудно? С экспортом фунуций все понятно- вот список по 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 ( проверьте кто-нибудь, а то сейчас железо недоступно). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 2 октября, 2005 Опубликовано 2 октября, 2005 · Жалоба у ARM JTAG построен так, что например для изменения памяти в его SCAN CHAIN вгоняется опкод команды STMIA а потом данные. После чего процессор должен отработать это на своей родной частоте. Поэтому если частота ядра низкая - JTAG никогда не даст высокой скорости. Реально - одна шестая частоты ядра. По RDI - вам эти сурцы ничего не дадут, там нет кода непосредственно работы с ARM ядром Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться