Now that we have a USB descriptor for HID+VCP that works
on Ubuntu 11.10, MacOS 10.7.3, Win7-SP1-32bit,
WinXP-SP3-32bit, Win7-SP1-64bit.
VCP is known to not work on WinXP without service pack 3.
Bootloader updaters were all broken due to recent
changes in LED configuration handling. Removing
LED support from the BU loads allows them to build
again, but they provide no feedback about when they're
finished writing flash.
Qt 4.8+ is now required to build the GCS.
This version of the SDK installer has dropped support
for the --installdir option so users will need to manually
specify the path for installation as:
<top>/tools/qtsdk-v1.2
in order for the Makefile to pick up this toolchain automatically.
This update drops support for Ubuntu 9.10 (Karmic) due to an
incompatibility with the glibc that ships with that release.
Support should still be possible with Ubuntu 10.04 (Lucid) and
newer.
Qt 4.8+ is now required to build the GCS.
This version of the SDK installer has dropped support
for the --installdir option so users will need to manually
specify the path for installation as:
<top>/tools/qtsdk-v1.2
in order for the Makefile to pick up this toolchain automatically.
This update drops support for Ubuntu 9.10 (Karmic) due to an
incompatibility with the glibc that ships with that release.
Support should still be possible with Ubuntu 10.04 (Lucid) and
newer.
The CC and PipX bootloader updater (BU) builds don't currently
work due to some recent changes in how LEDs are handled.
Remove them from the default BU targets so that the all_flight
target can build clean again.
Also fix a linker warning in OP build.
Linux users can now cross-compile openocd to run on windows.
Here are the steps:
sudo apt-get install mingw32
make ftd2xx_install
make libusb_win_install
make openocd_git_win_install
(cd tools; zip -r openocd-win-patched.zip openocd_win/)
This should simplify rolling out new versions of the tool and
provides an example for how to cross-compile future tools as
well.
A separate makefile for EF (Entire Flash) targets allows
the removal of board-specific hard-coded addresses. These
values can now be included from the board-info.mk files
for each board.
These new build targets will construct a flash image that
includes both a bootloader as well as a firmware image all
in one. Examples:
make ef_coptercontrol
make ef_revolution
This also adds support for a new target for writing this EF
image to boards that support a DFU interface (only F4-based
boards). This can be done by running:
make dfuutil_install
# Boot board with SBL asserted to activate STM32 DFU ROM
# Attach USB cable
make ef_revolution_dfu
Bootloader images are also now padded out to occupy the full
BL flash region.
This tool can be used to read/write the interal device flash
in an STMF4 MCU via the built-in bootloader.
dfu-util can be downloaded and installed using this command:
make dfuutil_install
The homepage for this tool is at:
http://dfu-util.gnumonks.org/
Added new unbrick_<board> targets for each board.
These targets use the stm32flash utility to install
a bootloader on to the board. This is a tool of
last resort and should not be used for normal firmware
upgrades.
Usage:
make unbrick_<board> UNBRICK_TTY=/dev/ttyUSB0
Where:
<board> is one of coptercontrol, pipxtreme,
openpilot, ins, ahrs
UNBRICK_TTY is set to the serial device connected
to the board.
This tool can be used as a last resort for
installing a bootloader to a completely bricked
board that is unresponsive to even the rescue
functionality in the GCS uploader gadget.
Building all_<board> will build all available embedded
images for <board>. New targets:
- all_ahrs
- all_openpilot
- all_coptercontrol
- all_pipxtreme
- all_ins
and their associated _clean targets to remove the build output.
- New macros for fw, bl and bu rules in top-level make
- Per-board info factored into make/board/*/board-info.mk
- Per-board info now shared btw. fw, bl and blupd for each board
- BOARD_TYPE, BOARD_REVISION, BOOTLOADER_VERSION, HW_TYPE
- MCU, CHIP, BOARD, MODEL, MODEL_SUFFIX
- START_OF_BL_CODE, START_OF_FW_CODE
- blupd_* goals renamed to bu_*
- all_blupd goal renamed to all_bu
- firmware goals renamed to fw_*, board name goals are preserved
- bu_*_program now writes updater to correct address for all boards
- BL updater firmware builds now produce .opf format including
version info blob.
- BL updater firmware name now includes board name.
- INS makefile brought up to date w.r.t. linker scripts
Now 'make release' on the top level will build release package.
For Windows it will build OpenPilot GCS Installer and all firmware
binaries which are now included into the GCS distribution and will
be installed into the <path>/OpenPilot/share/firmware-<version>
directory.
For other systems it will build all firmware files and the GCS, but
latter is not packaged yet.
In preparation for release build the Windows installer source is moved
out of ground/gcs source tree into release directory. It is also disabled
in the qmake source file and removed from top level Makefile.
On Windows cd doesn't mean that current directory is as expected since
there is also current drive. So in some rare cases mkdir followed by cd
doesn't change the directory which can result in Makefile overwrites by
qmake, etc. So it is safer to replace ';' by '&&' but need to check if
it still works on Windows under cmd or from Qt-Creator.
Certain environment variables or command-line overrides
can result in difficult-to-diagnose build issues. These
variables are now filtered from the calling environment
prior to invoking the lower level makefiles.
These variables which may affect gcc are removed from the
environment and from the command-line overrides:
TMPDIR GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH
CFLAGS CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH DEPENDENCIES_OUTPUT
These variables which are now deprecated are removed from
the environment and from the command-line overrides:
USE_BOOTLOADER
This change is made up of a number of tightly coupled
changes:
- Deprecate the use of the USE_BOOTLOADER command-line
option. It is now hard-coded in each Makefile.
Overriding it on the command line is not allowed.
- Split apart the memory declaration and the section
declaration in all linker files (*_memory.ld and
*_sections.ld).
- Describe the split between bootloader and app sections
of flash in each board's _memory.ld file.
- Change program target to selectively erase flash so
that the installed bootloader is preserved across even
JTAG programming operations.
- All elf files are built with debug symbols and are not
stripped. This should help debugging with gdb. The
images programmed on the boards are all .bin files now
which do not include symbols.