User forums > Embedded development

Reseach on adding Hi-Tech C Compiler for Microchips PIC MCUs

(1/1)

stahta01:

--- Code: ---CompilerMINGW       GNU GCC Compiler                    http://www.mingw.org/
                    GNU GCC Compiler                    http://developer.apple.com/tools/
                    GNU GCC Compiler                    http://gcc.gnu.org/
CompilerTcc         Tiny C Compiler                     http://bellard.org/tcc/
CompilerSDCC        SDCC Compiler                       http://sdcc.sourceforge.net/
CompilerOW          OpenWatcom (W32) Compiler           http://openwatcom.org/index.php/Main_Page
CompilerMSVC10      Microsoft Visual C++ 2010
CompilerMSVC8       Microsoft Visual C++ 2005/2008      http://msdn.microsoft.com/vstudio/express/visualc/download/
CompilerMSVC        Microsoft Visual C++ Toolkit 2003   http://xona.com/2004/06/29.html
CompilerLDC         LLVM D Compiler                     http://dsource.org/projects/ldc/
CompilerLCC         LCC Compiler                        http://www.cs.virginia.edu/~lcc-win32/
CompilerICC         Intel C/C++ Compiler                http://www.intel.com/cd/software/products/asmo-na/eng/compilers/219754.htm
CompilerGNUTRICORE  GNU GCC Compiler for TriCore        http://www.hightec-rt.com/
CompilerGNUPOWERPC  GNU GCC Compiler for PowerPC        http://www.hightec-rt.com/
CompilerGNUMSP430   GNU GCC Compiler for MSP430         http://mspgcc.sourceforge.net/
CompilerGNUAVR      GNU AVR GCC Compiler                http://winavr.sourceforge.net/
CompilerGNUARM      GNU ARM GCC Compiler                http://www.gnuarm.com/
CompilerGDC         GDC D Compiler                      http://dgcc.sourceforge.net/
CompilerDMD         Digital Mars D Compiler             http://www.digitalmars.com/d/dcompiler.html
CompilerDMC         Digital Mars Compiler               http://www.digitalmars.com/
CompilerCYGWIN      Cygwin GCC                          http://www.cygwin.com/
CompilerBCC         Borland C++ Compiler (5.5, 5.82)    http://www.borland.com/products/downloads/download_cbuilder.html

--- End code ---

Created list of current Compilers in Trunk SVN 67735

Decided to use compilerMINGW.cpp, compilerGNUMSP430.cpp, compilerTcc.cpp, compilerOW.cpp, and compilerSDCC.cpp as starting point.



--- Code: ---Hi-Tech Options to add at first are
    -C                             Compile to object file
    -G<argument>                   Generate symbolic debug information
    -Iargument                     Specify include path
    -Oargument                     Output file
    -X                             Strip local symbols
    --chip=argument                Select processor
    --opt<=argument>               Optimization options
    --output<=argument>            Output formats
    --strict                       Strict ANSI keywords
    --warn<=argument>              Warning level

Special Options likely to be needed; but not listed in GUI list
    --ide=argument                 Set development environment
    --objdir=argument              Object files directory
    --errformat<=argument>         Error format
    --lang<=argument>              Specify Language
    --msgformat<=argument>         Message format
    --summary<=argument>           Summary options
    --time                         Report compilation times
    --warnformat<=argument>        Warning format
    --outdir=argument              Output directory
    --errors=number                Maximum number of errors
    -Q                             Quiet mode
    -Dargument                     Define preprocessor symbol
    

--- End code ---


--- Code: ---Option categories
    _("Warnings");
    _("General Options");
    _("Optimization");
    _("Miscellaneous");
    _("Linker output format (choose none, or only one of these)");
    _("PIC MCU specification (choose none, or only one of these)");

--- End code ---

Important enums are TargetType, CompilerLineType, CommandType, CompilerLoggingType, and AutoDetectResult.
from compiletargetbase.h and compiler.h

Tim S.

stahta01:
Assembler Related Options (User extra Compiler Options)

--- Code: ----P
--asmlist

--- End code ---

Compiler Related Options

--- Code: -----chip=18F452 (User extra Compiler Options)
--pass1 (Set by CB Internal Command)
--runtime=default (Choices Listed in CB Compiler Options)
--opt=default (Choices Listed in CB Compiler Options)

--- End code ---

Linker Related Options

--- Code: ----oncfes.cof (Set by CB Internal Command)
-mncfes.map (Choices Listed in CB Compiler Options)
--summary=default (Set by CB Internal Command)
--output=default (Choices Listed in CB Compiler Options)

--- End code ---

Output Format Options (Set by CB Internal Command)

--- Code: ---"--errformat=Error   [%n] %f; %l.%c %s"
"--msgformat=Advisory[%n] %s"        
"--warnformat=Warning [%n] %f; %l.%c %s"

--- End code ---

Compiler Command as run under MPLAB; note, it is just a single line broken up into separate parts.


--- Code: ---picc18.exe
--pass1
icmp.c
-q
--chip=18F452
-P
--runtime=default
--opt=default
-D__DEBUG=1
-g
--asmlist
"--errformat=Error   [%n] %f; %l.%c %s"
"--msgformat=Advisory[%n] %s"
"--warnformat=Warning [%n] %f; %l.%c %s"

--- End code ---

Link Command as run under MPLAB; note, it is just a single line broken up into separate parts.


--- Code: ---picc18.exe
-oncfes.cof
-mncfes.map
--summary=default
--output=default
icmp.p1
ip.p1
main.p1
slip.p1
tcp.p1
udp.p1
--chip=18F452
-P
--runtime=default
--opt=default
-D__DEBUG=1
-g
--asmlist
"--errformat=Error   [%n] %f; %l.%c %s"
"--msgformat=Advisory[%n] %s"
"--warnformat=Warning [%n] %f; %l.%c %s"

--- End code ---

mojo-chan:
I am also very interested in getting Code::Blocks to work with Hi-Tech C for PICs. Did you make any progress on this? I can help beta test, I have some fairly large projects to test with.

stahta01:
@mojo-chan:

I have only made a little progress; if you build Code::Blocks from SVN,I can attach the patch files for you to try. I have not worked on the patch in over a month. I am not really sure if I remember its status.

Tim S.

mojo-chan:
Okay, thanks Tim. I'll pass on the patches for now, I am too busy to work on it myself. The MPLab editor is dire, so bad in fact that we use Visual Studio along side it just to do initial development and validate the code. AVR Studio now uses the Visual Studio editor, although the old one wasn't bad. Hi-Tech should seriously consider Code::Blocks support.

Navigation

[0] Message Index

Go to full version