paskal 1 10 октября, 2014 Опубликовано 10 октября, 2014 · Жалоба Есть старый проект для MCS-51, причем написан на ассемблере. Потребовалось в этом проекте кое что поменять. И захотел я под это дело переписать его на Си. Но тут возникла загвоздка. Используется в этой программе один прием детектирования резета. В некоторую определенную область ОЗУ пишется определенная сигнатура. При старте этот кусок памяти проверяется на сравнение с сигнатурой. Если совпадение, то считается что процессор стартовал после подачи резета. Если несовпадение то был старт по включению питания. И вот в чем проблема. Компилятор KEIL делает в самом начале программы заполнение ОЗУ нулями. То есть этот прием детектирования резета не работает! Необходимо как то отключить очистку памяти. Железо менять нельзя - устройство в серии, можно только программу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 11 октября, 2014 Опубликовано 11 октября, 2014 · Жалоба Неужели "в гугле забанили"? ;) Первая же ссылка http://www.keil.com/forum/590/no-init-data-area/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться