1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-11 19:24:10 +01:00
Commit Graph

76 Commits

Author SHA1 Message Date
Mathieu Rondonneau
d38f6167e3 OP-423:
Also reduce heap has it does not fit in SRAM anymore (not with current compiler).
(that's ok since if there is more space available, it will be reclaimed).

Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint

Conflicts:
	flight/CopterControl/System/inc/pios_config.h
	flight/Modules/ManualControl/manualcontrol.c
2011-07-08 06:29:34 -07:00
Stacey Sheldon
bf39ab7a22 remove left-over comment about compile time configs
No functional changes.
2011-07-06 22:36:15 -04:00
Stacey Sheldon
dbf7574946 bootcfg: use UAVobj to control boot-time HW config
This should mark an end to the compile-time selection of HW
configurations.

Minor changes in board initialization for all platforms:
 - Most config structs are marked static to prevent badly written
   drivers from directly referring to config data.
 - Adapt to changes in .irq fields in config data.
 - Adapt to changes in USART IRQ handling.

Major changes in board initialization for CC:
 - Use HwSettings UAVObj to decide which drivers to attach to
   the "main" port and the flexi port, and select the appropriate
   device configuration data.
 - HwSettings allows choosing between Disabled, Telemetry, SBUS,
   Spektrum,GPS, and I2C for each of the two ports.
 - Use ManualControlSettings.InputMode to init/configure the
   appropriate receiver module, and register its available rx channels
   with the PIOS_RCVR layer.  Can choose between PWM, Spektrum and PPM
   at board init time.  PPM driver is broken, and SBUS will work once
   it is added to this UAVObj as an option.
 - CC build now includes code for SBUS, Spektrum and PWM receivers in
   every firmware image.

PIOS_USART driver:
 - Now handles its own low-level IRQs internally
 - If NULL upper-level IRQ handler is bound in at board init time
   then rx/tx is satisfied by internal PIOS_USART buffered IO routines
   which are (typically) attached to the COM layer.
 - If an alternate upper-level IRQ handler is bound in at board init
   then that handler is called and expected to clear down the USART
   IRQ sources.  This is used by Spektrum and SBUS drivers.

PIOS_SBUS and PIOS_SPEKTRUM drivers:
 - Improved data/API hiding
 - No longer assume they know where their config data is stored which
   allows for boot-time alternate configurations for the driver.
 - Now registers an upper-level IRQ handlerwith the USART layer to
   decouple the driver from which USART it is actually attached to.
2011-07-05 22:03:25 -04:00
Stacey Sheldon
740b5f1584 rcvr: convert PWM, PPM, SBUS and Spektrum to use PIOS_RCVR
All receivers now fall under the same driver API provided
by pios_rcvr.c.

This is part of a larger sequence of commits that will
switch the receiver selection over to boot time dynamic
configuration via UAVObjects.
2011-07-05 22:03:25 -04:00
Mathieu Rondonneau
0ff5e9a46f Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint 2011-06-21 22:02:13 -07:00
James Cotton
8976d22fad Merge remote-tracking branch 'origin/OP-159_os_sbus' 2011-06-21 17:51:22 -05:00
Oleg Semyonov
6272210df7 sbus: some code cleanup (no functional changes) 2011-06-19 14:30:13 +03:00
Oleg Semyonov
59da5055cd usart: make USART ports configurable from make command line
For CopterControl the following make options are available:

USE_TELEMETRY=[YES|NO|1|3]    (default is YES, USART1)
USE_GPS=[YES|NO|1|3]          (default is NO, USART3)
USE_SPEKTRUM=[YES|NO|1|3]     (default is NO, USART3)
USE_SBUS=[YES|NO|1]           (default is NO, USART1 only)
2011-06-18 23:54:32 +03:00
Oleg Semyonov
311902f1f2 sbus: implemented S.Bus stream decoding 2011-06-18 23:19:57 +03:00
Mathieu Rondonneau
b67a38661e OP-423: merge master into that branch, resolve conflicts and test with CC and bl_CC
heap reamining is low (about 500) but stacks can be ajusted (specially the 200 bytes from system) to give the level close to 1Ko if needed.

Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint

Conflicts:
	flight/CopterControl/System/inc/FreeRTOSConfig.h
	flight/CopterControl/System/inc/pios_config.h
2011-06-17 19:04:09 -07:00
Mathieu Rondonneau
65cf467ca4 OP-423: move the module initialize funtion into a specific section for OP and CC.
- create linker section for those <module>Initialize()
- later this list will incorporate parameters as well. (this probably will be more a OP feature to swap/remove/delete module on the fly.
- this is not done at compile time anymore by Makefile.
- this will allow us to have control on the module start at run-time (not implemented but build the ground for it).
- this simplify the startup (Part of code re-org).
- this change does not affect sim_posix and win32 (since they don't need that)
- ensure it's compiling for PiOS.posix
- port to PiOS.win32 but not tested (not compiled)
- tested on CC
- compile on OP.
- this free ~200 bytes.
- current avalable bytes (is we keep the same remaining bytes on the stack than before) is easily passed the 1.2Ko mark on CC with new gcc (4.5.2)
- this does not include init-reorg for each module (I still think more can be freed)
2011-06-16 22:13:19 -07:00
Oleg Semyonov
d8201ec45b sbus: provide a stub based on Spektrum driver (for CC only) 2011-06-15 22:35:21 +03:00
James Cotton
1365542103 OP-493: Populate the Accessory Desired from TX 2011-06-05 15:38:57 -05:00
James Cotton
3e5d02cbaf OP-152: Abstract the CRC code out of uavtalk to allow it to be reused (PT -
feel free to test moving this to the hardware CRC unit)
2011-06-04 18:36:26 -05:00
sambas
17fb31a7fa Spektrum rtc supervisor working, tested on CC and all outputs are activated. Needs review and testing before merge. 2011-05-29 14:52:22 +03:00
Stacey Sheldon
4da671fc82 build: change firmware files from .opf to .opfw extensions 2011-05-25 00:20:02 -04:00
Oleg Semyonov
66804076b8 build: fix release/Makefile for *.opf files and changed targets 2011-05-24 23:49:51 -04:00
Stacey Sheldon
91cb294730 build: remove redundant PHONY for size target 2011-05-24 01:10:40 -04:00
Stacey Sheldon
0eb92fad91 build: refactor jtag program and add jtag wipe target
Macros for JTAG program and wipe for each target are now
provided in firmware-defs.mk.

The _wipe target for each firmware and bootloader image will
erase either the bootloader (bl_*_wipe) or firmware (fw_*_wipe)
bank.
2011-05-24 01:10:31 -04:00
Stacey Sheldon
9973fda23b build: define bootloader and firmware bank spans
The board-info.mk files now define the start and size
of the bootloader and the firmware banks.
2011-05-24 01:03:01 -04:00
Stacey Sheldon
6e406c0232 build: remove all remaining use of -DUSE_BOOTLOADER
The USE_BOOTLOADER compile flag was only being used
to determine where the ISR vector table was located.

Provide this explicitly from the linker since it knows
exactly where it is putting the ISR vector table.
2011-05-23 18:21:42 -04:00
Stacey Sheldon
0a67730d0f build: refactor fw, bl and bu rules
- 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
2011-05-23 18:21:42 -04:00
Stacey Sheldon
6ec6425f5e build: build opf images including firmware + version blob 2011-05-22 10:55:13 -04:00
Stacey Sheldon
2044d777e6 coptercontrol: always enable -g debug symbols
This does not affect the size of the image or the RAM
used by the firmware image.  All debugging symbols are
stripped from the elf file during the conversion to a
.bin file.
2011-05-16 08:35:41 -04:00
Oleg Semyonov
39d4f23b67 Merge branch 'master' into OP-483_os_release-packaging 2011-05-15 21:32:20 +03:00
Oleg Semyonov
bac95dae11 OP-483: get rid of -D install switch (doesn't work on Mac) and use mkdir -p instead 2011-05-14 23:17:08 +03:00
James Cotton
2087441006 OP-216: Make the object manager use new flash fs for objects 2011-05-14 14:23:02 -05:00
Oleg Semyonov
37868a4c10 OP-483: add install target for firmware
make INSTALL_DIR=dir INSTALL_PFX=pfx INSTALL_SFX=sfx install
installs binary file into specified install directory adding
optional prefix and/or suffix.
2011-05-13 11:25:32 +03:00
James Cotton
fb8417a0ff Merge remote-tracking branch 'origin/op_475_476_calibrate_during_arming' 2011-05-09 09:23:16 -05:00
Stacey Sheldon
29ec2f198b build: convert all app loads to require bootloaders
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.
2011-05-08 12:40:29 -04:00
Stacey Sheldon
7e99419c8a build: Add support for %.bin.o generation
The .bin.o rule places the contents of a raw .bin file
into an .o file wrapped within fixed symbols for start
and end.  This can be used to embed a binary file inside
of an executable.

The symbols for the embedded binary blob are:
 _binary_start
 _binary_end
 _binary_size

NOTE: The way the .bin.o rule is currently written, you
can only embed one binary blob in an executable since the
symbol names will collide if you add multiple blobs.  This
limitation is easily removed later if necessary.
2011-05-07 18:05:50 -04:00
James Cotton
80c839d5bb OP-475: Starting to use the new FlightStatus object 2011-05-07 13:17:21 -05:00
James Cotton
1f36e00287 Merge remote-tracking branch 'origin/OP_442_OP_437_PT_Dreamer' 2011-05-02 03:34:09 -05:00
David Buzz Carlson
c93ab7e723 Change CC, OP MB, and AHRS to use bootloader by default.
Also change AttitudeActual to update at 10Hz rather than 2 Hz.  The increased bandwidth is minimal and the resulting "polish" that it adds to the look-and-feel of the GCS is signifcant.
2011-05-02 00:50:42 -07:00
zedamota
5dd8a3eea2 Fix a silly mistake on the CC erase_flash compile flag. 2011-05-01 20:10:27 +01:00
zedamota
8dd46e1465 Should fix the CC showing as OP.
Added a compile flag to make a CC fw version that will erase flash.

Signed-off-by: zedamota <josembarros@hotmail.com>
2011-04-29 23:38:26 +01:00
James Cotton
5f776f0b58 Merge branch 'master' into OP-439_CorvusCorax_Bootloader-Makefile-and-OpenOCD-config-for-Linux 2011-04-27 23:41:35 -05:00
James Cotton
69d03ca101 OP-439: Simplify further. Abstract most of the OOCD flags into the common
firmware include and delete all the extra foss-jtag config files.  There is now
a legacy file for the revA board a second for AHRS that changes the port
2011-04-24 10:19:00 -05:00
Corvus Corax
ee7179bd53 OP-439 unified OpenOCD config for mac os x and Linux, Makefiles adapted accordingly 2011-04-24 12:10:33 +02:00
Corvus Corax
0a05896146 CopterControl: Added dependency: pios_bl_helper 2011-04-23 19:56:48 +02:00
edouard
f19b0efc6f CC-40 Implemented support for FirmwareIAP on Coptercontrol: you can now use the "Halt" command on the uploader gadget.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3070 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-25 13:50:13 +00:00
chebuzz
183ca03cc9 CC/Makefile - Make I2C conditional compilation, disabled by default. Unterminated I2C can cause boot process to hang. Thus disabling I2C by default should help to avoid problems in the future.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3059 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-21 09:18:21 +00:00
peabody124
3e17c2ff55 OP-312: Create a StabilizationDesired object that is the generic input to
Stabilization, carries the desired rate or attitude as well as a flag on how to
intepret it.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2930 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-02 01:25:27 +00:00
stac
6700a74782 makefile: refactor makefiles and clean up output
This significantly reduces the amount of duplication
across the various firmware makefiles.

The new firmware-defs.mk file should contain only
macros/declarations that will apply to all firmware
makefiles.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2854 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-23 04:18:53 +00:00
peabody124
52f09e5d55 Add compile time flag (USE_SPEKTRUM) to enable spektrum support until the
dynamic switching is done.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2778 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-13 17:43:44 +00:00
peabody124
6ac2ddb0c1 CC: Make default build non-debug. This leaves a bit more RAM overhead.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2752 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:24 +00:00
peabody124
e5b26bc67d More memory tweaks to keep CC flowing
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2709 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-03 02:42:49 +00:00
peabody124
fedadb1275 CC-8: Move the queue registration into the ADC PIOS driver to allow other
functions to use it easily

Conflicts:

	flight/Modules/Attitude/attitude.c

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2707 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-03 02:42:43 +00:00
peabody124
d33d044088 Revert "Revert "Fix to make stacs auto-loading of UAVObjects downwards compatible, since its not working on all architectures""
Putting Corvus patch back in.  Need to delete uavobjects-synthetics directory
for this to work.

This reverts commit 9cd98bec8fb5e0679c625eb256a94d161a8ce345.

Conflicts:

	flight/CopterControl/Makefile

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2671 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 15:46:59 +00:00
peabody124
1c6b51b704 UAVObjects/AttitudeSettinsg: Object for CC to tune the attitude estimation
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2666 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:26 +00:00