реклама на сайте
подробности

 
 
> Как осуществить Software Reset на UC3B0256?
Maximm
сообщение Apr 13 2011, 14:14
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 7-10-07
Из: Санкт-Петербург
Пользователь №: 31 137



Уважаемые Форумчане, что-то не могу найти в даташите, как сделать software reset на UC3B0256, чтобы сбросилась вся периферии и оперативная память. Пока кроме как запустить ВочДог ничего не придумал....

В Cortex'e то остановкой одного битика делался ресет, а тут я что-то такого не нашел....


--------------------
Если работает через раз - значит не работает!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Storejet
сообщение May 18 2011, 07:10
Сообщение #2





Группа: Участник
Сообщений: 12
Регистрация: 17-03-11
Пользователь №: 63 666



Вообще в файле compiler.h видел такую вещь:


/*! \brief Resets the CPU by software.
*
* \warning It shall not be called from the CPU application mode.
*/
#if (defined __GNUC__)
#define Reset_CPU() \
(\
{\
__asm__ __volatile__ (\
"lddpc r9, 3f\n\t"\
"mfsr r8, %[SR]\n\t"\
"bfextu r8, r8, %[SR_M_OFFSET], %[SR_M_SIZE]\n\t"\
"cp.w r8, 0b001\n\t"\
"breq 0f\n\t"\
"sub r8, pc, $ - 1f\n\t"\
"pushm r8-r9\n\t"\
"rete\n"\
"0:\n\t"\
"mtsr %[SR], r9\n"\
"1:\n\t"\
"mov r0, 0\n\t"\
"mov r1, 0\n\t"\
"mov r2, 0\n\t"\
"mov r3, 0\n\t"\
"mov r4, 0\n\t"\
"mov r5, 0\n\t"\
"mov r6, 0\n\t"\
"mov r7, 0\n\t"\
"mov r8, 0\n\t"\
"mov r9, 0\n\t"\
"mov r10, 0\n\t"\
"mov r11, 0\n\t"\
"mov r12, 0\n\t"\
"mov sp, 0\n\t"\
"stdsp sp[0], sp\n\t"\
"ldmts sp, sp\n\t"\
"mov lr, 0\n\t"\
"lddpc pc, 2f\n\t"\
".balign 4\n"\
"2:\n\t"\
".word _start\n"\
"3:\n\t"\
".word %[RESET_SR]"\
:\
: [SR] "i" (AVR32_SR),\
[SR_M_OFFSET] "i" (AVR32_SR_M_OFFSET),\
[SR_M_SIZE] "i" (AVR32_SR_M_SIZE),\
[RESET_SR] "i" (AVR32_SR_GM_MASK | AVR32_SR_EM_MASK | (AVR32_SR_M_SUP << AVR32_SR_M_OFFSET))\
);\
}\
)
Go to the top of the page
 
+Quote Post
Maximm
сообщение Jun 16 2011, 09:34
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 7-10-07
Из: Санкт-Петербург
Пользователь №: 31 137



Цитата(Storejet @ May 18 2011, 11:10) *
Вообще в файле compiler.h видел такую вещь:


/*! \brief Resets the CPU by software.
*
* \warning It shall not be called from the CPU application mode.
*/
#if (defined __GNUC__)
#define Reset_CPU() \
(\


Этот макрос не сбросит периферию МК, да и "It shall not be called from the CPU application mode".......


--------------------
Если работает через раз - значит не работает!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016