Code::Blocks Forums
User forums => Embedded development => Topic started by: Nayani on June 12, 2024, 10:17:24 am
-
Hello all,
I am trying to compile code for MSP430 but getting errors. I have a folder which contains the binaries for MSP430 (in folder c:\ti\msp430-gcc). I have added the path. In CB, under settings -> compiler (heading "global compiler settings"), under compiler flags, I set (ticked) some options (optimization not set to any, I guess this will be treated as -O0), specially under MSP430 MCU derivatives (-mmcu option to CC430 5125, my controller (MSP430F67791) is not listed). When I compile a simple 'C' code without any reference controller specific instructions (just a main and a forever loop), I am getting the error "missing argument to -mmcu=". I have also set this compiler as default compiler (though I use generic GCC for Windows). Here are my questions
1. How can I rectify this error?
2. Is there a way I can provide the specific controller part which is missing in the list? If not, what is the workaround?
3. Is there any clear/elaborate tutorial on setting up embedded MCU projects and building?
I await your guidance. Thank you for your time.
-
You should use the "GNU GCC Compiler for MSP430 (HighTec)". If your CPU is not listed, but suported by the compiler, you can add it in the "Other compiler options", p.e. -mmcu=mps430xG666
-
Hi Miguel Gimenez,
Thank you very much for your reply. Just wanted to clarify
1. Is it necessary to use "GNU GCC Compiler for MSP430 (HighTec)" compiler only? As mentioned earlier I have msp430-gcc compiler and I included a sample header file, which gave no errors. MSP430GCC has support for my controller.
2. In case the CPU is listed, by selecting (ticking), "-mmcu=" flag should have been generated/added. Am I right? Or is it necessary that I add this under "other compiler options"?
I await your reply. Thanks once again.
Regards
NPS
-
Using the specific compiler is the way relevant options are supported, so you do not need to add other compiler options.
Ticking the MCU will generate the "-mmcu=" flag, enable (https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_%28general%29#Q:_How_do_I_report_a_compilation_problem_on_the_forums.3F) full build log and check.
-
Thank you. I did tick (selected the controller from the available list) however the compiler complains about "mmcu" not being set. This is the issue. I will try the command line and update you.
RGDS
NPS
-
HI Miguel Gimenez,
I tried command line and the build (only compile) seems to have gone through without a hitch. Here is what I typed
msp430-elf-gcc -c -IC:\ti\msp430-gcc\include -mmcu=msp430f67791 main.c
The main.c file content, copied from the NET
#include "msp430f67791.h"
//#include <msp430.h>
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P1DIR |= 0x01; // Set P1.0 to output direction
for(;;) {
volatile unsigned int i; // volatile to prevent optimization
P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
i = 10000; // SW Delay
do i--;
while(i != 0);
}
return 0;
}
The issue is to configure code::blocks properly!!!! Not getting it.
-
Follow the link I gave you in reply #3 and post a full rebuild log (use code tags, please).