Managing Compiler Options

From Flowcode Help
Jump to navigationJump to search

Flowcode helps you to manage different compiler settings efficiently by allowing you to save preset configurations and quickly switch between them using a dropdown menu. You can also import and export compiler settings across Flowcode installations.

Gen Compiler Options Programmer PIC.png

Option list

The list menu to the left shows all the currently saved compiler settings (including the default settings), clicking on any of these will load the options stored under that name.


The default settings are locked and unable to be changed, you will need to create and save a new set of options to edit and configure the settings.

To create a new set of compiler options, first select the 'Save' Btn Save.png button next to the 'Setting name:' box and type a new name for your settings. To create a new set of options select the 'Target platform:', 'Compiler language:' and choose which group to save it under, or create your own group to save it under, once these requirements have been chosen click 'OK' to save your option set.

Once your set of options has been created, you may alter and configure the settings and they will save automatically when you click 'OK' to apply and confirm the settings.


To delete a set of compiler options, select the arrow Btn Arrow.png button next to the saved setting name from the down menu and press the 'Delete' option. This will bring up a menu to confirm that you wish to delete the setting, click 'Yes' and then the setting will be removed.

Compiler variables

The following variables are substituted into the compiler settings when Flowcode is to compile. In Flowcode 6 these settings are substituted in any field - this may be the pathname of the program to load or the arguments section.


In earlier versions of Flowcode these variables consisted of a percent '%' symbol followed by a single letter. In version 6 this has been replaced with more meaningful variable names, starting with a dollar '$' symbol and surrounded by brackets. So %T becomes $(chip).

Flowcode 5 setting Flowcode 6 setting Meaning
%T $(chip) Target name as written e.g. AT91SAM7S128 (generally used by the compiler)
%t $(chip:l) Target name forced to lower-case
%p $(chip:u) Target name forced to upper-case
%a $(chipalt) Alternative target name as written e.g. m32 (generally used by the programmer)
%A $(chipalt:u) Alternative target name forced to upper-case
N/A $(family) Family of chip, eg: 16F, 18F...
N/A $(platform) Platform name from the FCD file, eg: PIC, AVR, ARM, PIC16
N/A $(chippath) Full pathname of chip for identification in Flowcode, eg: PIC.16F.16F88
%f $(target) Long file name without extension e.g. C:\Development\Flowcode\TestProgram.fcf becomes:
   TestProgram 
%F N/A Short filename without extension e.g. C:\Development\Flowcode\TestProgram.fcf becomes:
   TestPr~1 
%d N/A Long file path for the Flowcode files folder e.g. C:\Development\Flowcode\TestProgram.fcf becomes:
   C:\Development\Flowcode 
%D $(srcdir) Short file path for the Flowcode files folder C:\Development\Flowcode\TestProgram.fcf becomes:
   C:\Develo~1\Flowcode 
%D $(outdir) Short file path for the Flowcode output directory - by default the same as $(outdir)
N/A $(appdir) Path of the folder wither the Flowcode.exe is installed
N/A $(cfga) Address of config available, 0x... hexadecimal syntax
%c0 $(cfgb) Configuration byte count
N/A $(cfgen) 1 if config is enabled else 0
%c1 $(cfg0) Config word 0
%c2 or %c3 $(cfg1) ... $(cfgN) Config word 1 to N

Importing and exporting compiler options

Flowcode now allows you to import and export your compiler options, allowing you to store your configurations or pass them to another Flowcode user.

When clicking on the export button the program will prompt you to save the currently loaded configuration settings to somewhere on your harddrive.

Similarly on importing the program will prompt you to search for the desired '.fcs' file to use the settings as the current configuration.


Chip specific compiler options
Selecting Compiler Options (PICmicro) Detailed information about specific PICmicro compiler options
Selecting Compiler Options (dsPIC/PIC24) Detailed information about specific dsPIC/PIC24 compiler options
Selecting Compiler Options (AVR) Detailed information about specific AVR compiler options
Selecting Compiler Options (ARM) Detailed information about specific ARM compiler options