1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-12 20:08:48 +01:00
Commit Graph

864 Commits

Author SHA1 Message Date
stac
47c36b3da0 i2c: fix error in FSM for restarted reads
The transition from the ADDR state to the read state
was broken for non-final reads.  The FSM diagram was
also wrong for this transition.

Since reads are always the last transaction in a sequence
in our current usage, this doesn't actually fix any known
bugs.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1350 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:06 +00:00
stac
98822bff98 i2c: force bus free on warm starts
Since the i2c bus is bidirectional, there are certain
states (eg. part way through a read) where the slave
device is in control of driving the SDA line.

On a cold start (power on), the slave devices are all
quiescent and will not drive the bus.  However, on a warm
start (eg. watchdog or jtag restart), it is possible that as
the CPU boots, the slave device may be holding the SDA line
low.  This is a bus busy condition and will prevent the I2C
bus master in the CPU from being able to seize the bus during
init.

The fix for this is to clock the i2c bus sufficiently to ensure
that the the slave device finishes its transaction and releases
the bus.

Once the slave has released the bus, the bus master can properly
initialize and assert a STOP condition on the bus.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1349 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:02 +00:00
peabody124
2031cfe4d0 OP-119 AHRS: Added error counters for the messages as well as changed an error on AHRS echo back for the HomeLocation message.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1344 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-20 22:52:13 +00:00
peabody124
ef0b307353 [OP-119] Flight/AHRS: Created a HomeLocation object which is updated when the GPS gets an initial 3D fix and populated with the information to convert from LLA from the GPS to NED reference frame. Also added a message for passing the MagneticNorth vector to the AHRS and removed that computation from AHRS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1337 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-19 20:38:27 +00:00
peabody124
3c4def13cc AHRS: Added message to pass GPS information into AHRS from OP. This is then converted
into NED reference frame and used in the INSGPS algorithm, although currently this
information isn't propagated back to OP.  Data structures related to the GPS position
into the algorithm and the position estimate out will likely be in flux.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1334 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-19 05:18:34 +00:00
peabody124
cfd20922cd AHRS: Added the filtered data to the attitude raw object. Even though this seems like an oxymoron it's still raw to the EKF algorithm, and nice to see the real values after filtering to make sure nothing weird is going on. However, if people don't like this I'm open to suggestions/patches. I'd maybe suggest the whole attituderaw object be converted to ahrsraw anyway since it's more like that (eg. none of the values are actually attitude estimates).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1325 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-18 14:54:24 +00:00
peabody124
450cf07a89 AHRS: Keeping magnetometer I2C address consistent with change to I2C driver.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1323 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-18 13:54:15 +00:00
FredericG
b46bc68e96 "addr" field of I2C transaction struct now takes real I2C address, and not address that is pre-shifted to accommodate the R/W bit
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1321 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-18 10:04:55 +00:00
stac
3125ecfc4e AHRSComms: altitude sensor data is now sent to AHRS
Altitude/pressure sensor data is sent to the AHRS whenever
the AltitudeActual object is updated.

Altitude, Pressure and Temperature are sent as floats.
Same as in the UAVObject that goes to the GCS.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1291 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-15 01:02:13 +00:00
stac
c3e509c2cb attituderaw: Replace HeadingActual with AttitudeRaw
AttitudeRaw now includes:
 - magnetometers XYZ (in mG)
 - gyros XYZ (raw ADC samples)
 - accelerometers XYZ (raw ADC samples)
 - placeholder for gyro temp sensors (read as zero for now)

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1289 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-14 23:42:14 +00:00
peabody124
a084d21804 Merge branch 'watchdog'
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1281 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-13 05:18:17 +00:00
stac
f74c6ffdd5 i2c: rewrite i2c layer
The STM32 I2C block has a number of errata associated with it.
These errata are primarily related to timing sensitivities between
the peripheral and the interrupt handler.  In particular, the
correct generation of the stop bit relies on the I2C IRQ running
immediately and not being held off for any reason.

NOTE: The I2C interrupts must be the highest priority IRQs in the
      system to ensure correct operation.

I2C protocol is now implemented as a formal state machine.
See: stm32_i2c_fsm.{dot,jpg} for FSM description.

I2C init is now expressed by const initializers in pios_board.c
for both OP and AHRS boards.

I2C device drivers (ie. bmp085/hmc5843) now pass in const arrays
of an unlimited number of bus transfers to be done atomically.
The I2C adapter driver now handles all bus-level locking across the
list of transactions.  Generation of start/restart/stop conditions
are handled automatically over the list of transactions.

Timeouts have been removed from the API for now.  May be added
back later.

This driver has run error free on both the OP and AHRS boards for
up to 48hrs but it still sometimes fails earlier than that on the OP
board.  There is another possible set of improvements to the driver
that could employ the DMA engine for transfers of >= 2bytes.  This
change would reduce the timing sensitivities between the peripheral
and the driver but unfortunately, both the SPI and I2C interfaces
share the DMA1 engine.  That means only one of these two peripherals
can use the DMA engine and right now, SPI between OP and AHRS is
already using it.

Failures are currently fatal and will lock up the CPU.  This allows
useful information to be obtained in the failure cases.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1241 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-08 04:15:08 +00:00
stac
b6c1f43145 i2c: Change API to allow passing const config data
Mark the I2C_InitStruct parameter as const so that we can pass
const data as the initializer.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1240 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-08 04:14:58 +00:00
peabody124
0fdfbb2ffb Deleting old USB code that I meant to delete a while ago. Also changed names of some functions to OP. Finally fixed the USB taking over PIOS telemetry. Detects the USB cable and that the configuration has been taken by the USB bus.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1217 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-05 23:43:52 +00:00
pip
0331f05e9a Added extra LED's .. now up to 4 LED's .. (PipBee has 4 controllable LED's)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1207 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-04 17:32:42 +00:00
sambas
7f6336d324 OP-22 Flight/PiOS: Spektrum reworked, input is mapped to old aux in receiver connector, works nicely with calibration plugin. Also bind works, just needs config flag to bind on powerup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1189 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-01 10:34:07 +00:00
peabody124
7e6afe5a75 Updated HID code to do packet processing in OS indepdent layer. Should now work on all platforms. Please test and get back to me. Maximum object size of 62 bytes currently.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1174 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-28 18:55:04 +00:00
peabody124
6f63c10dca Removing more debugging comments
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1168 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 23:48:12 +00:00
peabody124
3144e3157c Added back checks on USB cable so falls back to serial telemetry if not plugged in
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1167 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 23:11:28 +00:00
peabody124
27bcd20882 HID working on Mac for telemetry. Need to tweak GCS code for Win/Linux
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1166 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 20:50:20 +00:00
peabody124
dac82b3c17 Getting closer for HID. Now a well behaved HID device. Just need to update GCS plugin for new data format and make PJRC wrappre work properly on Mac
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1165 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 19:09:55 +00:00
peabody124
27d429fe18 Got better HID report design with valid data length embedded in report
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1164 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 17:41:56 +00:00
FredericG
66e22b56ce Fix in bmp085 driver. Was not checking correctly if lock on I2C succeeded => caused an assert when used in combination with other I2C devices
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1163 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 09:52:45 +00:00
peabody124
fe616df48d Further tweaks. Will start trying to get reliable communication with larger report size tomorrow
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1159 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 07:56:50 +00:00
peabody124
840f7ff456 A version of the firmware that successfully Acks back and forth over HID. Still need to refine the PIOS interface and make GCS strip out the report ID data (if necessary). Also note: currently if you run too many modules the watchdog timer kicks in. I haven't determined if this is due to an interrupt binding up or what (and why it doesn't happen more often since I can't find any code that explicitly resets the WWDG).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1157 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 06:22:34 +00:00
peabody124
d89cd43cd1 Further tweaks to the HID update
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1156 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 05:28:04 +00:00
peabody124
c46dcea73a Pretty major update of the USB HID core. Removed a lot of old code related to custom drivers and BSL (which will be brought back under HID). Device enumerates but still not communicating. Hopefully nothing broken, lots changed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1155 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 03:19:07 +00:00
peabody124
d928676f5e More documentation updates, standardizing format to include addtogroup at the beginning of headers so files are associated with modules
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1121 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-16 19:53:35 +00:00
peabody124
99e94228a9 More doxygen updates
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1106 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-16 05:31:11 +00:00
vassilis
9f2a01a78a Flight/Servo Fix Servo driver buffer overflow, was messing up the I2C and altitude readings, now working fine. Servo index used to be 1-8 but the Servo driver was indexing a buffer out of bounds. Changed everything to use index 0-7 for servo outputs.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1061 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-11 01:54:43 +00:00
stac
17bea4cb91 ahrscomms: connect the OP board to the AHRS board
The AHRS comms module now sync's with the AHRS and
exchanges interesting data periodically.  Whenever
the link to the AHRS is down, the AHRSComms alarm is
raised.

This is fairly basic for now but provides the last
piece of the infrastructure to move data back/forth
between the OP and the AHRS.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1014 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:49 +00:00
stac
29a8f05ac9 mag sensor: put some bounds on the parameters
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1012 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:45 +00:00
stac
a3a2dbd634 spi: Add support for hardware CRC generation/checking
PIOS SPI devices may now make use of automatic CRC generation
and checking on block transfers.  Only supports CRC8 for now.

Since the SPI interface CRC calculation continues across message
boundaries (ie. not reset on every transfer), we must manually reset
the CRC registers for every transfer to allow the two sides of the
link to resynchronize.

Unfortunately, resetting the CRC registers requires disabling the
SPI peripheral which must now be done on every block transfer.

Note: The last byte of the tx buffer is never sent and is assumed to
      be a place holder for the tx CRC8.
Note: The last byte of the rx buffer is expected to hold the rx CRC8.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1011 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:42 +00:00
stac
c12b7e3fed spi: tx buffer is now const
Tx buffers should not be modified.  This allows passing const data
to the transfer function.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1010 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:40 +00:00
stac
89a6d6d912 ahrs spi: Add definition of OP<->AHRS SPI protocol
This defines the SPI message format as well as a few
initial messages for moving data across the link.

The v0 messages are place holders for firmware download
in the bootloader.

The v1 messages are to be used by the main application.

Note: This is not the final protocol definition.
      Subject to change without notice.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1004 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:15 +00:00
stac
71e491e3c1 com: mark tx buffer as const throughout API
The com layer transmit functions should provide guarantees
that they will not modify the buffer that you're transmitting.
Declaring the parameter as a pointer to const keeps the underlying
implementations honest.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1001 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:08 +00:00
stac
4f8d81343f spi: assert on invalid SPI device
TransferByte API is simplified to either assert or
return the rx byte.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@999 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:00 +00:00
stac
1169514bf9 sd card: fix SD R1 detection
SD R1 response format is defined as any byte with the MSb
cleared.  The code was testing for any byte that was not 0xFF
which can lead to misinterpreting a byte as the response.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@998 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:20:57 +00:00
dankers
0d38dfc745 Minini removed from PiOS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@966 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-01 08:57:40 +00:00
FredericG
3bc938d45e lowered I2C timoout whne using RTOS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@842 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-21 09:19:02 +00:00
FredericG
c8f818a809 Do not configure the servo outputs when ENABLE_AUX_UART
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@839 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-20 18:02:26 +00:00
FredericG
5d9a718430 Made pios_com_num_devices const
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@837 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-20 17:59:48 +00:00
stac
20fa15c24a spi: fix block transfers
SPI block transfers were broken in commit r759.  Block
transfers are primarily used by the SD card interface so
this also broke accesses to the SD card.

SD card accesses should be fixed now.  Verified by writing
config objects in the GCS and confirming that they survived
a reboot of the OP board.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@808 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-18 04:28:32 +00:00
stac
771a56ca9d com/usart: generalize com driver API
- Created a pluggable COM layer
- Converted COM + USART init into static initializers
  rather than typedefs
- Generalized the USB HID COM API to match the USART
  API.
- Changed USART and COM layers to be data driven rather
  than #ifdef'ing/switching on the specifics of each port

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@760 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-13 04:24:26 +00:00
stac
8d015a57d0 pios spi: support both master and slave configs
Added support for SPI slave configurations to the pios SPI layer.

Converted the board specific configuration for the PIOS SPI layer to
use const static initializers rather than #defines (see pios_board.c).

SPI interface between the OP board and the AHRS is now operational at
a basic level, capable of moving simple single byte messages between
boards.  Multi-byte, CRC protected messages will be added on top of this.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@759 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-13 04:23:44 +00:00
stac
02e0017cbb stm32 lib: declare read-only parameters as const
Many of the STM32 library functions take a pointer to an
initialization structure.  In nearly every case, this struct
is a read-only (ie. const) parameter.

It is advantageous (and good coding practice) to actually declare
read-only data as const so that the compiler can place the const data
in the .rodata section which resides in flash and doesn't consume any
RAM.  This has the added bonus advantage that it is impossible for the
running application to corrupt the read-only data.

In order to allow passing pointers to const data into the library
functions, it is essential that the function prototypes also declare
their associated read-only parameters as const.  This commit adds
the const attribute to those parameters that are actually read-only.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@758 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-13 04:23:15 +00:00
stac
aebc358e46 usart: use macro definitions for bit positions
No functionality changed.  Clean up only.

Changed a few of the (1 << x) constructs to use existing macro
definitions to improve code readability.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@757 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-13 04:22:57 +00:00
stac
8b5e1e8aea init cleanup: use irq stack during early init
No functionality changed.  Clean up only.

Make early init code (Reset_Handler) use the existing irq stack
rather than the hard-coded one.

Remove (now) unused references to the hard-coded stack.

Removed the link-time check for a minimal task stack in RAM since
FreeRTOS allocates user stacks from the heap which is already reserved
in the .bss section (as symbol xHeap).

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@756 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-06-13 04:22:47 +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
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
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
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
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
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
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
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
sambas
66fa56a1da OP-22 Flight/PiOS: Spektrum simple decoder works, getting seven working channels with my DX7 tx
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@630 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-16 10:04:07 +00:00
sambas
76cd72915d OP-22 Flight/PiOS: first tests done with spektrum satellite, I can read binded receiver serial stream
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@629 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-16 08:35:38 +00:00
sambas
26aecf720d OP-22 Flight/PiOS: Spektrum satellite protocol started
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@626 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-15 18:22:03 +00:00
gussy
5991a93739 Added GPIO functions for accelerometer full-scale selection.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@625 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-15 15:27:52 +00:00
gussy
73b5e29e02 Finalised and verified PIOS_HMC5843 library.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@624 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-15 12:50:05 +00:00
gussy
22fbd8e4bd ADC Updates.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@618 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-12 12:09:35 +00:00
gussy
ff73ab5a80 More updates to cross-target compatibility.
Added PIOS_I2C into AHRS code.
Added PIOS_HMC5843 Module.




git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@617 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-12 08:18:49 +00:00
gussy
fe9aa9e38f Small USART scalability fix.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@616 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-12 01:56:00 +00:00
gussy
8f3c2dbafb Changes to PiOS to be compatible with the AHRS.
Updates to AHRS code.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@615 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-11 13:36:13 +00:00
vassilis
a31215293d Flight\Telemetry Implement telemetry settings object, added functions for changing the baud rate in PiOS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@607 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-08 02:44:26 +00:00
gussy
a574f56961 HID Loopback test now working. GCS code now needs to be brought up to speed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@583 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-04 19:56:06 +00:00
gussy
0aba12fe1f Loopback test of HID working. Still a WIP but committing what I have to show progress.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@582 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-04 18:54:43 +00:00
fredericg
3281b1a128 OP-27 Use RTOS in LockDevice() and UnlockDevice()
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@564 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-05-01 14:49:51 +00:00
vassilis
8c11a03129 Flight/Alarms Implemented Alarms library, now checking for stack overflow, out of memory, event and other errors (see the SystemAlarms object). All modules will be reporting their alarms using this library.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@554 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-04-27 01:55:28 +00:00
vassilis
4f0377194d Flight/PiOS Remove use of semaphores in COM/USB ISR (not used and not working also causing random crashes)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@540 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-04-25 02:17:25 +00:00
vassilis
40beb15129 OP-4 Flight/System Created CPU utilization measurement and created object to report system information (load, heap and time)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@519 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-04-18 02:13:59 +00:00
vassilis
89a6dd30d1 OP-4 Flight/Telemetry Create new objects to report statistics of the telemetry link (plus a few bug fixes, heap size was also increased)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@515 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-04-17 22:16:20 +00:00
vassilis
5889849060 OP-4 Flight/Telemetry Various bug fixes while testing telemetry (working but not fully tested)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@500 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-04-15 02:15:46 +00:00
sambas
402b4e8e24 Telemetry and HID work, ugly hacks atm. Endianess needs checking. HID transmit doesn't work at all. Serialport works both ways
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@472 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-04-10 16:22:08 +00:00
vassilis
f4c4b1371a Flight/Settings: Remove old settings implementation (replaced with binary settings as UAVObjects)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@465 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-04-10 01:35:13 +00:00
pete
f1694527cc Working on the PPM functionality. Getting there but it is still not 100% correct.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@411 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-30 04:48:15 +00:00
sambas
37a0ce845c Solved bad USART port init
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@383 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-25 10:52:38 +00:00
gussy
41fd921b14 Updated BMP085 test code.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@375 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-23 04:01:11 +00:00
gussy
bad62d3af3 Moved things around.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@372 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-22 02:51:52 +00:00
gussy
362163d48b Added dependency checking, just in case.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@371 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-22 02:09:56 +00:00
gussy
6826706cb7 Moved external interrupts into it's own API.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@370 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-22 02:07:06 +00:00
gussy
62f4e2c636 Add PIOS_EXTI.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@367 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-21 20:23:20 +00:00
gussy
a03952fb5d Small updates and clean up.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@355 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-21 00:49:48 +00:00
pete
a3486477eb Added PPM defines and created pios_ppm.c
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@325 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-17 04:00:13 +00:00
fredericg
e57ec315e1 fixed warning
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@319 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-15 12:00:47 +00:00
FredericG
8e873ec0e8 Use the new PIOS assert
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@315 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-14 17:13:27 +00:00
gussy
f75fa5e567 Updated ADC to use the 3 auxillary inputs on the OpenPilot board.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@312 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-14 12:00:43 +00:00
gussy
e1504dafc6 Add PIOS_GPIO for controlling the auxiliary connections on the OpenPilot board.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@311 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-14 11:59:11 +00:00
FredericG
7bd573f043 OP-36 PIOS_DEBUG_Assert() function
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@307 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-14 10:20:27 +00:00
gussy
7b5d85cb3e PIOS_LED: Initialise all LED's as off.
PIOS_SYS: Added system reset function.
OpenPilot Makefile: Default USE_BOOTLOADER should be NO.
OpenPilot Bootloader: Removed LED initialisation.



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@303 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-14 06:47:57 +00:00
gussy
8ba2d76cd6 OP-21: Cleaning up a few things.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@302 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-13 20:46:46 +00:00
gussy
a0a92d5a59 OP-21: Made changes to OpenPilot makefile too allow building for bootloader and non-bootloader targets. Use "USE_BOOTLOADER = YES" to build for the OpenPilot Bootloader.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@300 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-13 20:01:31 +00:00
FredericG
3b332c786f OP-11 Use RTOS when waiting for an I2C transfer to finish when RTOS is enabled
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@298 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-13 17:28:42 +00:00
gussy
7863954f1a Added debugging port buffer handling.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@297 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-13 15:37:00 +00:00
FredericG
50215e75c6 OP-28 Some changes in the I2C API
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@296 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-13 12:23:55 +00:00
FredericG
7b753399ec Drive all debug pins low at startup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@295 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-13 10:52:10 +00:00
gussy
978e07419d Small FreeRTOS fixes.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@294 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-13 06:44:15 +00:00
gussy
3de8a31fa0 Added working and tested base for OpenPilot HID Bootloader.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@293 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-12 16:24:02 +00:00
gussy
6764a34285 Updated some FreeRTOS specific issues and fixed a few typos.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@292 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-12 16:22:56 +00:00
fredericg
47038af0c0 PIOS_DONT_USE_XXX => PIOS_INCLUDE_XXX
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@283 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-11 12:38:51 +00:00
FredericG
dbde2b1bac I2C: Some more fixes. I2C test passes at 400KBit and 200KBit but needs to be investigated further
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@280 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-10 21:11:19 +00:00
dankers
e66c491942 Update to headers in the flight portion of the code. Just formatting.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@276 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-10 09:12:31 +00:00
gussy
b08eb71a9a Changed USB VID and PID to our own ones now.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@272 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-08 18:48:00 +00:00
gussy
bcc84f00fb Cleanup of unused code.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@271 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-08 10:14:38 +00:00
gussy
4f5d7ae83a PIOS_PWM now reading 8 channels properly!
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@269 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-08 10:09:30 +00:00
gussy
1ed841946c Added "supervisor" and comments to PIOS_PWM.
Added timer usage diagram to pios_board.h
Removed bloat for extra optimisation in PIOS_DELAY.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@265 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-07 14:19:43 +00:00
gussy
098cff2145 Small typo fix.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@264 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-07 12:25:29 +00:00
gussy
075dcf5aee PIOS_PWM example code measures servo signal pulse width in microseconds (uS).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@263 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-07 12:25:11 +00:00
gussy
c409a62978 PIOS_BMP085 module finished.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@262 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-06 16:04:31 +00:00
gussy
cafed0a148 BMP085 Sensor now working completely.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@261 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-06 14:20:42 +00:00
gussy
fd889b918b Updates to BMP085 readings.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@260 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-06 10:28:08 +00:00
gussy
0e8b618953 Updated files inside OpenPilot to use the single openpilot.h header file rather than multiple headers inside each file. This resolves a few build warnings/errors and makes the code cleaner.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@257 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-06 06:17:17 +00:00
gussy
5e70edb021 OP-1: Small fixes to reading/writing from sensor.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@256 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-06 06:09:18 +00:00
gussy
d406232eb1 Improvement OP-3; Implemented buffer based receiving functions, untested.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@254 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-06 03:13:14 +00:00
FredericG
dd429536f7 pios_i2c.c: last commit broke reading; need to ack the incoming bytes
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@252 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-05 18:36:28 +00:00
FredericG
595a8f2cef One exit point for isr function
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@251 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-05 18:14:00 +00:00
FredericG
b3ad53acdc Enable and disable interrupts in TransferStart() and TransferEnd() functions
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@250 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-05 18:07:15 +00:00
gussy
7de6be3f59 Reading and writing to BMP085 sensor now working.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@249 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-05 10:44:11 +00:00
FredericG
7dd7c0201c Fix: Don't generate start at the end of WriteWithoutStop transfer. Needs cleanup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@248 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-05 07:57:26 +00:00
gussy
792406510c Small fixes. BMP085 drivers still not working.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@246 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-04 15:41:21 +00:00
gussy
6d67d2dab2 PIOS_ADC now non-application specific.
Removed "application hooks" system from PIOS_ADC.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@245 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-04 09:25:09 +00:00
gussy
09645920ee PIOS_COM and PIOS_USART now non-application specific.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@243 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-04 07:07:27 +00:00
gussy
df6b2e4ddc Moved STM32 specific PiOS Libraries.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@240 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-04 06:14:14 +00:00
gussy
798ad15bba More refactoring.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@235 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-04 05:51:11 +00:00
fredericg
0310339cb6 Introduced ENABLE_DEBUG_PINS option in makefile that will enable the debug-pins and disable the servo outputs
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@233 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-03 16:16:43 +00:00
fredericg
35f07fe9dc Introduction of lacal functions TransferStart() and TransferEnd()
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@232 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-03 12:05:49 +00:00
fredericg
ad816dc070 Renamed PIOS_I2C_TransferBegin => PIOS_I2C_LockDevice because it better describes what it does
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@231 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-03 11:46:24 +00:00
gussy
a5d56cd537 Small re-factorings.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@230 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-03 10:55:49 +00:00
gussy
72933cd5e6 Fixed re-factoring build issues.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@228 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-03 10:39:16 +00:00
gussy
47c5211cd4 Small changes to random files.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@227 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-03 07:53:15 +00:00
gussy
0968b0adf9 Added provisions for TurboPWM and other custom servo update rates.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@226 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-03 07:46:40 +00:00
FredericG
b205ebd873 Small fix: Write operations did have to time out before a new could be started
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@225 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-02 18:33:19 +00:00
FredericG
ce5f814b63 Introduction of PIOS_DEBUG
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@222 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-03-02 11:23:03 +00:00
gussy
fbb175e01c Initial commit of AHRS project code base.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@212 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 12:10:48 +00:00
gussy
9953188fe2 PIOS_SYS now non-application specific.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@208 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 08:44:01 +00:00
gussy
792cfef50b PIOS_SPI now non-application specific.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@207 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 08:34:44 +00:00
gussy
fcf47bf1f6 PIOS_USART now non-application specific.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@206 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 08:29:14 +00:00
gussy
95d068884a PIOS_BMP085 now non-application specific.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@205 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 07:01:18 +00:00
gussy
22f02cb460 PIOS_I2C now non-application specific.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@204 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 06:57:59 +00:00
gussy
700116abd9 PIOS_LED now non-application specific.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@203 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 06:54:43 +00:00
gussy
adcd47a31b Added ability to enable and disable PiOS modules.
Added PIOS_USB_COM.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@202 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 06:47:49 +00:00
gussy
7f31e3a9ff Start of making PiOS application independent.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@201 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 06:30:45 +00:00
gussy
9bce59ef1a Small cleanup changes.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@200 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-28 04:47:51 +00:00
FredericG
163862af54 Temp I2C test-code
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@198 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-24 10:50:55 +00:00
gussy
4eedbd854d A few updates for including PIOS_USB_HID into PIOS_COM.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@187 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-12 10:11:17 +00:00
gussy
0a9be2dedd USB HID now working and integrated into PIOS_COM.
You can now send and receive packets (up to 63 bytes) just like using the USART port with PIOS_COM.
HID packet length will soon be increased to support maximum UAVTalk message length.



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@182 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-10 03:31:51 +00:00
gussy
7578f74e8c Small fixes.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@181 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-09 07:45:25 +00:00
gussy
818fa05608 HID receiving still not working.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@180 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-09 07:39:49 +00:00
gussy
875dff963d Fixed the descriptors.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@177 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-07 02:01:44 +00:00
gussy
929d5fe51b Added custom HID report descriptors. Updated packet length to 64 bytes for now.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@175 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-05 10:33:56 +00:00
gussy
e39f2801d1 More HID work.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@173 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-05 09:34:45 +00:00
gussy
1a1b5cfcdb Updated to Version 3.1.0 ST USB Lib.
Added working preliminary PIOS_USB_HID support.
Integrated PIOS_USB_HID support into PIOS_USB_HID.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@171 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-02-05 04:58:59 +00:00
gussy
3b32b89839 Updated copyright headers.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@146 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-31 17:56:54 +00:00
gussy
efdb5c5f2b Added MSD library.
Added PIOS_USB.
Global improvements, see specific files for changes.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@144 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-31 16:48:23 +00:00
gussy
53ea65bb2f Updated PIOS_Settings_CheckForFiles routine to work with DFS.
Startup procedure now waits for SD Card with the correct settings files on it.
Refactored a few global PIOS_SDCARD names.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@140 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-25 16:30:31 +00:00
gussy
b2c23c5473 Added beginnings to POIS_PWM for RC Input.
Enabled ADC, needs reworking still.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@139 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-25 15:23:55 +00:00
gussy
c1ab22f595 Added variety of helper functions to PIOS_SDCARD.
Made minGlue even more robust and simpler.
Fixed a small bug with the servo output code, which is now working 100%.
Enabled USART, which can now be used for debugging.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@138 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-24 13:03:13 +00:00
gussy
39403ee20d Now using global filesystem mounting on bootup.
Changed bootup procedure for how the SD Card is handled.
Completed, optimised and added error handling to minGlue.c

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@137 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-24 08:13:48 +00:00
gussy
26410ad8de Back to where we were with r133, but now with proper SD Card code.
Additions to note; PIOS_SPI, DosFS and PIOS_SDCARD.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@136 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-23 17:31:14 +00:00
gussy
a4853aee53 Changed to sdcard startup procedure. Now puts diagnostic information on the SD card.
This revision is a good fall-back point as a basic test that the hardware and your development environment is working.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@133 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-21 02:04:15 +00:00
gussy
998ab12de4 Delays fixed.
SD Card fixed and working, tested with 2Gb and 8Gb (SDHC) cards.
Changed startup_stm32f10x_HD.S to work with SysTick_Handler, needs to be changed back for FreeRTOS to work.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@132 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-20 23:48:04 +00:00
gussy
90f1fab5fe Fixed DELAY module. Now uses TIM2 and conforms to standard coding practices.
Added temporary flashing function as an easy way to know things are working.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@131 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-01-20 08:16:35 +00:00
dankers
3614685969 comments update to reflect where the delay defines are (board.h)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@126 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 22:25:34 +00:00
dankers
a1ca5c5e67 Move delay timer to TIM 7. Move definition from pios_config.h to pios_board.h
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@125 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 22:24:15 +00:00
dankers
17304c7239 stdint compliance
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@124 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 03:09:37 +00:00
dankers
3e76e78f47 stdint compliance
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@123 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 03:03:24 +00:00
dankers
ebeed14ce4 stdint compliance
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@122 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 03:01:34 +00:00
dankers
c3d63f0782 stdint compliance
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@121 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 02:59:44 +00:00
dankers
24220da63a stdint compliance
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@120 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 02:58:39 +00:00
dankers
cb920513ff stdint compliance
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@119 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 02:56:49 +00:00
dankers
282cf5c43e Delay module.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@118 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 02:51:20 +00:00
dankers
6c2d90cd11 Added delay #defines to compile time config file.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@117 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-24 02:44:20 +00:00
dankers
8cb7ce6a86 A tiny bit simpler pios.c, FreeRTOS is working and flashing an LED. Fat stuff needs a timer, Freertos is a nice way to supply that so a task is created and running. Need to rework the fat stuff so it is FreeRTOS friendly.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@111 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-23 10:34:26 +00:00
dankers
08fc0ac743 Add notes section. To be completed as we get more advanced.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@110 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-23 10:07:05 +00:00
dankers
04d2428922 Move Settings file define from board to config header
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@109 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-23 10:03:49 +00:00
dankers
5b31cc8813 Move SDCard functions.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@107 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-23 07:39:34 +00:00
dankers
3a0ecba2cc Back to a basic setup, lets walk before running.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@106 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-23 07:14:52 +00:00
dankers
a6c9041f55 pios sdcard, try to open a file
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@104 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-23 04:03:21 +00:00
dankers
1cafc86aaa copy and paste fail :)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@103 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-22 20:36:51 +00:00
dankers
2a3f572147 Split the SDCard functions away in to their own file. Just for readability & clean code. Only init function for now but there will be logging functions added.
init function will also try to access a file on the SDCard, this forces a real mount and will get real errors which we can handle. 

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@100 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-22 19:32:47 +00:00
dankers
6003def85d Fix var issue.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@99 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-22 06:28:12 +00:00
dankers
c8b42d5976 Remove the RTC TODO.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@98 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-22 05:09:53 +00:00
dankers
74d4609cc6 Comment out the rest of the startup until we get ChanFat working. These come afterwards anyway, however, its a target, we uncomment them as they get fixed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@97 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-22 05:08:59 +00:00
dankers
f457599d9c Comment about where defaults live.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@86 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-21 04:10:50 +00:00
dankers
fb54cca9e9 Move the PIOS_Settings_Load() call to the main() function. Easier to see program flow this way as it is a key part of our startup.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@85 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-21 04:07:29 +00:00
dankers
b888eb3813 Move the #defines to pios_config.h
Add some comments to pios.c so people know where the settings are loaded. 

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@84 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-21 03:57:30 +00:00
dankers
565eff7f00 Just a TODO to setup the RTC clock here, I've been through all the startup code and it seems great, only got up to the LEDs.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@76 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-18 19:56:53 +00:00
gussy
38d98a26a6 Swapped LED On and Off to proper set/reset function.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@75 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-18 17:59:43 +00:00
dankers
313f3cceff Gussy: Fixed uint16 on LEDs
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@74 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-18 12:44:49 +00:00
dankers
3117c9ac45 Removed GPIO function from piso_sys, each module does their own GPIO setup.
pios_config.h to inc directory. 


git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@66 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-15 12:17:11 +00:00
dankers
ebcec5533f Added config header file skeleton, changed "" to <> in central header as headers now go in include and not the same directory as the C files. Removed the doxygen @s from the Makefile as Doxygen doesn't parse the Makefile.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@65 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-11 18:48:48 +00:00
gussy
8eaaf20a21 Optimised startup procedure for speed.
Fixed bmp085 i2c write procedure.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@64 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-11 00:24:03 +00:00
gussy
d306ade1a7 Conversions now use the BMP085 EOC (End Of Conversion) pin with an external interrupt, which is a much nicer way of doing things.
One major timing caveat still exists, still deciding the best way to cross that bridge.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@63 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-10 06:08:28 +00:00
gussy
b6cc2df29d Finished off initial revision of BMP085 drivers.
Added math.h to pios.h includes.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@62 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-10 04:28:21 +00:00
gussy
9eeaf09b80 Fixed a few typos in PIOS_I2C.
Started work on BMP085 driver. Need more information from Bosch to continue.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@61 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-10 01:59:46 +00:00
gussy
a1f7f260c1 Added PIOS_I2C module. It's blind code though, no idea if it works.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@60 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-09 23:10:32 +00:00
gussy
f52a719c1d Updated all PIOS function names to new standard.
New standard to be used is PIOS_Module_Function().
Likewise with OpenPilot, OP_Module_Function() is to be used.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@59 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-08 02:13:21 +00:00
gussy
4e4b50e187 Added OpenPilot Logging functions, tasks.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@55 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-04 20:33:18 +00:00
gussy
e174898bf2 Added pios_servo. Straight from ST examples.
Updated printf-stdarg to use debug port.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@53 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-03 21:30:53 +00:00
gussy
7a39f5f55c Added in ADC hooks to OpenPilot.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@52 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-02 21:49:31 +00:00
gussy
dc830b7a96 Initial commit of pios_adc
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@51 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-02 21:37:51 +00:00
gussy
28e9081872 More FreeRTOS Stuff.
Added in the initial OpenPilot files.
Added HooksTask.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@49 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-02 11:07:56 +00:00
gussy
42591b0edf Moved pios_settings.c to /PiOS/Common since it is not platform specific.
Started to add some FreeRTOS stuff into pios.c

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@47 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-02 06:44:53 +00:00
dankers
922d27982a Add Compile time configuration header. Just #defines really. Won't be used a great deal as most our config is dynamic.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@45 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-02 05:33:29 +00:00
dankers
b165fafd4e Formatting on one of the comments needed a new line.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@43 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-01 18:44:21 +00:00
gussy
58b09ed761 Changed all mention and use of "UART" to "USART".
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@41 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-01 17:15:33 +00:00
gussy
f1bfb2a238 More moving.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@35 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-01 14:29:55 +00:00
gussy
7f9cf71870 More moving.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@34 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-01 14:23:57 +00:00
gussy
d7cd647e7e Directory re-structuring. Doesn't compile yet, need to commit first.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@33 ebee16cc-31ac-478f-84a7-5cbb03baadba
2009-12-01 14:04:30 +00:00