Всем салют! Есть нетривиальная задача: существенная часть RO данных выгружена во внешнюю память. Для справки, это псевдографические меню и строковые литералы (типа const char []), которые юзер видит, когда коннектиться к железяке через терминал.
Как отлаживать такой проект? Напрашивается сама собой идея: делается отдельный проект, в котором компилируются все строки, потом программатором или бутлоадером (я использую второй вариант) заливается в EPROM, затем в основном проекте пишется хедер файл, в котором дефайнятся адреса, куда эти строки легли в EPROM.
Неудобно. Много ручной работы.
Можно вставить данные в основной проект и написать на дельфях или плюсах примочку, которая после сборки, но перед дебагом, будет парсить линкеровский map и загружать из параллельно сформированного HEXа через бутлоадер эти данные, а уж потом будет запущен дебаггер, который "в подготовленной почве" запустит отладку. Эта идея самая привлекательная, но есть одна неприятность - дебаггер "видит" эти лишние данные и пытается их тоже как-то грузить через JTAG, в результате чего имеется масса предупреждений. причём в стандартном FLASH лоадере прописано ограничение на адреса 0000-7FFF, но похоже это загрузчик игнорирует.
Третий путь (самый правильный и долгий) - написать свой FLASH лоадер, но я не нашёл пока нигде Jlink'овскую dll и соответствующий хедер. Лицензия у сеггера стоит 495 баков за SDK, и я тоже пока как-то не совсем готов выложить эти денежки.
Какие идеи?
Сообщение отредактировал IgorMarx - Apr 18 2009, 17:39
|