Jump to content
dubnet

Wolverine Launchpad

Recommended Posts

Offtopic, but does anyone know if the current Tiva Launchpads are still shipping with experimental silicon?

 

BTW, the combination of experimental silicon and limited number of pins makes this a non-starter for me.  I'll continue waiting until the next version with 40 pins and production silicon.

Share this post


Link to post
Share on other sites

Hi,

 

Just got mine today.

 

I've downloaded slac645.zip that contains driverlib and examples.

 

I'm trying to compile the GrlibDisplay example with gcc, I've patched a few things but there are still error:

~/energia-0101E0010/hardware/tools/msp430/bin/msp430-gcc -mmcu=msp430fr5969 -g -Os -Wall -Wunused -I ~/energia-0101E0010/hardware/tools/msp430/msp430/include/ -I ~/Texas_Instruments/MSP-EXP430FR5969/Software/430BOOST-SHARP96_GrlibDisplay/grlib/ -I ~/Texas_Instruments/MSP-EXP430FR5969/Software/430BOOST-SHARP96_GrlibDisplay/driverlib/MSP430FR5xx_6xx/ -MMD -MP -MF .dep/main.c.dep -o main.o main.c .lib/lib.a
main.c:55:6: warning: return type of 'main' is not 'int' [-Wmain]
Linking main.elf
~/energia-0101E0010/hardware/tools/msp430/bin/msp430-gcc  -mmcu=msp430fr5969 -Wl,-Map=main.map   main.o .lib/lib.a -o main.elf
main.o:(.vectors+0x0): multiple definition of `__ivtbl_64'
~/energia-0101E0010/hardware/tools/msp430/bin/../lib/gcc/msp430/4.6.3/mcpu-430x/mmpy-16/crt0ivtbl64.o:(.vectors+0x0): first defined here
~/energia-0101E0010/hardware/tools/msp430/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld: main.elf section `.vectors' will not fit in region `vectors'
~energia-0101E0010/hardware/tools/msp430/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld: region `vectors' overflowed by 128 bytes
collect2: ld returned 1 exit status
make: *** [main.elf] Errore 1

 

Any idea?

 

Anybody tried to compile driverlib with gcc?

 

 

Share this post


Link to post
Share on other sites

@@elpaso Looks to me that your mspgcc doesn't have the linker files for the 5969.

can you check? you should have these files

 

msp430/include/msp430fr5969.h

msp430/lib/ldscripts/msp430fr5969/memory.x

msp430/lib/ldscripts/msp430fr5969/periph.x

 

Hi,

 

I'm using energia build of msp430gcc (it was working fine with all LP until F5529), here are some infos:

# output of "locate"

~/energia-0101E0010/hardware/tools/msp430/msp430/include/msp430fr5969.h
~/energia-0101E0010/hardware/tools/msp430/msp430/lib/ldscripts/msp430fr5969/periph.x
~/energia-0101E0010/hardware/tools/msp430/msp430/lib/ldscripts/msp430fr5969/memory.x


~/energia-0101E0010/hardware/tools/msp430/bin/msp430-gcc --version
msp430-gcc (MSPGCC 20120406 (With patches: sf3540953 sf3559978)) 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)


Share this post


Link to post
Share on other sites

I don't think mspgcc supports Wolverine at all in no small part due to interrupt vector table changes in the chip over previous MSP430's. Peter Bigot knows the details there but don't expect anything. I'm not getting excited about Wolverine until RedHat's GCC port is more stable.

 

Sent from my Galaxy Note II with Tapatalk 4

 

 

Share this post


Link to post
Share on other sites

I don't think mspgcc supports Wolverine at all in no small part due to interrupt vector table changes in the chip over previous MSP430's. Peter Bigot knows the details there but don't expect anything. I'm not getting excited about Wolverine until RedHat's GCC port is more stable.

 

Sent from my Galaxy Note II with Tapatalk 4

 

Thanks, I will not loose my time on it then.

 

BTW a simple blink.c was built and uploaded without a glitch.

Share this post


Link to post
Share on other sites

Thanks, I will not loose my time on it then.

 

BTW a simple blink.c was built and uploaded without a glitch.

That is interesting, blink.c worked with mspgcc?  In any case the vectors/ivtbl type errors you got above are due to the issue mentioned.  Not going to get much further with the old mspgcc.

Share this post


Link to post
Share on other sites

That is interesting, blink.c worked with mspgcc?  In any case the vectors/ivtbl type errors you got above are due to the issue mentioned.  Not going to get much further with the old mspgcc.

 

Yes, I took the example from an introductory pdf (slap133.pdf):

#include <msp430.h> 
 
int main(void) 
{ 
    WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog Timer. This line of code is needed at the beginning of most MSP430 projects 
    //This turns off the watchdog timer, which can reset the device after a certain period of time 
    
    // Configure GPIO 
    P1DIR |= 0x01; // P1DIR is a register that configures the direction (DIR) or a port pin as an output or an input 
    
    // To set a specific pin as output or input, we write a '1' or '0' on the appropriate bit of the register.  
    // P1DIR = <PIN7><PIN6><PIN5><PIN4><PIN3><PIN2><PIN1><PIN0>  
    // Since we want to blink the LED2, we want to set the direction of Port 1, Pin 0 (P1.0) as an output  
    // We do that by writing a 1 on the PIN0 bit of the P1DIR register  
    // P1DIR = <PIN7><PIN6><PIN5><PIN4><PIN3><PIN2><PIN1><PIN0>  
    // P1DIR = 0000 0001  
    // P1DIR = 0x01 <?? this is the hexadecimal conversion of 0000 0001  
    // The OR command (|) will always set a bit 
    // P1DIR|= 0x01 is equivalent to P1DIR = P1DIR | 0x01 
    // Regardless of value in P1DIR, this OR operation will set Bit0 (or Pin0) to 1?> (1|0 = 1, 1|1 = 1) 
    
    PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power?on default high?impedance mode to activate previously configured port settings 
    
    while(1) // This while(1) loop will cause the lines of code inside it to loop infinitely 
    { 
    P1OUT ^= 0x01; // Toggle P1.0 using exclusive?OR operation (^) 
    // P1OUT is another register which holds the status of the LED.  
    // '1' specifies that it's ON or HIGH, while '0' specifies that it's OFF or LOW  
    // Since our LED is tied to P1.0, we will toggle the 0 bit of the P1OUT register 
    // The exclusive?OR command (^) will always toggle a bit at a certain position 
    // P1OUT^= 0x01 is equivalent to P1DIR = P1DIR | 0x01 
    // Regardless of value in P1OUT, this OR operation will toggle Bit0 (or Pin0) (1^0 = 1, 1^1 = 0) 
    
    __delay_cycles(1000000); 
    } 
} 

This compiles just fine with msp430-gcc and mspdebug tilib uploaded it perfectly (I'm on ubuntu LTS 64 bit and using latest energia binaries).

Share this post


Link to post
Share on other sites

Yes, I took the example from an introductory pdf (slap133.pdf):

#include <msp430.h> 
 
int main(void) 
{ 
    WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog Timer. This line of code is needed at the beginning of most MSP430 projects 
    //This turns off the watchdog timer, which can reset the device after a certain period of time 
    
    // Configure GPIO 
    P1DIR |= 0x01; // P1DIR is a register that configures the direction (DIR) or a port pin as an output or an input 
    
    // To set a specific pin as output or input, we write a '1' or '0' on the appropriate bit of the register.  
    // P1DIR = <PIN7><PIN6><PIN5><PIN4><PIN3><PIN2><PIN1><PIN0>  
    // Since we want to blink the LED2, we want to set the direction of Port 1, Pin 0 (P1.0) as an output  
    // We do that by writing a 1 on the PIN0 bit of the P1DIR register  
    // P1DIR = <PIN7><PIN6><PIN5><PIN4><PIN3><PIN2><PIN1><PIN0>  
    // P1DIR = 0000 0001  
    // P1DIR = 0x01 <?? this is the hexadecimal conversion of 0000 0001  
    // The OR command (|) will always set a bit 
    // P1DIR|= 0x01 is equivalent to P1DIR = P1DIR | 0x01 
    // Regardless of value in P1DIR, this OR operation will set Bit0 (or Pin0) to 1?> (1|0 = 1, 1|1 = 1) 
    
    PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power?on default high?impedance mode to activate previously configured port settings 
    
    while(1) // This while(1) loop will cause the lines of code inside it to loop infinitely 
    { 
    P1OUT ^= 0x01; // Toggle P1.0 using exclusive?OR operation (^) 
    // P1OUT is another register which holds the status of the LED.  
    // '1' specifies that it's ON or HIGH, while '0' specifies that it's OFF or LOW  
    // Since our LED is tied to P1.0, we will toggle the 0 bit of the P1OUT register 
    // The exclusive?OR command (^) will always toggle a bit at a certain position 
    // P1OUT^= 0x01 is equivalent to P1DIR = P1DIR | 0x01 
    // Regardless of value in P1OUT, this OR operation will toggle Bit0 (or Pin0) (1^0 = 1, 1^1 = 0) 
    
    __delay_cycles(1000000); 
    } 
} 

This compiles just fine with msp430-gcc and mspdebug tilib uploaded it perfectly (I'm on ubuntu LTS 64 bit and using latest energia binaries).

Gotcha.  Maybe mspgcc works somewhat correctly when you're not actually implementing any ISRs.

Share this post


Link to post
Share on other sites

The FR5969 is one of the oldest FRAM chips so it should work; BSP430 has a Wolverine port using this carrier.  The interrupt vector change causes problems with the last MSP430MCU release which require compiler fixes.

 

The driverlib error, though, appears to be a simple matter of including crt0ivtbl64 twice.  If you figure out what's doing that it might work.

Share this post


Link to post
Share on other sites

The FR5969 is one of the oldest FRAM chips so it should work; BSP430 has a Wolverine port using this carrier.  The interrupt vector change causes problems with the last MSP430MCU release which require compiler fixes.

 

The driverlib error, though, appears to be a simple matter of including crt0ivtbl64 twice.  If you figure out what's doing that it might work.

Thanks for clarifying that.

 

edit: So in theory the table could be correctly used in msp430mcu-20130321 by adjusting the vector addresses at the end of (e.g.) msp430fr5969.h to add the additional offset?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...