Механизм загрузки флэш-памяти Segger Jlink

Я использую отличный инструмент мониторинга API Rohitab для мониторинга вызовов DLL, которые Keil uVision делает для JLinkARM.dll Segger, чтобы я мог воспроизвести их в автоматизированной тестовой среде.

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

Я понимаю, что uVision загружает программу флэш-загрузчика в оперативную память целевого устройства, и этот загрузчик взаимодействует с встроенной флэш-памятью, чтобы стереть ее и загрузить новый образ, хотя я изо всех сил пытаюсь увидеть вызовы DLL, которые выполняются из uVision для фактической потоковой передачи изображение во флеш-загрузчик.

Я ожидал увидеть целую кучу вызовов JLINKARM_WriteMem для потоковой передачи данных, но этого не произошло. Я вижу кучу вызовов JLINK_WriteReg и JLINK_ReadReg, но их недостаточно, чтобы составить изображение. Я предполагаю, что они предназначены для наблюдения за процессом перепрошивки. Я знаю, что Jlink поддерживает ряд API-интерфейсов, связанных с загрузкой флэш-памяти, но я не вижу их использования здесь. Я тоже не вижу пройденных путей. Собственный файл журнала JLink здесь также бесполезен. Есть ли какой-то необычный механизм, который мне здесь не хватает?


person Gregory Kuhn    schedule 24.01.2021    source источник
comment
Почему бы вам просто не вызвать собственный инструмент Segger J-Flash в режиме командной строки? Или даже сам uVision в режиме командной строки: keil.com/support/man /docs/uv4/uv4_commandline.htm. Кажется, есть несколько причин, по которым вы хотели бы перепроектировать это, и любое решение, которое вы придумаете, будет специфичным для этой одной части, когда оба инструмента поддерживают сотни частей.   -  person Clifford    schedule 25.01.2021
comment
Хорошая точка зрения. Я могу пойти по этой дороге. В прошлом я использовал оболочку Python для Jlink DLL, и это дало отличный эффект для создания эффективного стенда регрессионного тестирования. Я задал этот вопрос, потому что мне не был ясен механизм. Это скорее вопрос любопытства, а не то, что на самом деле остановит меня на моем пути.   -  person Gregory Kuhn    schedule 25.01.2021


Ответы (1)


Извини. Я не должен публиковать такие вопросы, когда я устал. JLINKARM_WriteMem - это именно тот механизм, который используется. Не знаю, почему я не увидел их в первый раз, когда попробовал.

person Gregory Kuhn    schedule 25.01.2021