TookeR 0 15 сентября, 2008 Опубликовано 15 сентября, 2008 · Жалоба В общем, вопрос просто как заставить грузиться программу в микроконтроллере с нужного мне места (точнее быть увереным что сначала запускается прогрмамма) (при условии, что в программе есть запись во флешь)? Просто при запуске устройства программа не каждый раз функционирует, а именно включил-выключил устройство, то работает, то нет. На устройстве есть ключ, переключая который вы включаем светодиод и вкл. бипер, затем принимаем данные и записываем во флешь. По ощущением просто программа запускается в произвольном месте. Почему я думаю что это программа? Да потому-то если убрать запись во флешь и оставить вектора прерываний на своих местах, а не переносить в область NRWW, тогда все выполняется нормально (за исключением записи естественно :)) З.Ы. я понимаю что написано довольно "расплывчато" но все же я надеюсь мне кто-нибудь поможет :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kamil_yaminov 1 15 сентября, 2008 Опубликовано 15 сентября, 2008 · Жалоба По идее у Вас должен быть адрес с которого начинается выполнение программы, например, нулевой. По этому адресу надо разместить переход на начало программы. Иногда по стартовому адресу находится бутлоадер, который говорит куда прыгнуть в зависимости от разных условий, напрмер, от того как включены перемычки. Ну и еще, какой контроллер используется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 15 сентября, 2008 Опубликовано 15 сентября, 2008 · Жалоба Для начала нужно указать тип МК. Выполнение программы у большинства МК начинается с адреса, указанного по вектору сброса. Если у вас сброс формируется нестабильно (например, отсутствует супервизор, формирующий сигнал сброса, а встроенной в МК схемы BOR/BOD нету), то может быть все что угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TookeR 0 15 сентября, 2008 Опубликовано 15 сентября, 2008 · Жалоба По идее у Вас должен быть адрес с которого начинается выполнение программы, например, нулевой. По этому адресу надо разместить переход на начало программы. Иногда по стартовому адресу находится бутлоадер, который говорит куда прыгнуть в зависимости от разных условий, напрмер, от того как включены перемычки. Ну и еще, какой контроллер используется. контролер ATmega8. Бутлоадер у него начинаеться с адресов 1С00 (BOOTSZ=00). если использовать стандартный файл настроек то lnkm8s.xcl -Z(CODE)INTVEC=0-25 -H1895 -h(CODE)0-25 -Z(CODE)INITTAB =26-1FFF -Z(CODE)CODE=26-1FFF -Z(CODE)TINY_FLASH=1C26-1FFF -Z(CODE)CHECKSUM#1FFF То программа работает прекрасно (за исключением записи во флешь) … Но если перенести вектора прерываний(даже без записи) в NRWW область то тут начинаются проблемы(описанные выше) … -Z(CODE)INTVEC=1C00-1C25 -H1895 -h(CODE)1C00-1C25 -Z(CODE)INITTAB=0-1FFF -Z(CODE)CODE=0-1FFF -Z(CODE)TINY_FLASH=1C26-1FFF -Z(CODE)CHECKSUM#1FFF Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 15 сентября, 2008 Опубликовано 15 сентября, 2008 · Жалоба Но если перенести вектора прерываний(даже без записи) в NRWW область то тут начинаются проблемы(описанные выше) …А вы не забыли во втором случае запрограммировать фуз BOOTRST? иначе как контроллер узнает, что ветор старта вы ему перенесли? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TookeR 0 15 сентября, 2008 Опубликовано 15 сентября, 2008 (изменено) · Жалоба А вы не забыли во втором случае запрограммировать фуз BOOTRST? иначе как контроллер узнает, что ветор старта вы ему перенесли? Полность согласен! ... нет придела человеческой невнимательности :( Стало работать довольно стабильно НО (как всегда есть это но) иногда слитает некоторые значения флешь памяти, (желтым отмечены "слетевшая" часть памяти) из-за чего бы это могло быть? Изменено 15 сентября, 2008 пользователем TookeR Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 15 сентября, 2008 Опубликовано 15 сентября, 2008 · Жалоба (желтым отмечены "слетевшая" часть памяти) из-за чего бы это могло быть?Похоже она не слетела, а не записалась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TookeR 0 17 сентября, 2008 Опубликовано 17 сентября, 2008 · Жалоба Похоже она не слетела, а не записалась. Ну с самых первых моментов она же была записана туда ... а после нескольких перезапусков (вкл. выкл. питания) оказываеться стертой/ незаписаной. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 17 сентября, 2008 Опубликовано 17 сентября, 2008 · Жалоба а после нескольких перезапусков (вкл. выкл. питания) оказываеться стертой/ незаписаной.Супервизор (BOD) включен? Похоже, ваша программа при просадке питания начинает выполнять случайные участки кода и попадает на процедуру стирания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TookeR 0 17 сентября, 2008 Опубликовано 17 сентября, 2008 · Жалоба я тоже так что BOD отключен ... проверил включен был ... взял другую микросхему провожу тесты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость Цыкетчик 17 сентября, 2008 Опубликовано 17 сентября, 2008 (изменено) · Жалоба при просадке питания начинает выполнять случайные участки кода и попадает на процедуру стирания. Ну я на этот случай непосредственно перед SPM делаю проверку было ли санкционировано выполнение SPM команды. И для безопасности у меня в программе всего одна команда SPM Изменено 17 сентября, 2008 пользователем Цыкетчик Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TookeR 0 18 сентября, 2008 Опубликовано 18 сентября, 2008 · Жалоба Слетания флеши больше не происходит на новом микрике, но все же тот эффект (писк бипера и/или не реагирования на переключения ключа) остались, хотя стали намного - намного реже! ... Как же от них избавиться полностью ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться