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

4047 Commits

Author SHA1 Message Date
David Ankers
7a9466bbf9 State in the header which board this is for 2013-05-26 16:12:35 +10:00
David Ankers
f7a9f94a36 Missing file header 2013-05-26 16:09:55 +10:00
David Ankers
a5b856d1bc Change board description name to OPLink Mini 2013-05-26 16:04:55 +10:00
David Ankers
d5eccea78f Comment and header renames, change PipX to OPLink Mini 2013-05-26 15:48:02 +10:00
Oleg Semyonov
444431579e OP-770: add/rename some version-info.py template variables 2013-05-25 23:02:29 +02:00
Brian Webb
4036e95bd5 Merge remote-tracking branch 'origin/next' into OP-932-Modularize_Radio_Driver 2013-05-25 06:56:13 -07:00
Richard Flay (Hyper)
bd538703ea OP-962: Tweaked C2U_STACK_SIZE_BYTES to be a multiple of 4.
+review OPReview-480
2013-05-25 17:10:41 +09:30
Alessio Morale
711f1ad35b Fix indentation 2013-05-23 00:47:38 +02:00
Alessio Morale
697874b315 Port of OP-754 On Revo. Fixed signs on bias calculation. Added rate zeroing at startup to yaw 2013-05-22 23:17:09 +02:00
Brian Webb
ac4847c8ac OP-932 Moves the configuration of the com ports on the coordinator OPLink to startup. 2013-05-21 19:48:21 -07:00
Brian Webb
dbce08a151 OP-932 Changes the radio task loop to loop every 1ms, and reduces the tx transmit period back down to 8ms. Also reduces the Tx windows to 1ms for each modem, and reserves the latter half of the Tx window for channel changing. 2013-05-21 17:40:05 -07:00
Alessio Morale
294a295510 Port CF patch from Cyr that filters accel to reduce attitude drift due to vibrations 2013-05-22 00:55:10 +02:00
Alessio Morale
0b5a28f19e Port OP-754 to Revolution attitude estimation module: subtract GyroBIAS to work on raw value
Added MagKp and MagKi to AttitudeSetting UAVO
2013-05-21 23:44:12 +02:00
a*morale
464d2be9f7 Port OP-754 to Revolution attitude estimation module 2013-05-21 22:40:35 +02:00
Brian Webb
d4a4588011 OP-932 Changes the RFM22 frequency hopping to change channels every Tx period. Also increases the Tx clock period from 8ms to 16ms, and adds a check on calculation the the time delta that it doesn't change the previous estimated time delta by too much. If the delta between the current time delta and the previously estimated time delta is too large it could indicate that there was a delay somewhere that makes the calculated time delta inaccurate.
Rearanges the packet send priority in the rfm22b driver so that PPM packets are top priority.
2013-05-20 20:49:24 -07:00
Alessio Morale
8e7e7e052a OP-962 Fix Stack size for ComUSBBridge
+review OPReview
2013-05-21 00:45:45 +02:00
Oleg Semyonov
0798d8e330 OP-891: move firmware_info template under flight directory 2013-05-20 01:12:45 +03:00
Brian Webb
649667d338 Addes ifdef PIOS_INCLUDE_WDG around several calls to the wathdog functions for the Revolution firmware (allows you to turn off the watchdog). 2013-05-19 12:56:23 -07: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
88a39a81d8 Enable ComUsbBridge Optional Module and fix CDC support for RevoProto 2013-05-19 10:07:01 +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
3ec9447fdc OP-901 Update CMSIS to r3p2-00rel1 2013-05-18 20:29:06 +02:00
Alessio Morale
e8dc7509f9 Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into next 2013-05-18 17:18:48 +02:00
Oleg Semyonov
80ce4fc995 Fix weird error of running python script with extra --verbose option as a part of script name
This error of building any EF targets was found on Windows if used with
make V=1 verbose output option. The '--verbose' python script option was
used by the Windows make as a part of python script file name with
'file not found' error. Now it works. Still can't get the cause of that
error, though...
2013-05-18 17:25:26 +03: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
66da2796e0 Merge remote-tracking branch 'origin/amorale/OP-905_revolution_watchdog_next' into next 2013-05-18 15:00:50 +02:00
Alessio Morale
aba64689a6 OP-901 removed stale core_cm3.c file 2013-05-18 14:25:37 +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
448e98b336 OP-901 Updated F1 StdPeriph Driver Library to v3.5.0 2013-05-18 13:55:43 +02:00
Brian Webb
bc4f615c25 Adds setting HSE_VALUE on all F1 targets (should only be necessary if the HSE clock is not 8MHz).
Moves the CMSIS system_stm3210x.c from library.mk to the individual Makefiles for the F1 targets.  This allows for custom SystemInit functions where necessary.
2013-05-17 22:01:48 -07:00
Alessio Morale
09e241e8bd OP-901 removed old stale files in PiOS folder 2013-05-18 00:25:07 +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
Alessio Morale
a7460bfd3c OP-954 Fixes for UT
+review OPReview-470
2013-05-17 21:51:12 +02:00
Corvus Corax
e0de2083af Merge branch 'next' into corvuscorax/OP-944_EKF-improvements
Conflicts:
	flight/libraries/insgps13state.c
2013-05-16 23:29:15 +02:00
Corvus Corax
667f46ceb1 removed non ASCII characters in comment line 2013-05-16 23:21:32 +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)
031ea3e069 Merge branch 'next' into brian/code_cleanup_130514 2013-05-17 05:49:38 +09:30
Alessio Morale
6ba15ebc53 OP-954 Fixes from review:
- CopterControl target fix
- tabs in Nakefiles
- Removed duplicate stale settings and clean empty lines in osd Makefile
+review OPReview-470
2013-05-15 23:18:50 +02:00
Alessio Morale
c80f01dff9 OP-954 Rename the legacy PIOS_INCLUDE_FLASH_SECTOR_SETTINGS to PIOS_INCLUDE_FLASH_LOGFS_SETTINGS
+review OPReview-470
2013-05-15 23:16:34 +02:00
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
Richard Flay (Hyper)
9572a156ce Merge branch 'next' into corvuscorax/o3fixes 2013-05-16 05:56:45 +09:30
Richard Flay (Hyper)
ef5bb6f6fe Merge branch 'next' into OP-950_spi_fixes_FreeRTOS 2013-05-16 05:41:09 +09:30
Brian Webb
156109bb88 Added support for an active low USB vsense line. 2013-05-14 20:37:13 -07:00
Brian Webb
1608d11416 Cleans up some compiler warnings/erros and adds missing ifdefs around some e.g. WDG calls. 2013-05-14 20:22:54 -07:00
Alessio Morale
71cae382ae OP-954 Update OPLink to support the "UAVObject on a specific LogFS instance" updates 2013-05-14 23:54:50 +02: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
Alessio Morale
07af6b5c80 Added LogFS support for OPLinkMini with internal flash 2013-05-14 23:00:45 +02:00
Alessio Morale
8d57d8ff76 Internal flash settings for F1
Conflicts:
	flight/pios/stm32f10x/pios_flash_internal.c
2013-05-14 22:58:05 +02:00
sambas
da23fd6784 Added F1 internal flash driver
Conflicts:
	flight/pios/stm32f10x/pios_flash_internal.c

Conflicts:
	flight/pios/stm32f10x/pios_flash_internal.c
2013-05-14 22:56:12 +02:00
Alessio Morale
707e648457 OP-905: Fixes. Prevent LogFS from triggering watchdog 2013-05-14 18:43:39 +02:00
Alessio Morale
742ea6f6b8 Merge branch 'amorale/OP-905_revolution_watchdog' into next
Conflicts:
	flight/targets/RevoMini/System/pios_board.c
2013-05-14 18:42:02 +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
ff16dd03e7 Merge branch 'amorale/OP-938_ah_improvements' into next
Conflicts:
	flight/modules/AltitudeHold/altitudehold.c
	flight/modules/ManualControl/manualcontrol.c
2013-05-13 23:30:46 +02:00
Oleg Semyonov
e5970ed25d logfs: fix unit tests (requires MIN declaration from pios_math.h) 2013-05-12 03:51:00 +03:00
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
Alessio Morale
535b53cb1c Raised priority for USB interrupt to high, changed subriority to 0 (PriorityGroup is 0) 2013-05-11 22:41:05 +02:00
Stacey Sheldon
441e9e7b84 f4 usb: always init HID and CDC devices
This is required so that we can always respond to HID and
CDC requests via the control endpoint (ep0).  The F1/F3
implementation gets away with disabling these interfaces
because all of the ep0 handling is in the usbhook code
rather than (properly) split out into class-specific
drivers like it is done on the F4 implementation.

Conflicts:
	flight/targets/DiscoveryF4/System/pios_board.c
	flight/targets/FlyingF4/System/pios_board.c
	flight/targets/Freedom/System/pios_board.c
	flight/targets/Quanton/System/pios_board.c
2013-05-11 22:41:04 +02:00
Stacey Sheldon
0d8fe83dca usb cdc: advertise support for line coding and serial state
The CDC descriptor was not advertising support the the line
coding and serial state messages.  This was preventing Mac
from sending the SetControlLineState message to indicate
that a DTE (ie terminal program) was present and reading
from the serial port.

We support (and depend on) the DTE indication now so this
was making CDC not work on Mac.

Linux seems to provide the indication regardless of whether
it is advertised in the descriptor or not.
2013-05-11 22:41:03 +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
565de5fd4e f4 usb: ensure correct interface numbers for BL and FW
The interface numbers differ for the HID interface between
the BL and FW.  This is required to keep windows happy.

In HID+CDC, the CDC interfaces must come first with HID last
which makes it #2.  In HID only mode, we can't use #2 for HID
since windows doesn't like the first/only interface to be
anything other than #0.

Conflicts:
	flight/targets/board_hw_defs/discoveryf4/board_hw_defs.c
	flight/targets/board_hw_defs/flyingf4/board_hw_defs.c
	flight/targets/board_hw_defs/freedom/board_hw_defs.c
	flight/targets/board_hw_defs/quanton/board_hw_defs.c
2013-05-11 22:41:02 +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
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
Alessio Morale
d555bd0673 Uses Internal flash for system settings storage repourposing external flash for "User" storage 2013-05-11 22:06:30 +02:00
Alessio Morale
511283c608 Flash internal: writes optimization using 4 bytes parallelism 2013-05-11 22:04:47 +02:00
Alessio Morale
687e75b2e2 Changes to board specific files to support UAVObject on a specific LogFS instance 2013-05-11 17:15:07 +02:00
Alessio Morale
aefda3b560 Changes to UAVObjectManager to explicitly specify the logfs instance to be used 2013-05-11 17:13:11 +02:00
Richard Flay (Hyper)
04f59d5910 OP-950: Adds "higher priority task woken" logic to SPI and SPI bus resident
sensor device drivers. Based partly on code contributed by lilvinz.

+review OPReview
2013-05-11 16:18:34 +09:30
Corvus Corax
336a50f7e4 dynamic is better than static 2013-05-11 02:02:04 +02:00
Corvus Corax
92d73e0e73 keep on stack for now 2013-05-11 01:56:57 +02:00
Corvus Corax
e3147eed1a some changes as suggested in review 2013-05-11 01:33:56 +02:00
Corvus Corax
0a3b59ddea ManualControl: Initialize scaledChannel to 0, - required to not fail compilation with -O3 (GCC claims about potentially uninitialized use) 2013-05-10 20:23:16 +02:00
Corvus Corax
b76df471ee bugfix on revo proto. STM32F4 A revision has a hardware bug and cannot do flash prefetching properly 2013-05-10 19:53:51 +02:00
Werner Backes
7c9d2ce9a5 Merge branch 'D-Lite/OP-934_rfm22b_rcvr_timeout_handling_next' into next 2013-05-10 09:59:30 +02:00
Corvus Corax
c5cbbf1c19 OP-944 : Improve Extended Kalman Filter generic formula to work roughly as fast as the auto generated code, remove autogenerated code. 2013-05-09 21:26:35 +02:00
Richard Flay (Hyper)
cf14608ebe Merge branch 'next' into hyper/OP-936_task-monitor-rework 2013-05-09 19:25:02 +09:30
Stacey Sheldon
c6485a134c logfs: load/save UAVOs to specific logfs partition
Now that multiple filesystem partitions are supported,
the UAVO manager needs to be specific about which partition
to load/save its objects to.

Conflicts:
	flight/targets/CopterControl/System/pios_board.c
	flight/targets/DiscoveryF4/System/pios_board.c
	flight/targets/FlyingF3/System/pios_board.c
	flight/targets/FlyingF4/System/pios_board.c
	flight/targets/Freedom/System/pios_board.c
	flight/targets/Quanton/System/pios_board.c
	flight/targets/RevoMini/System/pios_board.c
	flight/targets/Revolution/System/pios_board.c
	flight/uavobjects/uavobjectmanager.c
2013-05-08 20:06:32 +02:00
Stacey Sheldon
4f9ce60930 ut logfs: add support for testing a 2nd partition 2013-05-08 19:42:12 +02:00