Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: контролер после питания в сбросе
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
addi
Здравствуйте
Некоторое время назад бился над записью во Flash, в итоге победил, но вылезло следующее:
После включения питания контроллер время от времени в сбросе до тех пор пока еще раз его не пересробсишь по питанию, сброс от программатора не помогает
Подозрения только на последствия редактирования *.xcl файла конфигурации для работы с записью во Flash функциями перенесенными в боот область

Прошу подсказать кто знает что не так я сделал в файле конфигурации что теперь указатель векторая сброса куда перемещается
Цитата
/* - lnkxm32d4s.xcl -
*
* XLINK command file for the ICCAVR C-compiler using the --cpu=xm32d4, -ms
* options. Segments are defined for an ATxmega32D4.
*
* Usage: xlink your_file(s) -f lnkxm32d4s
*
* File version: $Revision$
*/

/*====================================================*/
/*
* Constants used down below,
* Do not change these lines,
* if it is not stated otherwise
*/

/* Code (flash) segments */
-D_..X_INTVEC_SIZE=16C /* 4 bytes * 91 vectors */

-D_..X_APPLICATION_SIZE=8000
-D_..X_BOOT_SIZE=1000
-D_..X_APPLICATION_TABLE_SIZE=1000

-D_..X_FLASH_END=(_..X_APPLICATION_SIZE+_..X_BOOT_SIZE-1)
-D_..X_APPLICATION_START=_..X_INTVEC_SIZE
-D_..X_APPLICATION_END=(_..X_FLASH_END-_..X_BOOT_SIZE-_..X_APPLICATION_TABLE_SIZE)
-D_..X_APPLICATION_TABLE_START=(_..X_APPLICATION_END+1)
-D_..X_APPLICATION_TABLE_END=(_..X_FLASH_END-_..X_BOOT_SIZE)
-D_..X_BOOT_START=(_..X_APPLICATION_TABLE_END+1)
-D_..X_BOOT_END=_..X_FLASH_END

-D_..X_FLASH_NEND=_..X_FLASH_END /* End of near flash memory */


/* Internal data memory */

-D_..X_SRAM_BASE=2000 /* Start of ram memory */
-D_..X_SRAM_END=2FFF /* End of ram memory */

-D_..X_SRAM_TBASE=0 /* Start of tiny ram memory */
-D_..X_SRAM_TSIZE=0 /* Size of the tiny ram memory */

/* Internal EEPROM */
-D_..X_EEPROM_START=0
-D_..X_EEPROM_END=3FF /* End of eeprom memory */
/*====================================================*/


/*
* Modify the lines below to alter the size of the RSTACK, CSTACK and HEAP
* segments. These need to be fine tuned to suit your specific application.
* The '_..X_' prefix is used by C-SPY as an indication that the label should
* not be displayed in the dissassembly window.
*/
//-D_..X_CSTACK_SIZE=200 /* 512 bytes for auto variables and saved registers. */
//-D_..X_RSTACK_SIZE=40 /* 64 bytes for return addresses, equivalent to 32 */
/* levels of calls, including interrupts. */
//-D_..X_HEAP_SIZE=100 /* 256 bytes of heap. */
//-D_..X_NEAR_HEAP_SIZE=100 /* 256 bytes of heap. */


/*
* The following segments are located in the internal memory of
* the ATxmega32D4. Do not change these lines.
*/

/* Define CPU */
-ca90

/* Code memory */
//-Z(CODE)INTVEC=0-(_..X_INTVEC_SIZE-1)
-Z(CODE)INTVEC=_..X_BOOT_START-(_..X_BOOT_START+_..X_INTVEC_SIZE-1)
//-Z(CODE)INTVEC=8000-836C
/* Fill unused interrupt vector's with RETI */
//-H1895
//-h(CODE)0-_..X_INTVEC_SIZE
//-D_..X_FLASH_BASE=_..X_INTVEC_SIZE


-Z(CODE)NEAR_F=_..X_FLASH_BASE-(_..X_FLASH_BASE+FFFF)
-Z(CODE)SWITCH=_..X_FLASH_BASE-(_..X_FLASH_BASE+FFFF)
-Z(CODE)DIFUNCT=_..X_FLASH_BASE-(_..X_FLASH_BASE+FFFF)
-Z(CODE)FAR_ID=2000-_..X_FLASH_END
-Z(CODE)CODE=_..X_FLASH_BASE-_..X_BOOT_END
-Z(CODE)FARCODE=_..X_FLASH_BASE-_..X_FLASH_END
-Z(CODE)FAR_F=[_..X_FLASH_BASE-_..X_FLASH_END]/10000
-Z(CODE)INITTAB=_..X_FLASH_BASE-_..X_FLASH_END
-Z(CODE)HUGE_F=_..X_FLASH_BASE-_..X_FLASH_END
-Z(CODE)TINY_ID=_..X_FLASH_BASE-_..X_FLASH_END
-Z(CODE)NEAR_ID=_..X_FLASH_BASE-_..X_FLASH_END
-Z(CODE)HUGE_ID=_..X_FLASH_BASE-_..X_FLASH_END

//-Z(CODE)FARCODE=_..X_FLASH_BASE-_..X_FLASH_END

-Z(CODE)APPLICATION=_..X_FLASH_BASE-_..X_APPLICATION_END
-Z(CODE)APPLICATION_TABLE=_..X_APPLICATION_TABLE_START-_..X_APPLICATION_TABLE_END
-Z(CODE)BOOT=_..X_BOOT_START-_..X_BOOT_END

-Z(CODE)CHECKSUM#_..X_FLASH_END



//-Z(FARCODE)NVMVECT=8042
-Z(FARCODE)NVMVECT=8084
-Z(FARCODE)NVMVEC_SEGMENT=82B6

/* Internal data memory */
-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE
-Z(DATA)NEAR_I,NEAR_Z,NEAR_N=_..X_SRAM_BASE-_..X_SRAM_END

-Z(DATA)RSTACK+_..X_RSTACK_SIZE=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_SRAM_BASE-_..X_SRAM_END

-Z(DATA)HEAP+_..X_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)IOSTREAM_N#_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)NEAR_HEAP+_..X_NEAR_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END

/* Internal eeprom memory */
-Z(XDATA)EEPROM_I,EEPROM_N=_..X_EEPROM_START-_..X_EEPROM_END

/*
* FAR_I must have the same offset
* from a 64 Kbyte boundary as FAR_ID
*/
//-Z(DATA)FAR_I=[10000-FFFFFF]/10000

-Z(DATA)FAR_Z,FAR_N,FAR_C=[_..X_SRAM_BASE-FFFFFF]/10000
-Z(DATA)FAR_HEAP+_..X_FAR_HEAP_SIZE=_..X_SRAM_BASE-FFFFFF
-Z(DATA)HUGE_I,HUGE_Z,HUGE_N,HUGE_C=_..X_SRAM_BASE-FFFFFF
-Z(DATA)HUGE_HEAP+_..X_HUGE_HEAP_SIZE=_..X_SRAM_BASE-FFFFFF

// The compiler and linker now automatically includes the smallest set of
// run-time library string formatting support possible for functions such as
// printf/scanf, based on which formatters that are actually used in the
// application. To revert to the old behavior of specifying the level of
// support manually, the default linker files needs to be modified. Please
// see comments inside the linker files for more information on which
// modifications that are needed.
//
// /* Select reduced "printf" support to reduce library size.
// See configuration section in manual concerning printf/sprintf. */
//
// /*Dlib*/
// -e_PrintfSmall=_Printf
//
// /*Clib*/
// -e_small_write=_formatted_write
//
// /*Dlib and Clib*/
// -e_small_write_P=_formatted_write_P
//
// /* Disable floating-point support in "scanf" to reduce library size.
// See configuration section in manual concerning scanf/sscanf */
//
// /*Dlib*/
// -e_ScanfSmall=_Scanf
//
// /*Clib*/
// -e_medium_read=_formatted_read
//
// /*Dlib and Clib*/
// -e_medium_read_P=_formatted_read_P

/* Suppress one warning which is not relevant for this processor */
-w29

/* Code will now reside in file aout.a90 or aout.d90, unless -o is specified */
/* .d90 is the default if debug system is linked (option -r) */
/* .a90 is the default without debugging. Default format is -Fmotorola */


Заранее благодарен
zombi
Цитата(addi @ Nov 19 2012, 11:01) *
После включения питания контроллер время от времени в сбросе до тех пор пока еще раз его не пересробсишь по питанию

Что значит "время от времени"? и что значит "в сбросе"?
После подачи питания процессор работает всегда (если он исправен).
А если иногда он работает не так как бы Вам хотелось то ищите ошибку в коде.
Цитата(addi @ Nov 19 2012, 11:01) *
теперь указатель векторая сброса куда перемещается

Интересно куда же это он может переместиться? biggrin.gif
Проверьте BOOTRST фуз.

Цитата(addi @ Nov 19 2012, 11:01) *
сброс от программатора не помогает

Проверьте RSTDISBL
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.