Здравствуйте.
Уже вторую неделю борюсь с проблемой связанная с отладкой в Микровижене. У меня имеется отладочная плата SK-LPC2378, программатор Ulink. В режиме симуляции программ работает верно и точно. Когда отладку перевожу внутрисхемную, то процессор почему-то стартует с неизвестного места и программа вследствие не работает. Подскажите что можно сделать , может какие то галочки не установил. В эмуляторе без железа все работает.
вот отсюда
напишите простейшую программу "поднять опустить пин" подцепите осцилл или светодиод и отладьте начальную загрузку для внутрисхемной отладки
смотрите в логах - куда грузит. в доках - откуда стартует. в дизасме - что реально компилируется. проверьте стартап-файл проекта - на форумах это самый распространенный совет
Гуглил, гуглил и ничего толком не нагуглил. Использую uVision V4.13a.
Именно такую программу спинами я и пытаюсь отладить. Есть одно замечание: если использовать примеры производителя, отредоктировать под свою программу, то работает. Вот я и думаю, что так , вроде все верно делаю. Может где секретная галочка стоит)), может где-то адрес сброса нужно выстовлять?
Буду проверять стартфаил
...и что может ли быть там ошибка, если в эмуляции все работает как нужно?
проблема лишь в том , что с платой все ни так. после запуска сразу прыгает не понятно куда(((
например для эмулятора прописан один диапазон адресов памяти, а реальное железо имеет память по другим адресам. отладчик грузит бинарник "в пустоту" и пытается запустить с закономерным результатом - это как пример а не руководство к действию
я не знаю вашей системы, в глаза не видел Микровижн и т.б. юлинк - просто транспонирую знания по отладке на ваш случай.
стартап-файл обычно занимается начальными телодвижениями по запуску основной программы пользователя. обычно пишется на асме. в нем указывается раскладка сегментов программы - где будут данные, где сегмент указателей и прочие вещи, которые требуются для жизнедеятельности софтины. для стандалоне это один набор параметров, для проги под Ос вполне может быть другой..
для ловли "на коленке" не зная вашей среды разработки могу лишь посоветовать:
- поискать в логах пакета - куда заливается на плату ваш бинарник и проверить после загрузки "а совпадают ли коды"
- в тех же логах поискать адрес запуска вашего бинарника
- как временный вариант - использовать как "рыбу" для своей работы проект из примеров к пакету, убрав все лишнее (когда придет понимание можно будет вернуться к этому вопросу)
Вчера целый вечер просидел. Так и не нашел ничего, что могло бы исправить ситуацию(((.
А точнее нашел но сделать ничего не смог. А нашел именно то, что проц после старта прыгает на неизвестный высокий адрес. И дальше работает черт знает как, к программе и не заходя.
Ну помогит еще каким-нибудь ценным советом. Не ужели ни у кого такого не было.
Чувствую, что дела в старстапе!
Нет не сдавайтесь. Попробуйте создать проект , потом отладьте его в режиме симуляции. В любой момент программы нажмите ресет. Теперь вопрос: куда переходит ваш процессор после этого, и как дальше работает?
Просто думаю может я какую то битую версию программы использую