Цитата(DO_SL @ Mar 21 2011, 13:50)

. Если у кого-то есть мысли по этому поводу, отпишитесь.
Спасибо.
Какое количество глобальных переменных, структур, буферов, инициализированных констант и строк в Вашей программе? Учитывая то, что RAM памяти у контроллера f36x много, были случаи, когда при выполнении инициализации всего этого "добра", до выполнения команд секции main успевал срабатывать WDT.
В этом случае, самое безопасное найти в коде файла STARTUP.A51 (лучше если он скопирован в директорию проекта) метку STARTUP1 и после нее вставить вот такую строчку.
Код
STARTUP1:
IF IDATALEN <> 0
; Stop WDT
ANL 0xD9,#0xBF ; WDTE = 0 (clear watchdog timer // enable)
Если WDT нужен в основной программе, то в секции main перед началом инициализации периферии его включаем.
Прыжки "не ведомо куда" в отладчике Keil-а при разбиении проекта на несколько файлов, могут быть из-за неопределенности в отображении смешанного кода (листинг + ассемблер). В этом случае можно отслеживать ход выполнения команд по дизасемблеру. Хотя это не наглядно, а для большинства "программистО" незнакомых с ассемблером, просто катастрофа. Тогда можно, "наступив на горло правильной песне"

, свалить все в один сишный файл. Но я думаю, что лучше все же выучить ассемблер, чем потом поддерживать "километровый" код.