Hello all,
I would like to use the C::B for MSP430 development using mspgcc4.
I have managed to compile the toolchain to the /op/mspgcc4 folder.
I have selected Settings -> Compiler and Debugger Settings, but the MSP430 GCC is not listed there.
I am using C::B 10.05 from ppa:
http://forums.next.codeblocks.org/index.php?topic=13203.0
I have linked all the mspgcc binares to the /usr/bin, but it did no helped.
Copy the GCC compiler and change the executables in the Toolchain tab
Quote from: martonmiklos on April 01, 2011, 09:04:52 PM
I have selected Settings -> Compiler and Debugger Settings, but the MSP430 GCC is not listed there.
What do you mean by that? It's not enough to compile a(ny) compiler and C::B will automatically support it. How should that work? :shock:
However, if your target compiler is interface compatible with GCC (which seems the case) you can easily make a copy of the GCC compiler and adjust the settings, primary the compiler/linker... executables accordingly.
The wiki page says that this compiler is supported:
http://wiki.codeblocks.org/index.php?title=Main_Page
This page said that this compiler should be listed too:
http://cubesat.wikidot.com/obdh-codeblocks-guide
I have a few compilers in the list (PowerPC gcc for e.g.) which I do not have installed, so I do not think that the C::B lists only the detected compilers there.
Quote from: martonmiklos on April 01, 2011, 09:43:24 PM
The wiki page says that this compiler is supported:
http://wiki.codeblocks.org/index.php?title=Main_Page
If you read further you'll realise that this is Windows only. ;-) It's untested on Linux.
You can (however) try to compile c::B yourself and see if it's working on Linux, too.
@MortenMacFly
Oh yes, it is a bit late at us now, so I have missed it.
Copying the GCC compiler template, and correcting the executables path does not working, because the mspgcc has several compiler specific option just like the -mmcu option for e.g.
I have checked out the latest code, and found the related code in the compilerGNUMSP430.cpp. As I seen it is not windows only, and it is looking for the executables in the /usr/local/msp430. I have linked the neccessary content to there.
I have analyzed the code further and realized that this compiler is not enabled on Linux.
So I will hack it tomorrow.
Quote from: martonmiklos on April 01, 2011, 10:35:38 PM
So I will hack it tomorrow.
I had a look into, it's actually quite simple:
Just move the inclusion of:
#include "compilerGNUMSP430.h"
out of the "
#ifdef __WXMSW__" section and this should probably be it.
If it works, please report back and we can do it on trunk.
(I am using Linux only if needed you know...)
I have done with it, and compiling a sample project is working.
I have some plans:
- The supported MCU's list needs some extending. It will be easy, because I have found all the possible -mmcu options int the mspgcc's source so after some regexp playing I will add them easily.
- I will improve the default compiler path looking algorithm, because most the mspgcc4's offical installer installs itself to the /opt by default.
- I will try to hack a project wizard, whith what I could add "inhouse" programming feature using mspdebug as post build or run step.
If I will be ready I will submit my work as a patch.
Quote from: martonmiklos on April 01, 2011, 11:20:50 PM
If I will be ready I will submit my work as a patch.
Great. Thank you.
I know this is not the most suitable topic to ask it, but maybe you have some idea how should I implement it:
I would like to have an associative array in the wizard script, because the mspdebug needs the MCU name in different format than the msp-gcc.
I figured out that the script is written in squirrel, but the documentation of it is very poor. According to it in the 3.0 version docs it says I can create tables in JSON format, but when using this syntax it gives me an error message at the first point. The 2.0 doc's table section is completly unundestoodable by me. The C::B docs does not says anything about the squuirrel version, but I guess it uses the 2.0 syntax
Squirrel is 2.2.something... 3.0 seems pretty new...
Quote from: oBFusCATed on April 05, 2011, 11:01:07 PM
Squirrel is 2.2.something... 3.0 seems pretty new...
Squirrel 2.2.4 and SqPlus (for that version).
Hello,
I've tried to setup CodeBlocks to work with MSP430 under Linux.
I have the compiler in /opt directory and I could modify the settings based on "GNU AVR GCC Compiler"
with the appropriate paths... the only thing I couldn't find is how to add/modify compiler flags.
So I would like to set the -mmcu flag, but now I can't find where can I do this.
I hope you can help me find this out.
Sorry if my question is too simple, I'm a bit tired because it is too late here now.
Thank you for any help.
Edit: Is it a solution, if I write the appropriate switch(es) under "other options" tab at compiler & debugger settings?
May it work well?
Hi,
Any news about this topic? Is there a way to use C::B for mspgcc under Linux?
Quote from: martonmiklos on April 01, 2011, 11:20:50 PM
I have done with it, and compiling a sample project is working.
I have some plans:
- The supported MCU's list needs some extending. It will be easy, because I have found all the possible -mmcu options int the mspgcc's source so after some regexp playing I will add them easily.
- I will improve the default compiler path looking algorithm, because most the mspgcc4's offical installer installs itself to the /opt by default.
- I will try to hack a project wizard, whith what I could add "inhouse" programming feature using mspdebug as post build or run step.
If I will be ready I will submit my work as a patch.
Have you read this?
Then reread the topic, download the c::b's code, modify it accordingly and then compile it...
Hey,
Sorry for forgotting to post the patch, but I get totally fed up with the squirrel, and wxwidgets, and gave up my goals.
I got totally lost when I was unable to create an associatible array. No examples nothing nowhere on the web, and it is almost impossible to find relevant information due the common name (squirrel oh yeah).
So I have attached a patch which adds support for the msp430-gcc on Linux.
I have also attached a tar.gz which should be uncompressed to src/plugins/scriptedwizard/resources
This adds a wizard to the C::B. Creating and compiling a project works. At least to MSP430F5438, what I have tried.
I have tried to add an option to be able to program after building, but my knowledge was not enough to do it.
The C::B's squirrel parser says to the toupper function that it does not exists (if user selects the programmer). I have stripped my code to be able to parsed with a standalone squirrel (removed _T macros, and project related stuff), and it worked.
If anyone has some kind of more advanced debugging techique to create/debug scripted wizards, please let me know.
Also generating some user feedback dialogs (messagebox, etc.) from the script would be helpful to improve the wizard, but I have not found any examples.
Have you tried to use tables?
http://www.squirrel-lang.org/doc/squirrel2.html#d0e516
Thanks a lot for help martonmiklos.
For me it's really nasty MSP430 support isn't enabled in Linux by default. Having to download, patch and compile C::B isn't the easiest and fastest way to start coding for this platform.
I will post my results if I finally compile it. (The other option I'm considering is using Eclipse).