Отладочный код ARM Eclipse в оперативной памяти.Можно ли увидеть исходный код` - PullRequest
1 голос
/ 28 июня 2019

У меня проблема при попытке отладки кода, который копируется в SRAM и выполняется оттуда.

Код перезаписывает данные - но это делается только во время обновления системы.Разделы, в которых размещен код, правильно определены в файле сценария компоновщика, и отладчик правильно видит адреса.Но когда я вхожу в функцию (а код в ОЗУ правильный), он не связывает исходные файлы с кодом, выполненным в памяти.

Знаете ли вы, как это можно сделать.Отладка кода на C на уровне ассемблера - это не то, что меня радует:)

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 28 июня 2019

Проблема немного глупая. Когда вы вызываете функцию RAM из FLASH (первый вызов должен быть сделан таким образом), это должен делать фанер. Это испортило отладчик. Но при наличии собственного вызывающего макроса (из-за расстояния это нужно делать через указатель) все отлично работает

пример вызова макроса.

#define RAMFCALL(func, ...)   {unsigned (* volatile fptr)() =  (unsigned (* volatile)())func; fptr(__VA_ARGS__);}
...