|
загрузка программы, с нужного места |
|
|
|
Sep 15 2008, 10:27
|

Участник

Группа: Свой
Сообщений: 32
Регистрация: 6-06-08
Из: Украина, Одесса
Пользователь №: 38 096

|
В общем, вопрос просто как заставить грузиться программу в микроконтроллере с нужного мне места (точнее быть увереным что сначала запускается прогрмамма) (при условии, что в программе есть запись во флешь)? Просто при запуске устройства программа не каждый раз функционирует, а именно включил-выключил устройство, то работает, то нет. На устройстве есть ключ, переключая который вы включаем светодиод и вкл. бипер, затем принимаем данные и записываем во флешь. По ощущением просто программа запускается в произвольном месте. Почему я думаю что это программа? Да потому-то если убрать запись во флешь и оставить вектора прерываний на своих местах, а не переносить в область NRWW, тогда все выполняется нормально (за исключением записи естественно  ) З.Ы. я понимаю что написано довольно "расплывчато" но все же я надеюсь мне кто-нибудь поможет
--------------------
Lasciate ogni speranza voi ch 'entrate. © Dante Alighieri Оставь надежду всяк сюда входящий. © Данте Алигьери TookeR aka Jasfin
|
|
|
|
|
 |
Ответов
(1 - 11)
|
Sep 15 2008, 12:17
|

Участник

Группа: Свой
Сообщений: 32
Регистрация: 6-06-08
Из: Украина, Одесса
Пользователь №: 38 096

|
Цитата(kamil yaminov @ Sep 15 2008, 14:29)  По идее у Вас должен быть адрес с которого начинается выполнение программы, например, нулевой. По этому адресу надо разместить переход на начало программы. Иногда по стартовому адресу находится бутлоадер, который говорит куда прыгнуть в зависимости от разных условий, напрмер, от того как включены перемычки. Ну и еще, какой контроллер используется. контролер 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
--------------------
Lasciate ogni speranza voi ch 'entrate. © Dante Alighieri Оставь надежду всяк сюда входящий. © Данте Алигьери TookeR aka Jasfin
|
|
|
|
|
Sep 15 2008, 14:45
|

Участник

Группа: Свой
Сообщений: 32
Регистрация: 6-06-08
Из: Украина, Одесса
Пользователь №: 38 096

|
Цитата(Сергей Борщ @ Sep 15 2008, 17:22)  А вы не забыли во втором случае запрограммировать фуз BOOTRST? иначе как контроллер узнает, что ветор старта вы ему перенесли? Полность согласен! ... нет придела человеческой невнимательности  Стало работать довольно стабильно НО (как всегда есть это но) иногда слитает некоторые значения флешь памяти,
(желтым отмечены "слетевшая" часть памяти) из-за чего бы это могло быть?
Сообщение отредактировал TookeR - Sep 15 2008, 14:46
--------------------
Lasciate ogni speranza voi ch 'entrate. © Dante Alighieri Оставь надежду всяк сюда входящий. © Данте Алигьери TookeR aka Jasfin
|
|
|
|
|
Sep 17 2008, 08:12
|

Участник

Группа: Свой
Сообщений: 32
Регистрация: 6-06-08
Из: Украина, Одесса
Пользователь №: 38 096

|
Цитата(Сергей Борщ @ Sep 15 2008, 18:06)  Похоже она не слетела, а не записалась. Ну с самых первых моментов она же была записана туда ... а после нескольких перезапусков (вкл. выкл. питания) оказываеться стертой/ незаписаной.
--------------------
Lasciate ogni speranza voi ch 'entrate. © Dante Alighieri Оставь надежду всяк сюда входящий. © Данте Алигьери TookeR aka Jasfin
|
|
|
|
|
Sep 17 2008, 09:01
|

Участник

Группа: Свой
Сообщений: 32
Регистрация: 6-06-08
Из: Украина, Одесса
Пользователь №: 38 096

|
я тоже так что BOD отключен ... проверил включен был ... взял другую микросхему провожу тесты.
--------------------
Lasciate ogni speranza voi ch 'entrate. © Dante Alighieri Оставь надежду всяк сюда входящий. © Данте Алигьери TookeR aka Jasfin
|
|
|
|
Guest_Цыкетчик_*
|
Sep 17 2008, 19:41
|
Guests

|
Цитата(Сергей Борщ @ Sep 17 2008, 12:18)  при просадке питания начинает выполнять случайные участки кода и попадает на процедуру стирания. Ну я на этот случай непосредственно перед SPM делаю проверку было ли санкционировано выполнение SPM команды. И для безопасности у меня в программе всего одна команда SPM
Сообщение отредактировал Цыкетчик - Sep 17 2008, 19:44
|
|
|
|
|
Sep 18 2008, 12:51
|

Участник

Группа: Свой
Сообщений: 32
Регистрация: 6-06-08
Из: Украина, Одесса
Пользователь №: 38 096

|
Слетания флеши больше не происходит на новом микрике, но все же тот эффект (писк бипера и/или не реагирования на переключения ключа) остались, хотя стали намного - намного реже! ... Как же от них избавиться полностью ?
--------------------
Lasciate ogni speranza voi ch 'entrate. © Dante Alighieri Оставь надежду всяк сюда входящий. © Данте Алигьери TookeR aka Jasfin
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|