Hi,

Thanks for response.

On Wed, 2009-04-01 at 14:20 +0200, Roberto Padovani wrote:
> I am doing the same thing with our old projects, going to MSP430F2410.
> Are you using a MSP430X-patched mspgcc built from the latest CVS source ?

Yes, I use the latest CVS.

> If so, you also have to fix a "bug" in the libc, by adding this line
> in your main.c:
> 
> void __low_level_init(void);
> 
> __attribute__((naked, section(".init3"))) void __low_level_init(void)
> {
>  WDTCTL = WDTPW + WDTHOLD;
> // any other low level initialization you want
> }

Shoud I put all hardware initiaization into this function? Configuring
interrupts, etc?

And if it is a bug, may be it make sense to patch the libc?


> If you don't overwrite it, the __low_level_init which is insiede the
> libc will be used.
> And the problem is that in the libc the WDTCTL address is the 0x0120
> of the old MSP430s; the newest ones with MSP430X architecture have the
> WDTCTL at the address 0x015C. The header files for using in your
> program are correct, but they don't affect that single line in the
> libc.

> It took me a while to understand why my firmware was continuosly
> resetting itself :-/

Hm, but it does not seems like firmware is continousy resetting. It
seems like it works, except RX/TX interrupts. 

I run the code below under IAR and CrossWorks, both works ok. 

But for some reasons, using them it's a big pain wil require significant
code rewriting.


> R#
> 
> 2009/4/1 Dmitry Zuikov <[email protected]>:
> > Greetings,
> >
> > Could anybody provide an assistance (not for free, of course) porting
> > our application from MSP430F1612 to MSP430F2418 ?
> >
> > I faced problems even when I try to launch an example from TI site
> > adapted for gcc (code is below).
> >
> > This code works ok under IAR, but there is no any response in port under
> > MSPGCC.
> >
> > I built mspgcc from cvs.
> >
> > code (adapted  MSP430x261x_uscia0_uart_03.c )
> > //******************************************************************************
> > //   MSP430x26x Demo - USCI_A0, Ultra-Low Pwr UART 9600 Echo ISR, 32kHz
> > ACLK
> > //
> > //   Description: Echo a received character, RX ISR used. Normal mode is
> > LPM3,
> > //   USCI_A0 RX interrupt triggers TX Echo.
> > //   ACLK = BRCLK = LFXT1 = 32768Hz, MCLK = SMCLK = DCO ~1.045MHz
> > //   Baud rate divider with 32768Hz XTAL @9600 = 32768Hz/9600 = 3.41
> > //   //* An external watch crystal is required on XIN XOUT for ACLK *//
> > //
> > //              MSP430F261x/241x
> > //             -----------------
> > //         /|\|              XIN|-
> > //          | |                 | 32kHz
> > //          --|RST          XOUT|-
> > //            |                 |
> > //            |     P3.4/UCA0TXD|------------>
> > //            |                 | 9600 - 8N1
> > //            |     P3.5/UCA0RXD|<------------
> > //
> > //   B. Nisarga
> > //   Texas Instruments Inc.
> > //   September 2007
> > //   Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version:
> > 3.42A
> > //******************************************************************************
> > #include  "msp430x24x.h"
> > #include <signal.h>
> > #include <stdlib.h>
> >
> > void main(void)
> > {
> >  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
> >  P3OUT &= ~(BIT4+BIT5);
> >  P3SEL = 0x30;                             // P3.4,5 = USCI_A0 TXD/RXD
> >  UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK
> >  UCA0BR0 = 0x03;                           // 32kHz/9600 = 3.41
> >  UCA0BR1 = 0x00;                           //
> >  UCA0MCTL = UCBRS1 + UCBRS0;               // Modulation UCBRSx = 3
> >  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state
> > machine**
> >  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX
> > interrupt
> >
> >  //eint();
> >  //__bis_SR_register(LPM3_bits + GIE);       // Enter LPM3, interrupts
> > enabled
> >  for(;;);
> > }
> >
> > // Echo back RXed character, confirm TX buffer is ready first
> > interrupt ( USCIAB0RX_VECTOR ) wakeup USCI0RX_ISR(void)
> > {
> >  while (!(IFG2&UCA0TXIFG));                 // USCI_A0 TX buffer ready?
> >  UCA0TXBUF = UCA0RXBUF;                     // TX -> RXed character
> > }
> >
> >
> >
> >
> > ------------------------------------------------------------------------------
> > _______________________________________________
> > Mspgcc-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/mspgcc-users
> >
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> Mspgcc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users


Reply via email to