-
- В очистке регистров, кстати, я так и не увидел никакого смысла. Только лишнюю работу выполняет и память занимает этот макрос. Хотя, может, у вас свои соображения... - mazur(05.10.2011 01:56)
- В отличие от Studio которая автоматом чистит все регистры и память при запуске или по RESET - в жизни этого не происходит. Поэтому если у Вас произошёл RESET по какому-то условию , то в регистрах может сохраниться информация . И если у Вас есть ilyaul(92 знак., 05.10.2011 12:23)
- Основные аргументы высказаны. Остается добавить. Если произошел сброс-это уже ненормально. И если сброс произошел, то и нечего устройству дальше работать, пока не поубивало кого-нибудь. Нужно понять почему. Если косяк программы-написать функции mazur(133 знак., 06.10.2011 09:49)
- Сбросы бывают разные. Надо посмотреть в MCUSR, разобраться. "нечего устройству дальше работать", а устройство - усилитель тормоза, или руля... - maik-vs(07.10.2011 13:04)
- Да уже разобрались, нужен сброс или нет. :) MCUSR и использую. - mazur(07.10.2011 13:06)
- верить можно только холодному старту - Vit(07.10.2011 13:53)
- Подробнее можно? - mazur(07.10.2011 14:10)
- Если пришел теплый старт (сброс после холодного старта), то определить, на каком этапе выполнения программы это произошло с помощью аж кучи флагов в MCUSR в общем случае не представляется возможным. Т.е. всё-равно нужны танцы с бубном. - Vit(07.10.2011 15:53)
- MCUSR я использую только для того, чтобы понять, от чего произошел сброс. Так как последняя программа не так уж проста, я задействовал сторожевик и навтыкал кучу закладок. Это позволило мне на порядки быстрее искать косяки в программе. - mazur(07.10.2011 16:54)
- А в релизе чем это поможет? - Vit(07.10.2011 17:17)
- А в релизе кристалл в случае некорректной работы будет уходить в глухое зацикливание. Теплым стартом займусь позже, доверюсь Владимиру. При холодном старте старте инициализируется переменная. При теплом старте переменная покажет, что холодный mazur(53 знак., 07.10.2011 17:53, ссылка)
- Не был, а БЫВАЛ:) А "глухое зацикливание", ИМХО, обычно ассоциируется с неработающим устройством, звонящими заказчиками и сопутствующими проблемами. - Vit(07.10.2011 18:35 - 18:38, ссылка)
- Нужно мигать красной лампочкой 4 раза по 13 раз (код ошибки), пищать столько же раз, показывать синий (белый, чёрный...) экран смерти (если есть на чём) и перезапускаться с начала. После перезапуска нужно иметь возможность в уже работающей fk0(90 знак., 07.10.2011 18:41)
- Ну что-то такое и задумано. - mazur(07.10.2011 19:05)
- Нужно мигать красной лампочкой 4 раза по 13 раз (код ошибки), пищать столько же раз, показывать синий (белый, чёрный...) экран смерти (если есть на чём) и перезапускаться с начала. После перезапуска нужно иметь возможность в уже работающей fk0(90 знак., 07.10.2011 18:41)
- Не был, а БЫВАЛ:) А "глухое зацикливание", ИМХО, обычно ассоциируется с неработающим устройством, звонящими заказчиками и сопутствующими проблемами. - Vit(07.10.2011 18:35 - 18:38, ссылка)
- А в релизе кристалл в случае некорректной работы будет уходить в глухое зацикливание. Теплым стартом займусь позже, доверюсь Владимиру. При холодном старте старте инициализируется переменная. При теплом старте переменная покажет, что холодный mazur(53 знак., 07.10.2011 17:53, ссылка)
- А в релизе чем это поможет? - Vit(07.10.2011 17:17)
- MCUSR я использую только для того, чтобы понять, от чего произошел сброс. Так как последняя программа не так уж проста, я задействовал сторожевик и навтыкал кучу закладок. Это позволило мне на порядки быстрее искать косяки в программе. - mazur(07.10.2011 16:54)
- Если пришел теплый старт (сброс после холодного старта), то определить, на каком этапе выполнения программы это произошло с помощью аж кучи флагов в MCUSR в общем случае не представляется возможным. Т.е. всё-равно нужны танцы с бубном. - Vit(07.10.2011 15:53)
- Подробнее можно? - mazur(07.10.2011 14:10)
- верить можно только холодному старту - Vit(07.10.2011 13:53)
- Да уже разобрались, нужен сброс или нет. :) MCUSR и использую. - mazur(07.10.2011 13:06)
- Так, на личности не нужно переходить. Согласен, забыл, что есть устройства работающие от сброса. Но это изначально заложено в устройство. И приняты соответствующие меры. - mazur(06.10.2011 11:18)
- Хм, опять не прав :) Я вводил эту фичу как раз из-за ESD. Помеха прошла, устройство сбросилось и дальше работает. - Vladimir Ljaschko(06.10.2011 12:39)
- Если не секрет, как вы это решили? Я как-то пробовал заняться этим вопросом. Один электронщик мне рассказывал, что сохранял нужные данные в EEPROM. Хорошо, пусть так. Но сброс может произойти в момент записи. Косяк. Поэкспериментировать с помехами mazur(169 знак., 06.10.2011 13:07)
- Эксперименты показали, что ОЗУ сохраняет данные, иначе шансов обеспечить быстрое(практически незаметное для пользователя) восстановление нет. - Vladimir Ljaschko(06.10.2011 13:23)
- Спасибо. - mazur(06.10.2011 13:36)
- Все-таки ОЗУ... Наметки были такие. Проверка\инициализация значения в ОЗУ. - mazur(06.10.2011 13:35)
- Эксперименты показали, что ОЗУ сохраняет данные, иначе шансов обеспечить быстрое(практически незаметное для пользователя) восстановление нет. - Vladimir Ljaschko(06.10.2011 13:23)
- Если не секрет, как вы это решили? Я как-то пробовал заняться этим вопросом. Один электронщик мне рассказывал, что сохранял нужные данные в EEPROM. Хорошо, пусть так. Но сброс может произойти в момент записи. Косяк. Поэкспериментировать с помехами mazur(169 знак., 06.10.2011 13:07)
- Хм, опять не прав :) Я вводил эту фичу как раз из-за ESD. Помеха прошла, устройство сбросилось и дальше работает. - Vladimir Ljaschko(06.10.2011 12:39)
- :) Недавно девайс выпустил на C8051F130, уходящем штатно в режим STOP. Из STOP "будится" только ресетом. И то, что касается функциональности, не нужно смешивать со своим отчаянным пониманием прихода северного пушного зверька - Vit(06.10.2011 11:14)
- Только не нужно глубокомысленных советов. Знаю как минимум два устройства, выпущенных около 10К, работающих после сброса и одно из устройств - мое ;) - Vladimir Ljaschko(06.10.2011 10:14)
- Это не "глубокомысленный совет", а мое мнение. - mazur(06.10.2011 10:17)
- Сбросы бывают разные. Надо посмотреть в MCUSR, разобраться. "нечего устройству дальше работать", а устройство - усилитель тормоза, или руля... - maik-vs(07.10.2011 13:04)
- Ну, обычно при запуске программы все необходимые регистры инициализируются требуемыми значениями. Bill(10 знак., 06.10.2011 07:26)
- Да, особенно вот в таких операциях 24/16 32*8 Y*2^X где Y и X тоже надо еще вычислить и Y - отнюдь не 8 бит. ilyaul(263 знак., 07.10.2011 13:45)
- Опять же, зачем тебе очистка регистров? Если необходимые регистры инициализируются перед использованием. - mazur(08.10.2011 08:52)
- Да, особенно вот в таких операциях 24/16 32*8 Y*2^X где Y и X тоже надо еще вычислить и Y - отнюдь не 8 бит. ilyaul(263 знак., 07.10.2011 13:45)
- Ты и туалетную бумагу перед употреблением небось стираешь? - MBedder(06.10.2011 04:40)
- :))) - mazur(06.10.2011 09:41)
- Основные аргументы высказаны. Остается добавить. Если произошел сброс-это уже ненормально. И если сброс произошел, то и нечего устройству дальше работать, пока не поубивало кого-нибудь. Нужно понять почему. Если косяк программы-написать функции mazur(133 знак., 06.10.2011 09:49)
- В отличие от Studio которая автоматом чистит все регистры и память при запуске или по RESET - в жизни этого не происходит. Поэтому если у Вас произошёл RESET по какому-то условию , то в регистрах может сохраниться информация . И если у Вас есть ilyaul(92 знак., 05.10.2011 12:23)
- У меня так: mazur(2731 знак., 05.10.2011 01:51)
- А можно узнать, зачем запоминать контекст в программе на ассемблере?! maik-vs(1677 знак., 05.10.2011 11:19)
- В очистке регистров, кстати, я так и не увидел никакого смысла. Только лишнюю работу выполняет и память занимает этот макрос. Хотя, может, у вас свои соображения... - mazur(05.10.2011 01:56)