Makefile Options¶
These options are passed as shell environment variables to the Makefile, e.g.
$ PLATFORM=FORDBOARD make
Note
Try adding the -j4 flag to your calls to make to build 4 jobs in
parallel - the speedup can be quite dramatic.
Note
Don’t miss the Fabric helper scripts for the common build configurations in
Fabric Shortcuts.
PLATFORMSelect the target microcontroller platform.
- Values:
FORDBOARD, CHIPKIT, CROSSCHASM_C5_BT, CROSSCHASM_C5_BLE, CROSSCHASM_C5_CELLULAR, BLUEBOARD
Default:
CHIPKIT- Values:
Note
The old Platform variable CROSSCHASM_C5 has been renamed to CROSSCHASM_C5_BT
TEST_MODE_ONLYSet to
1, will create a firmware build which will simply test onboard hardware and glow a LED based on the result of the test.Values:
0or1Default:
0
Note
Currently supported on CROSSCHASM C5 Platforms
DEBUGSet to
1to compile with debugging symbols and to enable debug logging. By default the logging will be available via the logging USB endpoint - for UART output, see theDEFAULT_LOGGING_OUTPUTflag. This also forcesDEFAULT_POWER_MANAGEMENT=ALWAYS_ONandDEFAULT_CAN_ACK_STATUS=1.Values:
0or1Default:
0MSD_ENABLESet to
1to enable logging to SD card and mass storage device(MSD) over USB. In this mode the device will startup as MSD only when powered up directly from a USB port. In other cases when the device is connected to a vehicle the firmware will perform logging operations on the SD card.Values:
0or1Default:
0DEFAULT_FILE_GENERATE_SECSEnabled only when
MSD_ENABLE=1sets the time interval for generating files on the SD card. All files are generated within the VI_LOG folder on the FAT file system. Read the mass storage document for more details.Values:
15to86400Default:
180BOOTLOADERBy default, the firmware is built to run on a microcontroller with a bootloader (if one is available for the selected platform), allowing you to update the firmware without specialized hardware. If you want to build to run on bare-metal hardware (i.e. start at the top of flash memory) set this to
0.Values:
0or1Default:
1TRANSMITTERSet this to
1to forceDEFAULT_POWER_MANAGEMENT=ALWAYS_ONandDEFAULT_USB_PRODUCT_ID=0x2. This is useful if you are using the VI as a transmitter in a local CAN bus for bench testing. You can address it separately from a receiving VI because of the different USB product ID.Values:
0or1Default:
0DEFAULT_LOGGING_OUTPUTWhen combined with
DEBUG, controls the output interface used for debug logging. See the platform docs for details on how to read this output.Values:
OFF,USB,UARTorBOTHDefault:
USBDEFAULT_METRICS_STATUSSet to
1to enable logging CAN message and output message statistics over the normal DEBUG output.Values:
0or1Default:
0DEFAULT_CAN_ACK_STATUSIf 1, the VI will be an active CAN bus participant and send low-level ACKs. If the bus speed is incorrect, can interfere with normal bus operation. This is useful if you are bench testing with 2 VIs and you need the CAN messages to be propagated up the stack.
If 0, the VI will be a listen only node and will not ACK messages. An incorrect bus speed will not have a negative impact on the bus, but you still won’t be able to read anything.
See the testing section for more details.
Values:
0or1Default:
0DEFAULT_ALLOW_RAW_WRITE_NETWORKBy default, raw CAN message write requests are not allowed from the network interface even if the CAN bus is configured to allow raw writes - set this to
1to accept them.Values:
0or1Default:
0DEFAULT_ALLOW_RAW_WRITE_UARTBy default, raw CAN message write requests are not allowed from the Bluetooth interface even if the CAN bus is configured to allow raw writes - set this to
1to accept them.Values:
0or1Default:
0DEFAULT_ALLOW_RAW_WRITE_USBBy default, raw CAN message write requests are allowed from the wired USB interface (if the CAN bus is also configured to allow raw writes) - set this to
0to block them.Values:
0or1Default:
1DEFAULT_OUTPUT_FORMATBy default, the output format is
JSON. Set this toPROTOBUFto use a binary output format, described more in Binary Output Format.Values:
JSON,PROTOBUFDefault:
JSONDEFAULT_RECURRING_OBD2_REQUESTS_STATUSSet this to
1to include a set of recurring OBD-II requests in the build, to be requests immediately on startup.Values:
0or1Default:
0DEFAULT_POWER_MANAGEMENTValid options are
ALWAYS_ON,SILENT_CANandOBD2_IGNITION_CHECK.Values:
ALWAYS_ON,SILENT_CAN,OBD2_IGNITION_CHECK(will cause the VI to write messages to the bus)Default:
SILENT_CANDEFAULT_USB_PRODUCT_IDChange the default USB product ID for the device. This is useful if you want to address 2 VIs connected to the same computer.
Values:
0x0to0xffffDefault:
0x1DEFAULT_EMULATED_DATA_STATUSSet this to
1to have the VI generate random data and publish it as OpenXC vehicle messages.Values:
0or1Default:
0DEFAULT_OBD2_BUSSets the default CAN controller to use for sending OBD-II requests. Valid options are
0(don’t send any OBD-II requests),1or2. The default value is1.Values:
0(off),1or2Default:
1NETWORKBy default, TCP output of OpenXC vehicle data is disabled. Set this to
1to enable TCP output on boards that have an Network interface. Note that the NETWORK option is broken on the chipKIT Max32 build for the moment, see https://github.com/openxc/vi-firmware/issues/189.Values:
0or1Default:
0