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

562 Commits

Author SHA1 Message Date
James Cotton
ca2205d35f OP-378: Tweak INS stack definition to avoid faults 2011-05-26 16:02:15 -05:00
James Cotton
9ede84680e OP-378: Start working on IRQ driven BMA180 reading and also fixed the mag order 2011-05-26 13:57:41 -05:00
James Cotton
6e186bab35 Merge branch 'bugfix-flight' into OP-378_James_INS 2011-05-26 12:19:35 -05:00
James Cotton
0a60c5b57c Merge branch 'master' into OP-378_James_INS 2011-05-26 12:19:30 -05:00
James Cotton
4bc763dafc Extend PiOS DELAY to allow querying the time value in uS 2011-05-26 12:19:04 -05:00
James Cotton
74b9c58f39 Make sensors return data as int16 array instead of struct 2011-05-26 02:49:25 -05:00
James Cotton
20775e806c Merge branch 'OP-378_James_INS' of ssh://git.openpilot.org/OpenPilot into OP-378_James_INS 2011-05-25 22:19:31 -05:00
Stacey Sheldon
8bd08e381a build: add support for EE bank on pipx boards
The pipxtreme boards use a sector of the on-board flash
for configuration storage.  Adjust the memory maps to
reflect this.

The board_info_blob is also extended to include the EE
bank definitions.  This should be used by the pipxtreme
firmware rather than determining it based on chip size.
2011-05-24 01:10:40 -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
504fe7a664 dfu: fix typo WRITABLA -> WRITABLE 2011-05-24 00:58:10 -04:00
Stacey Sheldon
96827eecff build: Make all flight sw use pios_board_info_blob
Now that every bootloader build has a board info blob,
make all fw and bl images use it.

The following MACROS are removed:
  BOARD_TYPE, BOARD_REVISION, BOOTLOADER_VERSION,
  START_OF_USER_CODE, HW_TYPE

These values are now ONLY available from the bootloader
flash via the pios_board_info_blob symbol.  These values
must not be #defined or otherwise hard-coded into the
firmware in any way.  The bootloader flash is the only
valid source for this information.

NOTE: To ensure that we have an upgrade path from an
      old bootloader (without board_info_blob) to a
      new bootloader (with board_info_blob), it is
      essential that the bu_* targets do not depend
      on (or validate) the board_info_blob being present
      in the bootloader flash.
2011-05-24 00:58:10 -04:00
David Carlson
38d416cf92 Fix Y/Z axis mixup in self-test procedure (currently not used) 2011-05-23 20:53:15 -07:00
Stacey Sheldon
2d47427b05 link: Use alternate declaration of pios_board_info_blob
Make use of a shorter notation to allow the linker to provide
the correct address for pios_board_info_blob.
2011-05-23 18:21:42 -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
James Cotton
50161b4ad8 OP-378: Continue updating BMA180 sensor driver. 2011-05-20 16:38:53 -05:00
James Cotton
5d78a68bee OP-378: Got BMA180 working. 2011-05-19 11:36:43 -05:00
James Cotton
3093d26cf4 OP-378: Update BMP085 driver for convention that 0 is success, < 0 is failure 2011-05-19 11:36:32 -05:00
James Cotton
750097ea73 OP-378: Small changes to get drivers working again. Fix I2C port for IMU3000
and change convention so that 0 is success, < 0 is error.
2011-05-18 23:35:45 -05:00
James Cotton
ab3127a0ea OP-378 Update the INS Makefile for the new file formats 2011-05-18 14:39:38 -05:00
James Cotton
b7f25ea5d8 OP-378: Get startup script for HD parts working for INS 2011-05-18 13:41:31 -05:00
James Cotton
81b7fb6185 Merge branch 'master' into OP-378_James_INS 2011-05-18 12:50:29 -05:00
James Cotton
dd1e10a15d PiOS/Spektrum: Start swapping to using RTC and calls to PIOS_Spektrum_Get() to
monitor when call Spektrum watchdog
2011-05-18 01:46:00 -05:00
James Cotton
bdf862a712 PIOS/RTC: Add functions to get the rate. Also changed Start to Init to be more
consistent with pios.
2011-05-18 01:45:21 -05:00
Stacey Sheldon
575010169a build: add pios_board_info_blob struct to bootloader flash image
The board info blob is stored in the last 128 bytes of the
bootloader's flash bank.  You can access this data from the
application firmware like this:
  #include <pios_board_info.h>

  if (pios_board_info_blob.magic == PIOS_BOARD_INFO_BLOB_MAGIC) {
    /* Check some other fields */
  }

DO NOT link pios_board_info.c into your application firmware.
Only bootloaders should provide the content for the board info
structure.  The application firmware is only a user of the data.
2011-05-16 08:30:30 -04:00
James Cotton
feb9c02780 OP-216: Small typo in flashfs code (thanks Zippe) 2011-05-15 00:18:15 -05:00
James Cotton
d312e876c4 OP-216: Some small bugs where things were stored 2011-05-14 16:11:30 -05:00
James Cotton
c689d97961 OP-216: Improved error handling 2011-05-14 14:28:11 -05:00
James Cotton
0438f5cf66 OP-216: Check for existence of file table in flash and wipe sector and create
it if missing.
2011-05-14 14:23:23 -05:00
James Cotton
2087441006 OP-216: Make the object manager use new flash fs for objects 2011-05-14 14:23:02 -05:00
James Cotton
7e6e7bb391 OP-499 OP-216: Simple list of objects saved in flash to prevent objId
collision.  Note, this will wipe ALL your settings.
2011-05-14 14:05:02 -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
18ea93119f build: Add support for BL_Updaters to top-level makefile
New targets:
 - make blupd_all_clean
 - make blupd_all
 - make blupd_openpilot
 - make blupd_ahrs
 - make blupd_coptercontrol
 - make blupd_pipxtreme

These targets are also included in the 'all_flight' target.
2011-05-08 12:40:28 -04:00
Stacey Sheldon
2301600f11 Make missing definitions for essential macros more obvious 2011-05-07 18:05:50 -04:00
sambas
d61f3d4d94 Merge branch 'OP-378_CheBuzz_INS' of ssh://git.openpilot.org/OpenPilot into OP-378_CheBuzz_INS 2011-05-07 18:26:12 +03:00
Corvus Corax
5d952f81e3 PIOS: BL_HELPER: refactored function names 2011-04-23 21:11:17 +02:00
Corvus Corax
150464344d BL_HELPER: call CRC_Ini() from within CRC check function 2011-04-23 20:55:21 +02:00
Corvus Corax
357bc369db PIOS: Bootloader Helper functions should sit in HAL, not duplicated in every single architecture. 2011-04-23 19:40:41 +02:00
Corvus Corax
192e31986d PIOS, Modules/FirmwareIAP: Use correct HAL for CPU serial 2011-04-23 18:30:32 +02:00
David Buzz Carlson
876ca3044c Added EKF code. Most of this was bulk copy and paste from the AHRS, so a lot of verification needs to take place. Grabbing sensor data remains untested. 2011-04-20 03:37:50 -07:00
chebuzz
06443b4281 OP-378 - OP/INS - Add initial support for INS. HMC5883, BMP085, BMA180, IMU300 all added. Throrough verification has not been done on any of them. main() simply calls self-test functions on all of the hardware.
AHRS_comms still needs to be implemented.  INS/GPS functionality still needs to be implemented.  Double-check of the new drivers still needs to be done.


git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3162 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-14 12:46:39 +00:00
chebuzz
7fcde2f248 OP-377 PiOS/BMP085 Update BMP085 driver to be FreeRTOS agnostic
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3161 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-14 09:53:04 +00:00
chebuzz
195e93c0d6 OP-377 PiOS/BMP085 - Update BMP085 driver to be FreeRTOS agnostic. This is required since new INS does not run FreeRTOS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3160 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-14 09:46:23 +00:00
sambas
3b9e762b69 OP-22 Flight/PiOS: Spektrum bugfix, for other than DX7
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3154 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-11 13:42:32 +00:00
sambas
dabc33c71c OP-22 Flight/PiOS: fix for 11ms framerate, Spektrum supervisor timer must have atleast one interrupt between frames
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3134 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-09 14:51:39 +00:00
sambas
cdfbf8614c OP-22 Flight/PiOS: Spektrum parser handles all known TXs, or atleast should. Test it well before sending aircraft to the sky.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3133 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-09 14:17:23 +00:00
pip
4fab429f50 Corrected the #ifdef line (line 26/27), it was "#ifndef STM32103CB_AHRS_H_", it's now "#ifndef STM32103CB_CC_H_"
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3022 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-10 20:22:20 +00:00
FredericG
fc18f1cb36 OP-326 Long I2C messages starve the other drivers
We where hammered on the head with interrupts that the driver does not need, not allowing the ISRs of other drivers to run 

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3018 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-09 17:12:18 +00:00
FredericG
4c51e80b5b OP-340 I2C NACK causes next transfers to fail.
Needed to clear the NACK flag in the ISR, or the next transfers seem to get a nack too because the IRQ comes back

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3017 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-09 16:58:37 +00:00
FredericG
f6a2584f12 No code change; commented debug-code
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3016 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-09 16:52:09 +00:00
edouard
aa097ec400 OP-339 Update USB descriptors on CopterControl and OpenPilot to reflect the new convention.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3015 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-09 07:21:01 +00:00
sambas
b240915d05 PPM driver cleanup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3010 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-08 18:52:50 +00:00
pip
0d389c4d34 Forgot to comment out serial port debugging option .. sorry - again
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3009 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-08 18:32:16 +00:00
pip
48cecfaacd Forgot to commit this file - sorry
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3008 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-08 18:29:48 +00:00
sambas
0eeacb44bd PPM driver for OP, first test
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3007 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-08 18:08:13 +00:00
FredericG
6d0679b9e9 Small fix to PIOS_DEBUG_PinValue8Bit(), was also influencing other IO pins
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2975 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-05 12:53:52 +00:00
FredericG
35475820ad 2 new PIOS_DEBUG functions to output a value on the debug-pins. In its current implementation it will probably not work on CC....
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2971 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-05 09:23:57 +00:00
peabody124
ec29920a8d OP-315: Clean up RTC calls into a separate function. Unfortunately still need
to add function headers into portmacro.h

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2942 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-03 04:28:38 +00:00
peabody124
3e2c542eef OP-315 Use RTC at 65 khz as time base for task switching
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2941 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-03 04:28:34 +00:00
peabody124
267efe0b88 OP-315: Patch to FreeRTOS port to allow querying the run time for tasks. This
will need to be forward ported (and ideally pushed up stream) for FreeRTOS
updates

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2939 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-03 04:28:22 +00:00
sambas
d9ad0e9a8f OP-22 Flight/PiOS: Spektrum hacks, doubled supervisor timer and ?loss? counter to the channel8 value
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2907 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-27 19:03:58 +00:00
pip
62e510a696 Set unused/unconnected pins as outputs.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2875 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-24 17:31:24 +00:00
pip
578b779a76 Fixed PPM compile errors - you can now compile for PPM input if desired.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2818 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-20 13:41:19 +00:00
sambas
8d6f320fca Handle I2C defines better, needed in CC for now
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2815 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-20 07:14:02 +00:00
stac
bbb3882826 bl_openpilot: bind to new COM, USART and SPI drivers
- Removed all unnecessary device instances and their cfg's.
  - SPI to SD card
  - I2C
  - Aux USART
- Moved SPI baudrate setting into cfg rather than init func.
- Abstracted forcing slave select under OPAHRS API.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2786 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-14 01:17:32 +00:00
sambas
f3bce1705b OP-22 Flight/PiOS: Spektrum fix, OP tested on ground not flown yet, CC not tested.
pios_rcinput.[ch] outdated

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2775 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-13 13:10:02 +00:00
stac
66a9d53d0a hwinit: Convert I2C driver to dynamic init
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2773 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-12 22:19:54 +00:00
stac
3fda65c5d3 hwinit: Convert SPI drivers to dynamic init
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2772 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-12 22:19:50 +00:00
stac
841b0d3d6d hwinit: Convert COM and USART to dynamic init
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2771 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-12 22:19:43 +00:00
peabody124
9ed0882df9 PiOS/USART: Apply same fix as Spektrum to force read of DR whenever there is an
error flag set

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2760 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:52 +00:00
peabody124
7e78e8af04 CC-21 PiOS/Spektrum: Prevent condition that can tie up USART interrupt and locks up
CC.  Must always read the DR to clear the error flags.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2759 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:49 +00:00
peabody124
a3ba9c3781 CC-21 Make it possible to enable Spektrum on CC, although it eats up S6 in
order to free a timer.  Mode PIOS_DELAY (not working cleanly) to TIM3 because
Spektrum resets TIM2 count.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2758 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:45 +00:00
peabody124
03fb82ad0a CC Attitude: Change when AttitudeRaw is set to end of attitude estimation,
because this is what is determines when the Stabilization code executes.
Because we aren't oversampling gyros relative to the PID in CC we should set
the attitude first (computational time to do so is negligible).

Also change update rate to 500 Hz.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2750 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:18 +00:00
pip
6559615ef8 Made quite a few constants/#defines capitals (previously lower case)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2743 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-06 10:55:08 +00:00
peabody124
56d4d54a97 CC: Increase the memory for the modules after removing PriTxTask from CC and
also increase the telem queue to decrease event errors (can be reverted later if
we need the memory back)

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2730 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-05 10:52:59 +00:00
peabody124
f97d853c80 Make the PriTx queue optional which saves 700 bytes
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2729 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-05 10:52:52 +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
cf2e9fb349 Memory: Also allow overriding Stabilization stack size
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2690 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-02 08:57:34 +00:00
peabody124
b1e4b65f3d CC-1 Bigger oversampling window for CC sensor data
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2667 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:31 +00:00
peabody124
97acaa2402 CC-15 Gets settings saved to flash chip on CC using crude sector based storage.
Sector based on Object ID so could overlap :-(.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2662 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:12 +00:00
peabody124
ea91042f38 CC-6 Fixed bug in flash read write addresses
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2661 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:08 +00:00
peabody124
e27c9c0b7a CC-6 Rename Flash function to not be all upper case consistent with other PIOS
functions

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2660 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:04 +00:00
peabody124
1d2ad6e9cb Telemetry: Move the telem stack size to the board definition file since CC
needs less

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2659 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:17:59 +00:00
peabody124
c9207b3754 CC-14 PIOS/Servo: Set more than two bank speeds
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2658 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:17:55 +00:00
peabody124
063c58e7c0 CC-12 Enable Watchdog on CC
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2653 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:17:32 +00:00
peabody124
037a63ee1d CC-1 CC-8 Cache the oversampled gyro value and use that to get rid of glitches.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2652 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:17:27 +00:00
stac
880a68a788 uavobj: Convert bootloader-compatible builds to autogen init
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2633 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-31 00:57:24 +00:00
stac
b5426e09d0 uavobj: Convert CC over to use autogenerated uavobjinit
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2631 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-30 22:46:51 +00:00
stac
083e2b01a9 uavobject: Use linker to produce uavobj initcalls
The UAVObject initcall list is now automatically
generated at link time based on the exact set of
UAVObjects linked into the firmware image.

This will allow any subset of UAVObjects to be
used in any firmware image.

The uavobj_initcall() macro automatically adds the
marked function's address into the .initcalluavobj.init
ELF section.

The UAVObjectsInitializeAll() function now simply
iterates over the functions listed in the
.initcalluavobj.init section and calls them.

You can see the contents of this section in the ELF file
like this:
  ./tools/arm-2009q3/bin/arm-none-eabi-objdump \
      --syms -j .initcalluavobj.init \
      ./build/openpilot/OpenPilot.elf

This is fundamentally the same mechanism that the Linux
kernel uses to initialize the specific set of components
that the user has selected in their kernel configuration.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2630 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-30 22:46:48 +00:00
pip
5daf6fd1c0 Added PIP_DUMP_RAW option in ahrs.c and brought back public acces to function PIOS_ADC_GetOverSampling(void).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2623 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-29 15:59:35 +00:00
sambas
ba5ebb6b13 OP-303 PIOS/Sonar: preliminary support for HCSR04 ultrasound altimeter module, tested and working :)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2610 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-28 19:21:22 +00:00
sambas
195b63b6bb OP-22 PIOS/Spektrum: Made spektrum input driver, NOT YET TESTED!!!, also preliminary support for CC, sync/supv timer not yet fixed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2602 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-28 09:25:30 +00:00
edouard
df0b5f9b6c CC-13 CopterControl bootloader first pass. Does not talk on USB for some reason, but starts.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2601 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-27 22:33:13 +00:00
peabody124
99eb1a89f9 CC-5 PIOS/Servo: CC default servo position was 2000 from testing. HUGE SAFETY
ERROR

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2593 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-26 01:25:29 +00:00
peabody124
c759253b77 CC-6 Flash chip working to read ID. Also tweaked how the semaphore for the SPI
bus is used to be a bit safer.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2591 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-25 17:46:27 +00:00
peabody124
00a3e82c70 CC-6 PIOS/SPI: Add semaphore to SPI device structure that can be used to ensure
only one CS line is asserted.  No checks are enforced on this by the SPI code
as I cant see a clean way of it being aware of the CS lines.  We could add
another CS mode those which is driver managed per transfer and has a GPIO i
line for each device.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2579 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:52:17 +00:00
peabody124
d2f3e0d379 CC-6 Initial code for the flash chip on CC
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2578 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:52:14 +00:00
peabody124
d4b4a6ca37 CC-3 Modules/CCAttitude: Add oversamplign to the accel data
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2576 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:52:08 +00:00
peabody124
21e3441f00 CC-3 Set gyro to downsample 10x to 250 Hz
Conflicts:

	flight/CopterControl/System/inc/FreeRTOSConfig.h

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2575 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:52:05 +00:00
peabody124
23599ee59f CC: Set the buffer size of USART smaller and register teh AHRSSettings
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2573 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:59 +00:00
peabody124
2881370eab OP-291 PIOS/Servo: Refer to channels by TIM_Channel_x to be consistent with PWM
system

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2571 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:54 +00:00
peabody124
99fcd089d4 OP-291 PIOS/Servo: Make the remapping of timers a part of the driver structure
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2569 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:48 +00:00
peabody124
da96ce15b9 OP-256 PIOS/PWM: Converting PWM input to use standard driver structure.
Beginning of unifying the input types into PIOS_RECEIVER.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2568 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:45 +00:00
peabody124
01b09668aa OP-291 PIOS/Servo: Dont need to power up GPIOA/GPIOB in servo since done in sys
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2567 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:41 +00:00
peabody124
99f2f3c68b OP-291 CC Servo configuration: Gets S5 and S6 working
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2566 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:38 +00:00
peabody124
108ea8c959 OP-295 Get CC pin mappings consistent for using the temperature sensor
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2565 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:34 +00:00
peabody124
607cdcac21 Upgrade FreeRTOS to the latest version (6.1.1) which allows compiling with -Os
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2562 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:26 +00:00
FredericG
70f11543e0 Fixed debugging via Servo PWM pins
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2544 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-23 18:11:47 +00:00
peabody124
65e02eeb25 OP-293 PIOS/ADC: Fixed issue with DMA engine and odd numbers of channels not
accounting for the fact they are transferred in pairs when using ADC2

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2510 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-21 17:18:20 +00:00
peabody124
2d9f7f32d1 OP-291 PiOS/Servo: Converting output to use driver system
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2499 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-21 03:40:21 +00:00
peabody124
cf17569de7 CC-1 Modules/CCAtttitude: Calling the ADXL345 library and getting the accel and
gyro data into attitude raw.  Hardcoded calibration for now.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2474 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 08:45:40 +00:00
peabody124
18deba48c1 CC-6 PIOS/ADXL345: Helper functions for the ADXL345 chip. Need to add
semaphores for sharing the bus between the flash chip and this though.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2473 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 08:45:37 +00:00
peabody124
21b4e55029 OP-14 OP-16: I2C Improvements
1) Added nack counter monitoring
2) Made timeout for getting semaphore in I2C user space code use the one from
driver and record timeouts.  This does not influence timeouts in the non
FreeRTOS case
3) Remove case block from the error handler so that all bus errors reset the
i2c interface

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2469 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 02:11:12 +00:00
peabody124
0e441a20f3 OP-14 OP-16 I2C: When sending STOP signal after NAK, mask interrupts first
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2468 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 02:11:08 +00:00
peabody124
0d567f4e4b OP-14 I2C: Don't log a NAK as an error and also after NAKs seem to get an event
from the stop bit

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2466 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 02:11:02 +00:00
peabody124
31919241b8 OP-14 I2C: Adding new event to the ignore list
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2465 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 02:10:59 +00:00
peabody124
68536d2fd1 OP-14 I2C: Throw away 0 event in error handler
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2464 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 02:10:56 +00:00
peabody124
c2bdf624e8 OP-269 PIOS/ADC: Previous ADC driver update changed the PCLK2 divider for all
projects which messed up a timer on OP and serial on PipX.  Now this is only
changed for AHRS.  Ideally wouldn't even change for that but then ADC runs too
fast and we get a lot more CRC errors for dealing with all that data.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2459 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 23:00:48 +00:00
edouard
b3ca037308 OP-277 Update all files to use a BOARD_TYPE and BOARD_REVISION scheme through the whole codebase.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2458 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 20:41:55 +00:00
peabody124
04a00c7327 OP-269 PIOS/ADC: Change the initialization code to work well when changing
oversampling

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2452 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 16:02:53 +00:00
peabody124
ad7a6e6071 OP-269 PIOS/ADC: Only enable the half and full conversion flag for the double
buffering

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2451 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 16:02:50 +00:00
peabody124
0259b6d1f1 OP-269 PIOS/ADC: First part of conversion to driver structures
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2444 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 02:45:39 +00:00
peabody124
ab75e8117f OP-265 CC: Getting GPIO lines working
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2443 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 02:45:34 +00:00
peabody124
81b0c3fdb6 OP-269 PiOS/ADC: Moved AHRS ADC code to PiOS and made all the projects use it
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2440 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 02:45:22 +00:00
zedamota
ad0b3e911d OP-268/PipX Bootloader - Changed Timers for MD device, auto memory space fetching (as per people request ;)). Stripped unused functions to reduce size.
TESTED WORKS.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2431 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 15:33:24 +00:00
peabody124
ad7a4cded0 OP-265 PIOS/USB: Put USB buffer size in the board file
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2428 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 02:15:19 +00:00
peabody124
94ff276522 OP-265 CC: Tweaking objects included and the memory requirements
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2426 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:49 +00:00
peabody124
8a32d88b10 OP-265 CC: More work to get it running
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2425 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:47 +00:00
peabody124
c59a1ff018 OP-265 OP-266: FreeRTOS configuration per project because of available heap
size (may eventually need to be per revision if we get bigger ram).  Typo in a
the ifdefs to get allow disabling SDCARD

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2423 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:42 +00:00
peabody124
ea851803af OP-266 CopterControl: Continue trying to strip out as much as possible to get
it to fit

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2422 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:39 +00:00
peabody124
f0c36b13a4 PiOS/USART: Use the buffer size defined in the board file
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2421 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:37 +00:00
peabody124
7c9b3b3d69 OP-265 AHRS: New file locations
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2420 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:34 +00:00
peabody124
79caad654b CopterControl: Don't need altitude sensor support
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2418 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:30 +00:00
peabody124
940792db5c OP-265 CopterControl: Fork main OpenPilot directory
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2416 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:24 +00:00
peabody124
fc54159369 OP-265 Flight reorganization of UAVObjects and Modules up a directory
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2415 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:19 +00:00
pip
c7ecfd2f60 Fixed pios_board.h to include the pipx .h file
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2407 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-13 19:37:01 +00:00
pip
b647d93add Added pipx board file.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2406 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-13 19:34:59 +00:00
peabody124
07798bb2db PIOS/WDG: Add back the returned delay for code that wants to clear WDG more
rarely

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2403 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-13 19:01:33 +00:00
zedamota
691c58a583 OP-268/PipX Bootloader - Changed the size of BL def.
New naming convention for the linker files:
link_(board_name)_(density)_(bl usage).ld

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2401 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-13 17:34:22 +00:00
zedamota
1f89ee1865 OP-21/Bootloader - Change HW ID to 16bits. Should still be compatible with the old version.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2398 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-13 14:36:32 +00:00
peabody124
d846288cec OP-14 I2C: Remove delay in I2C IRQ handlers
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2378 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-11 03:50:23 +00:00
peabody124
bbbd9a10e3 OP-14 I2C Diagnostics: Improve the logging so that the events going into FSM
are logged, and separately the erirq and evirq logs are exported

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2368 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-10 05:42:53 +00:00
peabody124
b173d74821 OP-237 I2C ESC support. This _will_ require you to reconfigure your
ActuatorSettings although for PWM aircrafts it should be done exactly as before

Actuator: Store the update times and maximum update time

OP-14 I2C: Start tracking short history of events and states in driver for
logging
OP-237 Flight/Actuator: Support for I2C based ESCs

OP-237 MK_ESC: Send all four motors as one atomic transfer

OP-237 Flight/Actuator: Allow channels to be mapped to MK I2C interface.  Currently
mixer channels are either PWM or MK but in the future this will change to
support more than 8 channels.

OP-16 PiOS/I2C: Further work to try and make I2C more stable, mstly special case
handline in IRQ

OP-237 I2C ESC: Support for Astect 4 channel ESCs

OP-237: When the I2C Actuator write update fails track this

OP-237 Actuator Settings: Change the way motor types are selected to keep that
information more appropriately within ActuatorSettings instead of MixerSettings

Also make motors stay at or above neutral when armed and throttle > 0

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2366 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-10 01:11:44 +00:00
peabody124
ed11e64bb2 OP-251 Watchdog: Get rid of the old extra watchdog module and instead have
tasks directly update a flag for each module (which they register) and when all
flags set clear the watchdog then.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2365 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-10 00:16:30 +00:00
vassilis
1e78cc7a30 Flight/FlightPlan: First release of flight plan scripting. The scripting engine is based on the PyMite Python VM. The released code is able to execute a simple python script on the target. However it is currently disabled from the makefile due to a few issues with more complex scripts. When the library is enabled in the makefile a python interpreter will be needed to compile the firmware since some intermediate code is generated by PyMite.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2364 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-09 22:36:15 +00:00
peabody124
5734e1f437 OP-176 PIOS/ADC: Decrease the priority of the ADC DMA/IRQ
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2360 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-09 20:49:43 +00:00
peabody124
0175e25ddf Flight/ADC: If there is a DMA error for the ADC transfer dont copy those values
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2359 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-09 20:49:39 +00:00
peabody124
148ea6fdc1 Flight: Make PWM outputs default to 0 us to avoid either pushing servos to
exteremes or running up motors

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2358 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-09 20:49:35 +00:00
peabody124
0f07d7f671 OP-240 OP-176 Flight: Setting the priority group back to 4 (anything higher
priority preempts) and adjusting the priorities around to be more sensible.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2355 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-09 20:49:26 +00:00
vassilis
407e660c97 Flight/TaskMonitor: Create TaskMonitor library, used to monitor the remaining task size of all running tasks.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2349 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-08 23:43:34 +00:00