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

8739 Commits

Author SHA1 Message Date
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
Stacey Sheldon
c702ca0f1b usbhook: fix up indentation
No functional changes.
2013-05-11 22:40:57 +02:00
Stacey Sheldon
cb6f4a474e f4 usb: ensure data buffers are 4-byte aligned
4-byte alignment is required for DMA.
2013-05-11 22:40:56 +02:00
Stacey Sheldon
9cc70695d7 f4 usb cdc: add support for USB CDC to RevoMini
Conflicts:
	flight/targets/RevoMini/System/inc/pios_config.h
	flight/targets/RevoMini/System/pios_board.c
2013-05-11 22:40:56 +02:00
Stacey Sheldon
c6e893e1e5 usb: fix interfaces in USB HW defs for OSD 2013-05-11 22:38:28 +02:00
Stacey Sheldon
207bd671ac usb: fix interfaces in USB HW defs for RevoMini 2013-05-11 22:38:27 +02:00
Stacey Sheldon
f4bed187f4 f4 usb cdc: implement CDC class driver for STM32 F4 SoCs 2013-05-11 22:38:26 +02:00
Stacey Sheldon
19714d2316 f4 usb: allocate TX FIFO RAM for endpoints 2 and 3
This is required to support USB CDC mgmt and data
endpoints.
2013-05-11 22:38:25 +02:00
Stacey Sheldon
02addaf4a0 usbhook: make ctrl endpoint OUT treat request as const
The req parameter is passed to the OUT stage as a convenience.
Since the OUT callback is called *after* the transfer has occurred,
modifying the req would have absolutely no effect.  Marking this
as const makes this expectation clear.
2013-05-11 22:38:25 +02:00
Stacey Sheldon
590feefd9b f1 usb cdc: ensure uart state is transmitted on control endpoint
Previously, the IN stage on the CTRL interface would write (and
send) its data via the buffer owned by the DATA endpoint.  This
would probably have overwritten any data being sent at that
moment.  This may have caused data corruption from FC -> GCS.
2013-05-11 22:35:19 +02:00
Richard Flay (Hyper)
cf14608ebe Merge branch 'next' into hyper/OP-936_task-monitor-rework 2013-05-09 19:25:02 +09:30
Alessio Morale
93bad2e8c2 Merge branch 'amorale/OP-917_f4_bootloader_updater' into next
***** PLEASE NOTE  ***** From this revision all F4 based boards (Revolution/OSD) needs bootloader version  5 to boot properly

Conflicts:
	flight/pios/stm32f4xx/libraries/CMSIS2/Device/ST/STM32F4xx/Source/osd/system_stm32f4xx.c
	flight/targets/boards/osd/board-info.mk
	make/boot-defs.mk
	make/common-defs.mk
2013-05-07 21:02:41 +02:00
David Ankers
417a0befd3 Change MaxAxisLock (angle) to be 30 deg. 2013-05-06 20:38:25 +10:00
Richard Flay (Hyper)
fbc8bc698f OP-936: Merges branch 'next' into hyper/OP-936_task-monitor-rework, fixes damage/conflicts,
and brings the callback scheduler into the fold.

+review OPReview-461
2013-05-06 19:11:14 +09:30
Brian Webb
ae8286e99a OP-932: Fixes a bug that was preventing setting of Tx power on remote modem. 2013-05-06 01:03:15 +01:00
Corvus Corax
39fe6beb4b Merge branch 'corvuscorax/Attitude-fixes' into next
Conflicts:
	flight/libraries/insgps13state.c
	flight/modules/Attitude/revolution/attitude.c
2013-05-05 23:09:07 +02:00
Richard Flay (Hyper)
5e87448e8a Merge branch 'next' into hyper/OP-931_extra_compiler_warnings 2013-05-06 06:03:23 +09:30
Fredrik Arvidsson
25fa8746e4 Merge remote-tracking branch 'origin/OP-596_GCSController_output_fix' into next 2013-05-05 18:59:49 +02:00
Corvus Corax
e0a6dae46a made "fake" variances set in indoor mode and used for airspeed hack come from UAvObject 2013-05-05 18:19:43 +02:00
Corvus Corax
946105cbe3 Merge branch 'next' into corvuscorax/Attitude-fixes 2013-05-05 17:44:59 +02:00
Alessio Morale
5a2c53804f OP-917 Make reboot over telemetry link works. UserDFU timeouts to the user application when no USB connection is found.
+review OPReview-456
2013-05-05 15:15:44 +02:00
Richard Flay (Hyper)
a2d8544931 OP-931: adds -Wextra compiler option for the flight code, and makes the bazillion code changes required
to make the flight code compile again. Needs careful review, particularly all the fixes for the
signed vs unsigned comparisons.

+review OPReview-459
2013-05-05 16:32:24 +09:30
Brian Webb
dc4455ff68 OP-932: Fixes a bug that was preventing setting of Tx power on remote modem. 2013-05-04 17:24:40 +01:00
Brian Webb
d7ca77b996 Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into OP-932-Modularize_Radio_Driver 2013-05-04 16:50:20 +01:00
Brian Webb
57552f4cc9 OP-932: Changed the clock syncronization to happen only on packts transmitted from the coordinator to the remote modem. The Tx finished time of the previous packet is now sent in the packet header. This is compared to the Rx complete time of that packet on the remote modem to calcualte the difference between two modems. This eliminates the need for ACKing, so ACKs were removed for PPM and status packet. 2013-05-04 16:50:08 +01:00
Richard Flay (Hyper)
5b61466259 OP-931: Adds -Wdouble-promotion compiler option and fixes problems that the compiler then identifies.
+review OPReview-459
2013-05-04 19:24:01 +09:30
Richard Flay (Hyper)
7f273bd9e6 Fixes recent, but broken, commit of fix for OP-754. Bunny is bad. 2013-05-04 11:30:39 +09:30
Richard Flay (Hyper)
87fcf9fa8b Merge branch 'next' into hyper/OP-931_extra_compiler_warnings and update as necessary.
Hopefully properly fixes conflicts:
	flight/modules/Attitude/attitude.c
	flight/modules/ManualControl/manualcontrol.c
	flight/modules/Osd/WavPlayer/wavplayer.c
	flight/modules/Osd/osdgen/osdgen.c
	flight/modules/System/systemmod.c
	ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp
2013-05-04 11:12:44 +09:30
Brian Webb
33cb06b1b0 Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into OP-932-Modularize_Radio_Driver 2013-05-04 01:30:01 +01:00
Richard Flay (Hyper)
576d33464a OP-754/OPReview-374: Applied a very old patch, provided by cyr, to the latest next branch. 2013-05-04 09:10:02 +09:30
Oleg Semyonov
137ddbf73a Fix broken unit tests 2013-05-03 20:27:03 +02:00
Oleg Semyonov
ee1a149888 tools: add gtest_install and build_sdk_* 2013-05-03 20:26:44 +02:00
Oleg Semyonov
7aa59f4573 pios.h: only include STM32xxx.h if particular STM32 MCU is defined 2013-05-03 20:25:48 +02:00
Brian Webb
241861a04a Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into OP-932-Modularize_Radio_Driver 2013-05-03 14:53:48 +01:00
Brian Webb
38cd0e1c46 OP-932: Fixes configuration of the remote serial connection when using VCP/raw comms. 2013-05-03 14:46:14 +01:00
Brian Webb
12e8adbdc4 OP-932: Fixes vitual com port and (not tested) raw comms over a UART on the OPLink. 2013-05-03 14:46:01 +01:00
Brian Webb
84a0f981e0 Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into OP-932-Modularize_Radio_Driver 2013-05-03 14:08:40 +01:00
Richard Flay (Hyper)
0178d666d5 OP-931: Fixes the mag_updated test in revo Attitude module to use the square of the Be vector magnitude.
Also fixes the dT calculation issues in a few places, one of which was as suggested in OPReview-459.

+review OPReview-459
2013-05-03 19:24:54 +09:30
Oleg Semyonov
c71985f61e Makefile: update help message (output of 'make help' or just 'make') 2013-05-03 10:54:25 +02:00
Sambas
4d19fd5989 Merge remote-tracking branch 'remotes/origin/sambas/diffnext' into next 2013-05-03 07:58:17 +03:00
Corvus Corax
5d5a3389c4 missed removal of unneeded update chec 2013-05-03 02:48:06 +02:00
Brian Webb
7fe95b00a7 Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into OP-932-Modularize_Radio_Driver 2013-05-03 01:33:35 +01:00
Corvus Corax
25c58ff074 Put all EKF initialisation values in a separate UAVObject EKFConfiguration,
adapted insgps13state.c/.h,
modules/Attitude/revolution,
configrevowidget.cpp,
accordingly.
2013-05-03 02:17:44 +02:00
Richard Flay (Hyper)
84e1a81f8b OP-936: Moves the task monitor code out of the flight library and into PiOS.
This move and rework also breaks the dependency of the task monitor on the UAVO subsystem,
and pushes the responsibility for updating the TaskInfo UAVO into the System module.

+review OPReview
2013-05-03 07:01:14 +09:30
Corvus Corax
48288c740e OP-931: some floating point math fixes, should make merge with other dev branch easier 2013-05-02 22:45:02 +02:00
Corvus Corax
201eed8d8f when testing variances for validity dont allow negative variances 2013-05-02 20:09:57 +02:00
Oleg Semyonov
dd181904fc Fix version-info.py utility to back off gracefully if no git in the PATH 2013-05-02 19:05:00 +02:00