spirilis 1,265 Posted February 21, 2014 Share Posted February 21, 2014 Yes the Stellaris parts were LX4F for experimental. Same deal. Sent from my Galaxy Note II with Tapatalk 4 Quote Link to post Share on other sites
rockets4kids 204 Posted February 21, 2014 Share Posted February 21, 2014 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. Quote Link to post Share on other sites
spirilis 1,265 Posted February 21, 2014 Share Posted February 21, 2014 I'm fairly certain they're not. My Tiva-C's all say TM4C. Sent from my Galaxy Note II with Tapatalk 4 Quote Link to post Share on other sites
jazz 209 Posted February 22, 2014 Share Posted February 22, 2014 Wolverine FET is open source MSP430F5528 based, same as one on MSP430F5529 LP board. Quote Link to post Share on other sites
elpaso 15 Posted February 25, 2014 Share Posted February 25, 2014 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? Quote Link to post Share on other sites
greeeg 460 Posted February 26, 2014 Share Posted February 26, 2014 @@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 elpaso 1 Quote Link to post Share on other sites
elpaso 15 Posted February 26, 2014 Share Posted February 26, 2014 @@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) Quote Link to post Share on other sites
elpaso 15 Posted February 26, 2014 Share Posted February 26, 2014 Just a quick update: I've upgraded the binaries to latest energia release 0101E0011, same output. I've tested the compiler with blink.c and it works just fine. Here is the makefile: https://gist.github.com/elpaso/9227591 Quote Link to post Share on other sites
spirilis 1,265 Posted February 26, 2014 Share Posted February 26, 2014 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 elpaso 1 Quote Link to post Share on other sites
elpaso 15 Posted February 26, 2014 Share Posted February 26, 2014 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. Quote Link to post Share on other sites
spirilis 1,265 Posted February 26, 2014 Share Posted February 26, 2014 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. Quote Link to post Share on other sites
elpaso 15 Posted February 26, 2014 Share Posted February 26, 2014 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). Quote Link to post Share on other sites
spirilis 1,265 Posted February 26, 2014 Share Posted February 26, 2014 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. Quote Link to post Share on other sites
pabigot 355 Posted February 26, 2014 Share Posted February 26, 2014 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. spirilis 1 Quote Link to post Share on other sites
spirilis 1,265 Posted February 26, 2014 Share Posted February 26, 2014 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? Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.