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

390 Commits

Author SHA1 Message Date
FredericG
f8b793e54d ET OSD, WIP. Encoding of voltage and GPS data is now known
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@750 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-12 17:44:24 +00:00
fredericg
39aaf0868a MkSerial: Adapt to GpsPosition => ActualPosition
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@744 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-11 15:54:13 +00:00
vassilis
b6160c8a9b Flight/Telemetry Avoid bunching of periodic updates by spreading them.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@739 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-11 02:24:26 +00:00
vassilis
eaa9d97939 Flight/GPS Renamed GPSObject to PositionActual and implemented field for GPS status (NoGPS, NoFix, Fix2D and Fix3D)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@734 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-10 01:28:06 +00:00
FredericG
5472d531e7 Starting OSD module for ET OSD Std
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@732 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-09 20:43:43 +00:00
fredericg
e550243c13 Removed unwanted quotes in build-output when building under windows/dos
before
  "**** Compiling C :" ../PiOS/STM32F10x/pios_sys.c "->" Build/pios_sys.o
after
  **** Compiling C : ../PiOS/STM32F10x/pios_sys.c -> Build/pios_sys.o

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@731 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-09 16:38:10 +00:00
FredericG
2895925bd2 Small fixes
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@726 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-07 19:56:42 +00:00
fredericg
426b4344b0 Detect if connected to NaviCtrl or FlightCtrl and use appropriate messages - untested
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@725 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-07 14:50:48 +00:00
fredericg
2e6e2537f5 Fix: including of Example Module did not work any more
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@724 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-07 11:12:58 +00:00
fredericg
ef73edfd0d Detect of quotes are needed and use quotes in echo-commands while generating InitMods.c
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@723 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-06 16:21:21 +00:00
FredericG
db629cebc5 Some cleanup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@717 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-05 15:32:57 +00:00
FredericG
8a7eba0675 List of modules in Makefile - Automatic init of included modules
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@716 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-05 15:17:31 +00:00
FredericG
7476aa61b9 Fixes: TO did not work / values need to be signed
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@712 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-03 19:57:58 +00:00
fredericg
f8f2c3b5d2 Timeout detection in WaitForMsg
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@711 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-03 16:31:48 +00:00
stac
e2721136ae GPS: fix buffer overrun in nmeaProcess()
nmeaProcess was attempting to null-terminate the
NMEA sentence but was not considering that the
preceeding loop may have looped beyond the end
of the packet buffer.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@709 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-03 13:58:18 +00:00
stac
a03b948fb5 gdb: add gdb init + hooks for AHRS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@708 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-03 13:58:16 +00:00
fredericg
6577dce1d5 Report attitude obj
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@707 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-03 11:32:02 +00:00
fredericg
59250845ea MKSerial: composing messages
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@703 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-02 19:44:57 +00:00
FredericG
4d227cd8b6 MKSerial: print attitude
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@702 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-02 06:57:41 +00:00
fredericg
a2beb49257 Changed PIOS_DEBUG_Panic()
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@694 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-31 16:22:58 +00:00
fredericg
17f6646f6e Simplified the way test-applications can be built
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@693 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-31 16:22:10 +00:00
sambas
c53aa219d5 OP-25 Flight/GPS: Speed from knots to m/s
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@691 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-30 18:09:37 +00:00
fredericg
0fc8240b12 Display incoming messages - untested
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@688 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-30 13:28:53 +00:00
sambas
4f4391708e OP-25 Flight/GPS: Heading and GroundSpeed used, speed in knots?
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@687 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-30 06:31:58 +00:00
vassilis
6414887dcc Flight/ManualControl Added support for reversing inputs
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@685 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-30 01:58:15 +00:00
vassilis
c22804e90a Flight/UAVObjects Modify update rate and acked flag of periodic objects, added new gpsobject fields
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@684 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-30 01:56:43 +00:00
fredericg
dc2e7a041a Moved MKSerial to Modules/MK dir
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@672 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-27 10:30:39 +00:00
stac
140a51932f spi: fix cut/paste error for AHRS SPI setup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@669 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-27 01:37:43 +00:00
stac
918250868b irq_stack: correct one word overlap of _irq_stack_top
The previous fix in r652 was _almost_ right.  There was
still a one word (4-byte) overlap between _irq_stack_top
and the start of the data segment.

_irq_stack_end + _irq_stack_size leaves the '.' pointer at
the word immediatly after the stack.  This commit corrects
this error and places _irq_stack_top on the last word
_inside_ the reserved space for the irq stack.

[Before]
  $ ./tools/arm-2009q3/bin/arm-none-eabi-nm -n ./build/openpilot/OpenPilot.elf
  ...
  20000000 A SRAM_BASE
  20000000 B _irq_stack_end
  20000400 d LED_GPIO_PORT   <--- overlap
  20000400 B _irq_stack_top  <--- overlap
  20000400 D _sdata
  20000408 d ADC_GPIO_PORT
  ...

[After]
  $ ./tools/arm-2009q3/bin/arm-none-eabi-nm -n ./build/openpilot/OpenPilot.elf
  ...
  20000000 A SRAM_BASE
  20000000 B _irq_stack_end
  200003fc B _irq_stack_top
  20000400 d LED_GPIO_PORT
  20000400 D _sdata
  20000408 d ADC_GPIO_PORT
  ...

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@668 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-27 01:37:40 +00:00
sambas
ebff9f3638 OP-25 Flight/GPS: New GPS fields in use
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@665 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-25 05:32:43 +00:00
sambas
f7f1b37c62 OP-25 Flight/GPS: More object fields for GPS module
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@664 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-25 05:14:52 +00:00
vassilis
9be49ca54d Flight/Attitude Minor change in field names and task priority
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@662 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-25 00:49:46 +00:00
sambas
ec40618664 OP-25 Flight/GPS: Optimized GPS, buffer overflow fixed, RMC sentence handler
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@660 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-24 19:49:37 +00:00
stac
d678720855 i2c: i2c errors no longer mapped to event channel
Both EVents and ERrors were mistakenly being mapped to the
EVent IRQ channel.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@659 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-24 16:33:49 +00:00
stac
874239154a Turn on -Werror on openpilot firmware build
This commit fixes all existing warnings.

All basic compiler warnings will now be treated as errors.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@658 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-24 16:33:46 +00:00
stac
6b2760da1a USB HID: basic COM functionality over USB HID
This fixes the COM interface over USB HID to the point where
it can establish and maintain solid communications with the UAVObject
Browser in the GCS.

Tested only on Linux.  The USB HID interface is still disabled for now
until it is tested successfully by a wider group.

Edit telemetry.c and set ALLOW_HID_TELEMETRY to 1 to enable telemetry
over the USB HID interface and report your results in the forum.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@656 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-24 16:33:40 +00:00
stac
69de42db49 Add AHRS attitude module and driver skeletons
- New Attitude module for AHRS (skeleton)
 - New AttitudeSettings UAVobject
 - New AttitudeActual UAVobject
 - Regenerated UAVobjects
 - Added new UAVobjects to OpenPilot and GCS builds
 - New PiOS driver for OpenPilot AHRS (stubs only)

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@655 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-24 16:33:36 +00:00
stac
e892dcb033 bmp085: create semaphore prior to configuring irq
Since the EXTI and NVIC init routines automatically enable the IRQ when it
is configured, it is possible for the EOC interrupt to fire immediately
upon configuring the IRQ.

Since the handler for the EOC interrupt (EXTI15_10_IRQHandler) does a
xSemaphoreGiveFromISR, it is important to have the semaphore initialized
prior to enabling the interrupt.

Also, added missing include for altitude module.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@654 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-24 16:33:30 +00:00
stac
cc6348934f bmp085: Add missing include for altitude module
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@653 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-24 16:33:29 +00:00
stac
41da33c920 irq_stack: provide a proper IRQ stack for FreeRTOS
The MSP (IRQ stack) was trampling across the data segment.  This was
especially disastrous in the USB interrupts since they allocate and
fill buffers on the stack.

The root of this trampling was that no RAM was being reserved for the
MSP and a hard-coded value of (0x20000400) was used as the initial MSP
base address.  This resulted in the first 1K bytes of the .data segment
overlapping with the IRQ stack.  As can be expected, all sorts of badness
resulted when interrupts were firing and trampling over variables.

This change reserves the first _isr_stack_size bytes at the beginning of
RAM for the MSP.  If an ISR call chain runs off of the end of the MSP,
a Hard Fault will be generated as the (now invalid) sp is accessed.

There are two stack pointers in the Cortex-M3 CPU.  These are MSP (Main
Stack Pointer) and PSP (Process Stack Pointer).

Which stack is in use at any given time is determined by the following table:

   Mode      CONTROL[ASPSEL]    Stack
   ----      ---------------    -----
   Thread    0                  MSP
   Thread    1                  PSP
   Handler   x                  MSP

Out of reset, the CPU is in Thread mode using the MSP.  The initial value
of the MSP is automatically loaded from address 0 (lowest word in boot
region -- typically FLASH) immediately prior to jumping to the reset vector.

When running at interrupt level, the Cortex-M3 always uses the MSP and the
ASPSEL bit is forced to zero.

FreeRTOS allocates a separate stack for each task upon task creation.  These
task stacks are allocated from the heap.  FreeRTOS sets the active stack to
the PSP whenever running in a task context (both in privileged mode and user
mode).

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@652 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-24 16:33:26 +00:00
FredericG
0723ff8b75 Started new module
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@650 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-23 19:01:07 +00:00
sambas
d7b3a158d6 OP-22 Flight/PiOS: Spektrum bind function tested and working.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@649 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-23 11:19:28 +00:00
FredericG
6f0401b0d9 insignificant changes
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@648 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-22 06:38:05 +00:00
FredericG
09981b39c2 A few small fixes
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@647 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-22 06:30:42 +00:00
vassilis
f143628e80 Flight/Altitude Update altitude object with new metafields, modified update rates in XML and flight s/w
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@645 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-20 01:21:44 +00:00
vassilis
e3556a3f31 OP-48 Flight/UAVObjects Add access mode field in the metadata. This field can be used to disable local UAVObject updates in the flight or GCS software. It is transparent to any modules and plug-ins, the access control is done by the UAVObjectManager. This functionality is needed for the HITL simulation since certain objects that are normally updated by the flight software (e.g. AttitudeActual, Airspeed etc) will now need to be updated by the GCS. The modules reading those objects do not need to know if the object is updated by the GCS or by the flight software, when HITL is enabled it is transparent to the modules.
NOTE: Delete any metaobjects that you may have saved in the SD card (delete all .obj files). 


git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@643 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-20 00:58:40 +00:00
stac
d02a3325d9 altitude: Add altitude module which reads BMP085
This module reads from the BMP085 pressure sensor.  It periodically
updates the pressure (kPa) and temperature (C) as well as the
calculated altitude (m).

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@640 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-19 04:55:56 +00:00
sambas
b7601c9765 OP-25 Flight/GPS: changes for OPGPS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@639 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-18 12:49:47 +00:00
sambas
0e81831399 OP-25 Flight/GPS: port speed corrected for OPGPS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@638 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-18 11:42:57 +00:00
stac
514d46f5b6 freertos: fix RTOS API calls from interrupt level
FreeRTOS has a strict requirement that even interrupt-safe API calls (ie.
those ending in "FromISR") can only be called from ISRs that are at lesser
or equal priorities to configMAX_SYSCALL_INTERRUPT_PRIORITY.  See the
"configKERNEL_INTERRUPT_PRIORITY and configMAX_SYSCALL_INTERRUPT_PRIORITY"
section at:
  http://www.freertos.org/a00110.html

The interrupt numbers used on the Cortex-M3 CPU has a somewhat backward
representation of the interrupt numbers so 255 = lowest priority and
0 = highest priority.

The calculation is further complicated by the STM32 implementation only using
the upper 4 bits of the priority value.  Only 0x00, 0x10, 0x20, ..., 0xE0, 0xF0
represent useful interrupt priorities.

FreeRTOS requires that MAX_SYSCALL and KERNEL interrupt priorities are expressed
as raw unshifted 8-bit values to be programmed directly into the BASEPRI register.

The priority values passed to the NVIC initialization, however, are expected
to be 4-bit values and are shifted up by 4 within NVIC_Init() for you.

The end result is that we need this arrangement:

[highest priority]
   NVIC_0 (Non-maskable-interrupt)
   NVIC_1
   NVIC_2
[Must NOT call FreeRTOS APIs above here]
   configMAX_SYSCALL_INTERRUPT_PRIORITY (now at 48 = 0x30 = NVIC_3)
   PIOS_IRQ_PRIO_HIGHEST (cur. NVIC_4)
   PIOS_IRQ_PRIO_HIGH    (cur. NVIC_5)
   PIOS_IRQ_PRIO_MID     (cur. NVIC_8)
   PIOS_IRQ_PRIO_LOW     (cur. NVIC_12)
   configKERNEL_INTERRUPT_PRIORITY (240 = 0xF0 = NVIC_15)
[lowest priority]

The previous config had configMAX_SYSCALL_INTERRUPT_PRIORITY set at
191 (0xBF) which is effectively NVIC_11.  This was allowing all of
the MID, HIGH and HIGHEST interrupt handlers to preempt the OS in
its critical sections.  Since some of these ISRs were calling
FreeRTOS APIs, this would result in corrupting internal data structures
within the OS.

It should be ok to move the configKERNEL_INTERRUPT_PRIORITY to a higher
priority as long as it is less than configMAX_SYSCALL_INTERRUPT_PRIORITY.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@637 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-18 04:50:38 +00:00