Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RDI исходники ?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
khach
Пришлось начать работатьс АРМом. В связи с наличием камней с USB возникла идея потренироваться в разработке собственного отладчика. В качестве програмного интерфейса со средами разработки выбрал RDI dll. Заголовочные файлы нашел. А вот простой рабочий пример длл ( напрмер для вигглера), с исходниками - пока нет. Вопрос- он есть на нашем ФТП ( или где-то еще)?
DASM
Гм, размечтались. Могу посоветовать использовать J-Link или MT-Link.
Для них внешний интерфейс прост (ReadMem, Writemem и т п)
khach
Цитата(DASM @ Oct 1 2005, 19:04)
Гм, размечтались. Могу посоветовать использовать 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 ( проверьте кто-нибудь, а то сейчас железо недоступно).
DASM
у ARM JTAG построен так, что например для изменения памяти в его SCAN CHAIN вгоняется опкод команды STMIA а потом данные. После чего процессор должен отработать это на своей родной частоте. Поэтому если частота ядра низкая - JTAG никогда не даст высокой скорости. Реально - одна шестая частоты ядра. По RDI - вам эти сурцы ничего не дадут, там нет кода непосредственно работы с ARM ядром
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.