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

174 Commits

Author SHA1 Message Date
Alessio Morale
46521f1c2d Merge remote-tracking branch 'origin/amorale/OP-1683_syncupdate_oneshot' into next 2015-02-08 17:59:59 +01:00
Alessio Morale
86a1ca2bcf OP-1683 - Pulse length must be zeroed at each cycle 2015-02-02 19:58:04 +01:00
Alessio Morale
752f3447d2 OP-1683 - Implement an update skip strategy in single pulse mode when pulse period is higher than the update cycle 2015-02-02 02:58:22 +01:00
Alessio Morale
a5f601593d OP-1683 - Put again in place safe limits on pulse width 2015-01-31 15:04:02 +01:00
Alessio Morale
86571a804d OP-1683 - Switch to the same schema used by cleanflight.
Running in repetitive mode, clearing CCRx after manually triggering update event.
2015-01-30 21:22:14 +01:00
Alessio Morale
632051c0ac OP-1683 - Increase resolution for OneShot125 running timer at 8MHz, setup automatically rates for OneShot 2015-01-30 21:22:00 +01:00
Alessio Morale
7955f63c98 OP-1683 - Clenaup, trigger update in setfailsafe, Fix standard pwm operation 2015-01-25 21:25:14 +01:00
Alessio Morale
2a10d9d481 OP-1683 - fixes to PIOS_Servo, added code to prevent overflows 2015-01-24 13:35:41 +01:00
Laurent Lalanne
5d4b1df85c OP-1652 Fix comment 2015-01-24 00:56:31 +01:00
Alessio Morale
1f95332ff4 OP-1683 - Implement servo synchronous update mode for F4 2015-01-23 23:50:51 +01:00
Fredrik Arvidsson
c8c3a46735 Uncrustify 2015-01-09 21:49:03 +01:00
Mathieu Rondonneau
acc124cacb OP-1625: DSM: more robust detection of resolution
This allows switching back and forth between 10 and 11 bit
code which prevents getting locked up in one or the other.
It also avoids a situation that can cause an infinite
recursion.

This changeset is cherry-picked from TauLabs (b7eaf87502085666d9738ae16c66170f187f3981).
Thanks to Taulabs for improving OpenPilot's DSM autodetect feature.
2014-12-30 21:29:06 -08:00
Mathieu Rondonneau
6844f8351d run uncrustify. 2014-12-04 20:17:29 -08:00
Mathieu Rondonneau
4b00f6039d OP-1626: Allow binding to happen within satellite binding window.
- This is working for satellite 22ms (genuines and clones).
 - This change only affect revo.
2014-11-29 19:59:18 -08:00
Alessio Morale
99d73426b8 Uncrustify 2014-11-27 12:05:59 +01:00
Fredrik Larsson
cd94410468 DSM Protocol removed flight firmware 2014-11-22 08:32:00 +11:00
Mathieu Rondonneau
b0cc9ce021 OP-1625: DSM2/DSMX autodetection of channel resolution. 2014-11-20 19:58:34 -08:00
Stefan Karlsson
3285519380 OP-1536 Send only the available bytes, not the entire buffer, to the USB CDC RX callback function 2014-10-10 23:51:04 +02:00
Alessio Morale
e553014596 Merge branch 'amorale/OP-1476_1477_1275_GPSV9_pios_firmware_bootloader' into next 2014-10-03 00:37:55 +02:00
Alessio Morale
9e0596c2c5 Merge remote-tracking branch 'origin/amorale/OP-1379_ext_led_notification_module_new' into next
Conflicts:
	Makefile
	flight/targets/boards/discoveryf4bare/firmware/Makefile
	flight/targets/boards/revolution/firmware/Makefile
2014-09-29 21:26:31 +02:00
Alessio Morale
7e789ccc69 OP-1379 - Clear output pin at the end of dma cycle 2014-09-25 00:59:39 +02:00
Alessio Morale
cd7c76aa13 OP-1275 move implementation specific enums out of common pios_i2c_priv.h 2014-09-16 00:42:50 +02:00
Alessio Morale
233dec6d8d OP-1379 - Various fixes and additions
- Support blocks of led for notification (that is a certain number of leds between a min and a max index);
- Fix an issue with bogus colours on fast updates at LED N°0.
- Add NOTIFY_SEQUENCE_NULL to skip handling a specific alarm status;
- Adjust sequences and add Config and Receiver Alarms;
- fix issue with Alarm trigger/repetition;
- Enables Notify module only if a WS281x output is enabled.
- Add some documentation for sequence/alarm definitions (sequences.h)
- Make sequences more coherent. All GPS related info are now shown in green.
- Revert to original blinking rate for onboard led
- add Notify on DiscoveryF4Bare target
2014-09-06 12:11:53 +02:00
Stefan Karlsson
34983a2d28 OP-922 Fix typo in pios_tim.c 2014-08-16 16:58:15 +02:00
Alessio Morale
1067ea59d1 OP-1379 - Split pios_ws2811.h in config and public api header 2014-08-12 22:19:30 +02:00
Alessio Morale
1f74977472 OP-1379 add base types for colour, Initial ext rgb led api definition 2014-08-12 09:44:44 +02:00
Alessio Morale
03d03cfb06 OP-1395 add a vTaskDelay when waiting for dma transfer to complete when using FreeRTOS. 2014-07-08 02:54:17 +02:00
Alessio Morale
6226aec2a7 OP-943 uses pios_mem API for heap allocation 2014-06-11 22:15:40 +02:00
Alessio Morale
50bef2dc12 OP-943 change make scripts to defines automatically PIOS_TARGET_PROVIDES_FAST_HEAP when available 2014-06-11 22:15:40 +02:00
Alessio Morale
d8f08a7916 OP-943 Add Malloc for "FastHeap" (ccsram)
- Use a separate mallocs for thread stack and RTOS structures heap
- Add a pios_mem API to be able to use fast ram (CCM) when available
2014-06-11 22:15:30 +02:00
Alessio Morale
921abb5131 OP-1274 update freertos files. Architecture specific files are left into their original FreeRTOS folder structure 2014-05-18 22:53:23 +02:00
Alessio Morale
58bba31c72 Merge remote-tracking branch 'origin/amorale/OP-1312_pios_ws2811_driver' into next 2014-05-15 20:30:43 +02:00
Alessio Morale
8bbb56337b OP-1312 keep pulse timings low to have more margin to handle bus contentions and irq response time. 2014-05-11 18:57:06 +02:00
Alessio Morale
3897106f4d OP-1312 remove boilerplate from config using macros.
Use four locations for ch1+update dma source to exploit fifo and memory read bursts
2014-05-01 10:33:44 +02:00
Alessio Morale
4cece04166 OP-1312 fix documentation, get rid of stale comments from previous implementations 2014-04-27 19:12:36 +02:00
Alessio Morale
58178ab193 OP-1312 Fixed led boundary check and framebuffer color order. 2014-04-27 19:11:28 +02:00
Alessio Morale
c281420e25 OP-1307 Most(all?) F4Discovery has an "A" revision of STM32f4.
Disable prefetch to overcome the "Section 2.1.1: ART Accelerator prefetch queue instruction is not
supported" issue (DM00037591.pdf)
2014-04-26 22:14:47 +02:00
Alessio Morale
a0b857337f OP-1312 Add support for Revolution (right now always active on pin3). Configurability not yet added 2014-04-26 18:40:59 +02:00
Alessio Morale
db9435b5ed OP-1312 add a switch to include/exclude the driver 2014-04-26 17:28:49 +02:00
Alessio Morale
46f70a74c8 OP-1312 Initial version running on DiscoveryF4 2014-04-26 16:57:16 +02:00
Alessio Morale
0aa9ef4b57 OP-1307 Bare f4 discovery platform with no sensor, for development pourpose 2014-04-22 23:46:27 +02:00
Alessio Morale
f01cf66095 Merge remote-tracking branch 'origin/andrecillo/OP-1273_OP-1282_OP-1283_Diverse_Airspeedsensor_improvements' into next
Conflicts:
	ground/openpilotgcs/src/plugins/systemhealth/systemhealthgadgetwidget.cpp
2014-04-15 21:52:34 +02:00
Philippe Renon
3b7b06aad0 Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into next 2014-04-09 09:11:54 +02:00
Andres
9b8be63a4f OP-1273 OP-1282 OP-1283 added delay to I2C Transfer function for both stm32f40x and stm32f10x 2014-04-02 14:18:42 +02:00
Alessio Morale
6540c69698 Merge remote-tracking branch 'origin/andrecillo/OP-1273_PixHawk_airspeed_sensor_MS4525DO' into next 2014-04-01 22:05:12 +02:00
Andres
830f13596e OP-1273 OP-1282 OP-1283 uncrustify 2014-03-31 22:17:58 +02:00
Andres
5ed417323e OP-1273 OP-1282 OP-1283 bug fixes on I2C library: check for intialization and hot-plug robustness 2014-03-31 22:16:29 +02:00
Andres
7067f4f8ff Merge branch 'andrecillo/OP-1283_SystemHealthGadgetWidget_updateAlarms_coordinate_calculation_correction' into andrecillo/OP-1273_OP-1282_OP-1283_Diverse_Airspeedsensor_improvements
Merged correction on coordinate calculation in SystemHealth gadget for correct display of Airspeed-Alarm
2014-03-28 17:01:44 +01:00
Andres
c5dc556a43 OP-1273 Uncrustify 2014-03-27 16:19:22 +01:00
Bertrand Oresve
ea665d1270 OP-1272 Fix STM32F4 Watchdog in debug mode 2014-03-22 18:44:47 +01:00
Andrés Chavarría Krauser
4512798213 OP-1271 Added a length and NULL pointer check in go_starting() to manage zero length reads/writes 2014-03-22 12:52:49 +01:00
Philippe Renon
9a0f28d138 OP-1033 removed useless self inclusion of f4 usb_conf.h 2014-03-02 14:47:17 +01:00
Mathieu Rondonneau
03b243fe31 OP-1079 - Update to FreeRTOS v7.5.2 2013-09-04 20:26:23 -07:00
Brian Webb
e246ecf536 Moves pios_led functionality to pios_gpio and makes pios_led a thin layer over pios_gpio. Supports configuring multiple sets of GPIOs. 2013-07-28 07:01:08 -07:00
Alessio Morale
11bc7804d0 Merge branch 'amorale/OP-994_adc_cleanup' into next 2013-07-16 12:23:25 +00:00
Brian Webb
7c10623615 OP-932 Adds a semaphore to PPM input to signal when a new frame has been received. This can be used to process a new frame with as low a latency as possible. 2013-06-26 17:56:10 -07:00
Alessio Morale
0b8d18ae49 OP-994 Move common defines to architecture specific header
+review OPReview-506
2013-06-24 18:50:44 +02:00
Alessio Morale
2b232ae155 Fix bootloader usb issues caused by USB reconnection fixes.
Issues were related to missing usb detection and broken communication while updloading fw.
They are now skipped in NON FreeRTOS mode (aka bootloader).

+review OPReview
2013-06-17 20:24:07 +02:00
Alessio Morale
f767d64f0c OP-980 Remove the timeout logic as it causing troubles with windows
platform
2013-06-11 10:27:32 +02:00
Corvus Corax
6f59c49506 just uncrustification 2013-06-09 22:09:04 +02:00
Alessio Morale
87db5d30b0 OP-980 change how the semaphore is used on PIOS_USB_CheckAvailable to prevent deadlocks 2013-06-09 16:14:44 +02:00
Alessio Morale
ab1c9c157f OP-995: Fixes for correct battery monitor readout 2013-06-08 13:40:01 +02:00
Alessio Morale
51a7f27b99 OP-994 Add an API to PIOS_ADC to get directly the Voltage value 2013-06-08 13:36:54 +02:00
Alessio Morale
ee7887c406 OP-980 Extended the memory barrier macros and fixed barrier kind in pios_usb_hid
+review OPReview-501
2013-06-06 10:26:41 +02:00
Alessio Morale
c340bfc294 OP-980 Insert locking while checking status in PIOS_USB_CheckAvailable
+review OPReview-501
2013-06-06 01:42:26 +02:00
Alessio Morale
5fa73624da OP-980 Added memory barrier to preserve sequence to ensure callback validation
+review OPReview-501
2013-06-06 01:39:45 +02:00
Alessio Morale
b4f8b02a42 Revert "some optimizations, use real rx and tx buffer size instead of max buffer leghts"
It does not work in Windows so need further investigation prior to undo this revert
This reverts commit 901db6f828.
+review OPReview-501
2013-06-05 19:01:01 +02:00
Alessio Morale
8fb81ae17b OP-980 uncrustify
+review OPReview-501
2013-06-05 01:02:37 +02:00
Alessio Morale
f1f48b0ec6 OP-980 Fix usb reconnection issue for Revolution target.
step 3: add a timeout on rx_active to prevent rx locks
2013-06-05 00:54:08 +02:00
Alessio Morale
901db6f828 some optimizations, use real rx and tx buffer size instead of max buffer leghts 2013-06-05 00:53:50 +02:00
Alessio Morale
ce2bce353f OP-980 Fix usb reconnection issue for Revolution target.
step 2: check for cable disconnection (vbus) and issue a SW reconnection
2013-06-05 00:04:26 +02:00
Alessio Morale
14b87383b9 OP-980 Fix usb reconnection issue for Revolution target.
step 1: reset tx/rx_active flags on disconnection/reconnection
2013-06-04 01:52:44 +02:00
Sexy Pony
900f643bbd Reformat source code with 'make uncrustify_all' run twice. NO CODE CHANGES 2013-05-19 17:37:30 +03:00
Alessio Morale
ab7af16be3 Merge branch 'amorale/OP-901_lib_udates-usb_fixes' into HEAD
Conflicts:
	flight/pios/stm32f10x/library.mk
	flight/targets/boards/revoproto/firmware/pios_board.c
2013-05-19 15:01:08 +02:00
Alessio Morale
37eabb0931 Pointed type is explicitly used with sizeof when dealing with struct pointers.
+review OPReview-474
2013-05-19 12:00:16 +02:00
Alessio Morale
2e458b5652 OP-901 USB OTG/Device Drivers are not targeted for f103 (they are targeted at f105) so move again to F4 library folder instead of common 2013-05-18 20:53:28 +02:00
Alessio Morale
c1f767b12d Merge remote-tracking branch 'origin/amorale/OP-954_logfs_settings_in_internal_flash' into next
Conflicts:
	flight/pios/common/pios_flashfs_logfs.c
2013-05-18 15:53:25 +02:00
Alessio Morale
976ad90211 OP-901 Updated F4 CMSIS startup files, Moved USB OTG and USB Device library to common 2013-05-18 14:03:03 +02:00
Alessio Morale
f0c01d0eff OP-901 Updated F4 StdPeriph Driver Library to V1.1.0 2013-05-18 13:57:45 +02:00
Alessio Morale
67e41c34fc Merge remote-tracking branch 'origin/next' into amorale/usb_fixes 2013-05-17 22:46:42 +02:00
Alessio Morale
2735f8a620 OP-901 Updated common CMSIS files 2013-05-17 22:41:34 +02:00
Alessio Morale
13ee42a42a OP-901 Fixed errors due to unused parameter 2013-05-17 22:39:16 +02:00
Richard Flay (Hyper)
a6aedee9fa Merge branch 'next' into brian/support_inverted_USB_vsense 2013-05-17 05:54:42 +09:30
Richard Flay (Hyper)
ae14c13195 Merge branch 'next' into hyper/OP-951_add--Wshadow-to-flight-CFLAGS
Conflicts:
	flight/modules/ManualControl/manualcontrol.c
2013-05-16 06:28:56 +09:30
Brian Webb
156109bb88 Added support for an active low USB vsense line. 2013-05-14 20:37:13 -07:00
Stacey Sheldon
280f537644 f4 usb: ensure that we NAK on unused OUT endpoints
The ST USB code will automatically receive on any
endpoint that is opened but not in the NAK state.
Make sure we set OUT endpoints to NAK initially.

It also happily writes via a NULL pointer in ep->xfer_buff
which writes to address 0x0000_0000.  Since address
0x0 is aliased onto the internal flash by the BOOT0/1 pins
and the internal flash is (normally) in the LOCKED state,
this write puts the internal flash into an errored state.

This errored state means that writes to internal flash
are no longer allowed and all further writes fail.
2013-05-14 23:50:17 +02:00
Richard Flay (Hyper)
ed68fbe68d OP-951: Adds -Wshadow to flight CFLAGS and fixes resulting compilation breakage.
+review OPReview
2013-05-14 07:01:45 +09:30
Alessio Morale
30b755b7aa OP-901 fixed errors due to unused parameter and applied fix against fifo empty bug on usb_dcd_int.c 2013-05-11 23:49:52 +02:00
Alessio Morale
95a3e99b7c OP-901 updated STM32 USB OTG Driver (updated configuration) 2013-05-11 23:12:14 +02:00
Alessio Morale
24fcea168c OP-901 Updated STM32F4 USB Device Library 2013-05-11 23:12:13 +02:00
Alessio Morale
ccc24d844a OP-901 updated STM32 USB OTG Driver 2013-05-11 23:10:47 +02:00
lilvinz
1016b08b70 f4 usb: removed DCD_EP_Flush on endpoint TX
This has probably caused the problem that prevented tx after
a bus reconnection.
2013-05-11 22:41:05 +02:00
Stacey Sheldon
0e0571149b f4 usb: ensure that we NAK on unused OUT endpoints
The ST USB code will automatically receive on any
endpoint that is opened but not in the NAK state.
Make sure we set OUT endpoints to NAK initially.

It also happily writes via a NULL pointer in ep->xfer_buff
which writes to address 0x0000_0000.  Since address
0x0 is aliased onto the internal flash by the BOOT0/1 pins
and the internal flash is (normally) in the LOCKED state,
this write puts the internal flash into an errored state.

This errored state means that writes to internal flash
are no longer allowed and all further writes fail.
2013-05-11 22:41:03 +02:00
Stacey Sheldon
2165a5afe1 f4 usb hid: handle SET_IDLE request
The code doesn't do anything useful with the SET_IDLE
but this helps to keep the wireshark USB traces clean
so that the real errors stand out better.
2013-05-11 22:41:02 +02:00
Stacey Sheldon
c22daec1b0 usb cdc: avoid need for ZLP by using tx buffers smaller than max
USB CDC uses BULK endpoints to send/receive data.  Typically,
a USB host will enqueue large buffers on its IN (device-to-host)
URBs.  These buffers are larger than the max packet size for the
bulk endpoint.

The USB standard requires that an IN transfer ends when one of
these is true:
 * a short packet (ie. less than max packet size) is sent by the
   device
 * a zero length packet (ZLP)
 * enough packets that the entire host buffer is filled

Our device implementation never sends ZLPs.  We sometimes send
packets that are exactly max-packet-size bytes long.  This would
result in partially filling a host buffer without signalling (via
ZLP) that the transmission had finished.  The host would then wait
until the next transfer had taken place before processing the first
data, thus delaying the first data.

This change simply forces all of our transfers to be short packets
and avoids the need to worry about zero length packets.  This is
at the cost of some efficiency on the host side since its large
buffers will only ever be partially filled.

Conflicts:
	flight/PiOS/STM32F30x/pios_usb_cdc.c
2013-05-11 22:41:01 +02:00
Stacey Sheldon
366c573bab f4 usb hid: send correct report ID in dummy report
The desired report ID is in the LSB of the wValue field,
not the MSB.  This will now send the correct report ID
back to the host.
2013-05-11 22:41:01 +02:00
Stacey Sheldon
232f9b2f8f f4 usb hid: use static data for dummy report Tx
This code was previously passing a pointer to stack
data into PIOS_USBHOOK_CtrlTx() which may be sending
this data asynchronously.  Now pass a pointer to
static data so that the asynchronous send doesn't
tx random stack contents.
2013-05-11 22:41:00 +02:00
Stacey Sheldon
859734af98 f4 usb: fix tracking of OUT requests with data stages
This code was mistakenly tracking the IN (device-to-host)
requests with data stages.  It should have been tracking
the OUT (host-to-device) requests with data stages.

This tracking data is important now that CDC is supported.
CDC actually uses OUT requests with data stages whereas HID
does not.  This bug only triggered once CDC was enabled.
2013-05-11 22:41:00 +02:00
Stacey Sheldon
b56f5206bd com/usart/cdc: ensure that device structs are memset before use
CDC and USART device drivers were not all clearing their
device structs before using them.

This specifically caused crashes in the case where the upper
COM layer was binding only a Tx path.  The Rx path callback
in the lower driver was uninitialized random data and would
result in the lower driver faulting when it tried to call the
callback.

Conflicts:
	flight/PiOS/STM32F30x/pios_usart.c
	flight/PiOS/STM32F30x/pios_usb_cdc.c
	flight/PiOS/STM32F30x/pios_usb_hid.c
2013-05-11 22:40:59 +02:00
Stacey Sheldon
e16be98224 usb cdc: ensure com buffer is drained when no DTE is attached
The CDC layer on F1, F3 and F4 now always acts like an
infinte data sink whenever *either* there is no DTE present
(ie. no terminal program listening) *or* the USB cable is
disconnected.

F1 and F4 were previously checking the cable but not the DTE.
F3 didn't check anything.  The COM layer didn't even ask the
lower layers.

All of this used to mean that any time a caller did a blocking
send to a CDC device without a DTE, it would eventually block
for up to a 5s timeout waiting for space in the Tx buffer.

Conflicts:
	flight/PiOS/STM32F30x/pios_usb_cdc.c
2013-05-11 22:40:58 +02:00