I used J-TAG to Program the Evaluation board of TI. This Evaluation Board is a single point electricity meter. I calibrate one day and the next day it is no more calibrated!
Not to mention that I have the following warning:
The stack pointer for stack 'Stack' (currently Memory:0x0) is outside the stack range (Memory:0x20B0 to Memory:0x2100)
My info-mem is as follows.
// ************************************************ // // XLINK configuration file for MSP430F47197 // // Copyright 1996-2010 IAR Systems AB // // $Revision: $ // // ************************************************ // --------------------------------------------------------- // Description // // // Usage: // // xlink [file file ...] -f lnk430f47197.xcl // // ----------------------------------------------- // Device summary // // // Core: MSP430X // // Interrupt vectors: 32 // // Peripheral units: 0-001FF // // Information memory (FLASH): 01000-010FF // // Read/write memory (RAM): 01100-020FF // // Read-only memory (FLASH): 02100-0FFFF // 10000-1FFFF // // ----------------------------------------------- // Segments // // ------------------------------------- // Data read/write segments (RAM) // // // The following segments are available for both // the DATA16 and DATA20 segment groups. // // segment Usage // ------- -------------------------- // DATA<nn>_Z Data initialized to zero // DATA<nn>_I Data initialized by copying from DATA<nn>_ID // DATA<nn>_N Data defined using __no_init // DATA<nn>_HEAP The heap used by 'malloc' and 'free' // // segment Usage // ------- -------------------------- // CSTACK Runtime stack // TLS16_I Thread-local storage for main thread // (require custom runtime library) // // ------------------------------------- // Program and data read-only segments (FLASH) // // // The following segments are available for both // the DATA16 and DATA20 segment groups. // // segment Usage // ------- -------------------------- // DATA<nn>_C Constant data, including string literals // DATA<nn>_ID initializers for DATA<nn>_I // // segment Usage // ------- -------------------------- // INFO Information memory // INFOA Information memory, bank A // INFOB Information memory, bank B // INFOC Information memory, bank C // INFOD Information memory, bank D // CSTART Program startup code // CODE Program code // ISR_CODE Program code for interrupt service routines // DIFUNCT Dynamic initialization vector used by C++ // CHECKSUM Checksum byte(s) generated by the -J option // INTVEC Interrupt vectors // RESET The reset vector // TLS16_ID Thread-local initializers for main thread // (require custom runtime library) // // Notes: // // * The segments CSTART, ISR_CODE, and DIFUNCT, as well as the segments in // the DATA16 and TLS16 segment groups must be placed in in the range // 0000-FFFD. // // * The INFOx and INFO segments overlap, this allows data either to be // placed in a specific bank or anywhere in the info memory. // // * The INTVEC and RESET segments overlap. This allows an application to // either use the reset vector provided by the runtime library, or // provide a reset function by defining an interrupt function associated // with the reset vector. // // --------------------------------------------------------- // Configuation // // ----------------------------------------------- // Stack and heap sizes // // Uncomment for command line use //-D_STACK_SIZE=80 //-D_DATA16_HEAP_SIZE=80 //-D_DATA20_HEAP_SIZE=80 // ----------------------------------------------- // Define cpu // -cmsp430 // ----------------------------------------------- // Support for placing functions in read/write memory // -QCODE_I=CODE_ID // --------------------------------------------------------- // Placement directives // // ----------------------------------------------- // Read/write memory // -Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I,DATA16_HEAP+_DATA16_HEAP_SIZE=1100-20FF -Z(DATA)CODE_I -Z(DATA)DATA20_I,DATA20_Z,DATA20_N,DATA20_HEAP+_DATA20_HEAP_SIZE -Z(DATA)CSTACK+_STACK_SIZE# // ----------------------------------------------- // Read-only memory // // ------------------------------------- // Information memory // -Z(CONST)INFO=8000-9000 -Z(CONST)INFOA=10C0-10FF -Z(CONST)INFOB=1080-10BF -Z(CONST)INFOC=1040-107F -Z(CONST)INFOD=1000-103F // ------------------------------------- // Low memory 0-0FFFF // // --------------------------- // Code // -Z(CODE)CSTART,ISR_CODE=2100-FFBF // --------------------------- // Constant data // -Z(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=2100-FFBF // ------------------------------------- // All memory 0-FFFFF // // --------------------------- // Code // -P(CODE)CODE=2100-FFBF,10000-1FFFF -Z(CODE)CODE_ID // --------------------------- // Constant data // -Z(CONST)DATA20_C,DATA20_ID=2100-FFBF,10000-1FFFF // ------------------------------------- // Interrupt vectors // -Z(CODE)INTVEC=FFC0-FFFF -Z(CODE)RESET=FFFE-FFFF
Am I shorten in memory? If yes, why it lets me get him calibrated and lose it the day after!
Any iidea?

