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

497 Commits

Author SHA1 Message Date
Stacey Sheldon
b6eeb59b26 flash: verify JEDEC ID during flash init
Verify that the flash component on the board matches exactly
what we're expecting.  This is a simple way to verify that we
are communicating properly with the JEDEC flash chip.

Conflicts:
	flight/targets/board_hw_defs/freedom/board_hw_defs.c
	flight/targets/board_hw_defs/quanton/board_hw_defs.c
2013-03-03 14:33:02 +01:00
Stacey Sheldon
17b8696261 flash: use uintptr_t to hold opaque pointers
When storing an opaque pointer value in a uint, the
appropriate type is uintptr_t which is guaranteed to
be wide enough to hold a pointer.

This is particularly important when the code can be
compiled in a sim or unit test environment which is
intended to run on a 64-bit machine.

Conflicts:
	flight/PiOS/Common/pios_flash_jedec.c
	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-03-03 14:33:02 +01:00
Stacey Sheldon
dd5f4b949c logfs: use uintptr_t to hold opaque pointers
When storing an opaque pointer value in a uint, the
appropriate type is uintptr_t which is guaranteed to
be wide enough to hold a pointer.

This is particularly important when the code can be
compiled in a sim or unit test environment which is
intended to run on a 64-bit machine.

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-03-03 14:33:02 +01:00
Alessio Morale
cc2d5f8eae Fixes for missing openpilot.h include, previously coming from flashfs_objlist 2013-03-03 14:33:02 +01:00
Stacey Sheldon
7726b9e2a9 logfs: use f3-safe slot and arena states for all chips
Filesystem magic value has been updated to deal with the
format change.

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-03-03 14:33:01 +01:00
lilvinz
d611207789 pios_flashfs_logfs: moved modified ARENA and SLOT enums to an F3 branch
also added a detailed comment
2013-03-03 14:33:01 +01:00
lilvinz
b242f8b88c pios_flashfs: adapted flashfs to work on f3 2013-03-03 14:33:01 +01:00
Stacey Sheldon
81059c41f7 flashfs: remove API dependency on uavobjmanager types
The flashfs layer is now entirely decoupled from the UAVO
data types.  All UAVO related calls are now properly
contained within uavobjectmanager.c.

This will make the flashfs layer more portable as well as
more testable in a standalone environment.  Eventually,
this layer could be used to store arbitrary files.

Also fixed all of the doxygen headers for the flashfs API.
2013-03-03 14:33:01 +01:00
Stacey Sheldon
d89a9b1b6c objlist: remove now unused objlist flash filesystem
Conflicts:
	flight/PiOS/inc/pios_flashfs_objlist.h
2013-03-03 14:33:01 +01:00
Stacey Sheldon
5ef0988137 logfs+flash: add log structured filesystem for PiOS
A new flash driver abstraction is also provided to allow
for future support of other types of flash device under
the filesystem.

Conflicts:
	flight/PiOS/Common/pios_flash_jedec.c
2013-03-03 14:33:01 +01:00
Brian Webb
4743404c47 RFM22B: Some more reliability improvements for frequency hopping. 2013-03-01 07:55:00 -07:00
Brian Webb
2f0498d8ad Was a little aggressive on the rfm22b device structure cleanup, and removed the PPM receiver elements. 2013-02-25 00:30:32 +00:00
Brian Webb
d9baa372c7 Added frequency hopping to the RFM22B driver. Currently it defaults to 128 channels between 430 and 440 MHz. 2013-02-24 23:05:51 +00:00
Brian Webb
1af58e510e Added optional output of GCSReceiver from the OPLink to the FC. This will happen automatically if a PPM packet is receive, and PPM output is disabled. 2013-02-18 02:55:58 +00:00
Brian Webb
cf7c929030 Added the ability to store bindings and configuration paramaters for multiple (up to 8) modems from an OPLink controller modem. 2013-02-18 01:49:13 +00:00
Alessio Morale
3986f93e68 op-848 Splitted sample rate divider configuration for dlp and non_dlp settings (1kHz vs 8kHz sample rate).
Minor clean up, used constants in place of some hardcoded values
2013-02-17 12:20:25 +01:00
Brian Webb
46baec52ef Merge remote-tracking branch 'origin/next' into brian/rfm22_multibind 2013-02-17 01:21:12 +00:00
Alessio Morale
e27a07631e op-848 MPU6000 support user configurabe accel/gyro scales and filter bandwidth.
board definitions can override any of this settings for special applications.
Also include cleanup from "magic numbers" and fix for inverted ranges
2013-02-17 02:02:12 +01:00
Oleg Semyonov
aea1b4b544 Merge remote-tracking branch 'origin/os/OP-775_arm-dsplib' into next 2013-02-16 16:08:31 +02:00
Brian Webb
57b4d8c720 RFM22: Added support for binding to multiple remove OPLinks. 2013-02-08 01:56:22 +00:00
Brian Webb
e50e645e7b Merge remote-tracking branch 'origin/next' into brian/oplink_ppm_out 2013-02-07 13:39:21 +00:00
Oleg Semyonov
97436166e3 Merge remote-tracking branch 'origin/next' into os/OP-775_arm-dsplib 2013-02-06 12:55:14 +02:00
Brian Webb
18c592a37a Reformatted PPM output code to match coding standards. 2013-02-02 01:50:02 +00:00
Brian Webb
a4faa22c4b Merge remote-tracking branch 'origin/brian/rfm22_autoconf' into next
Conflicts:
	ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp
2013-01-31 13:40:32 +00:00
Alessio Morale
b317415556 OP-788 reenable transaction lock for pios_jedec_flash.c 2013-01-14 01:31:07 +01:00
Brian Webb
be444db7f8 Added PPM output to OPLink firmware 2013-01-04 06:51:27 -07:00
Oleg Semyonov
95f16e25c4 [OP-775] Provide rules to build DSP library 2012-12-30 21:53:35 +02:00
Oleg Semyonov
aee2613384 [OP-775] Import CMSIS2 ARM DSP_Lib sources (imported by Alessio) 2012-12-30 21:53:29 +02:00
Brian Webb
9f3d7a24f8 Merge branch 'revo-fixes' of ssh://git.openpilot.org/OpenPilot into brian/rfm22_autoconf
Conflicts:
	flight/RevoMini/Makefile
2012-12-30 07:59:09 -07:00
Alessio Morale
8a832fa8f6 OP-780 fix for comments 2012-12-30 15:01:25 +01:00
Corvus Corax
37df2bcbf4 OP-742: Merge branch 'corvuscorax/airspeed_fixes' into revo-fixes
Conflicts:
	flight/RevoMini/Makefile
2012-12-29 12:09:58 +01:00
Brian Webb
9225debdc1 Added initialization of the ECC, which was removed with the removal of the packet handler. Removed a couple of test functions from RadioComBridge module. Turned on watchdog timers in RadioComBridge (and RFM22B driver). 2012-12-17 19:33:42 -07:00
Brian Webb
c4c58331e5 RM: Now doesn't crash when the radio is disabled. 2012-12-16 09:16:19 -07:00
Brian Webb
43f6b4150f RFM22: Don't send status until the link is connected. 2012-12-15 09:56:27 -07:00
Brian Webb
3a1803b7a1 Added RFM22B (OPLink) receiver. 2012-12-13 21:07:19 -07:00
Brian Webb
6e929d7a92 Fixed configuration of PPM input. 2012-12-12 20:27:08 -07:00
Brian Webb
90e0746ade RFM22B: Changed default (initial) air baud rate to 9600. Also some code cleanup. 2012-12-11 19:23:59 -07:00
Brian Webb
1d7e4e0fc2 Reduced length of transmit window period to 8 ms from 16 ms. 2012-12-11 17:44:22 -07:00
Brian Webb
8ead1200b9 RFM22B: Added timing synchronization on transmit to try to eliminate both sides transmitting at the same time. This now achieves virtually 0 re-transmissions for close range transmission while transmitting both full telemety and PPM at 64k. 2012-12-11 17:44:20 -07:00
Brian Webb
7f6a718354 RFM22B: Added optional debug signals on the telemetry port of the PipX. Also fixed a couple of bugs that were causing excessive re-transmissions (found using the debug signals). 2012-12-11 17:44:19 -07:00
Brian Webb
fecc23eb49 RFM22B/OPLink: Auto-configuration of remote com port now working. 2012-12-11 17:44:17 -07:00
Brian Webb
6ffe518509 RFM22B: Improved link stability, and added tracking of error encountered in the processes of transmitting and receiving. 2012-12-11 17:44:15 -07:00
Brian Webb
4cb311538a RFM22B: Improved reliability, especially with reconnection after a timeout, although there is still too many resent packets. 2012-12-11 17:44:14 -07:00
Brian Webb
6ed9b63da9 RFM22B: Changing configuration parameters over-the-air working. Added tracking of Tx/Rx sequence number. Still seeing too many resent packets. 2012-12-11 17:44:11 -07:00
Brian Webb
0dce12e984 RFM22B: Finised handshacking on ACK and changed the link quality metric to use resent packets rather than missed packets. 2012-12-11 17:44:09 -07:00
Brian Webb
7aaa02268f RFM22B: Added TX Resent to OPLink status. Also removed the need for the packet queue. 2012-12-11 17:44:08 -07:00
Brian Webb
fa5f7a8fdd RFM22B: All packets are now ACKed, and added a formal connection request / accept that will be used or auto-configuring the remote modem. 2012-12-11 17:44:06 -07:00
Brian Webb
98026966f7 RFM22B: Added PPM packets to rfm22 driver. 2012-12-11 17:44:04 -07:00
Brian Webb
04da5d2377 USB/COM/RFM22B: Added a standard com callback to test for link availability. This replaces the PIOS_USB_CheckAvailable function with a generic PIOS_COM_Available function. This is now used by the RFM22B com driver to test if a good link is up. This was originally written by James, and Brian merged it into the latest RFM22B branch. 2012-12-11 17:44:03 -07:00
Brian Webb
e36bd678e1 RFM22B: Allow a receive to happen between transmitts. 2012-12-11 17:44:01 -07:00
Brian Webb
9f43e1151c RFM22B: Fixed status reporting and connection status for OPLink. 2012-12-11 17:44:00 -07:00
Brian Webb
bd42083376 RFM22B: Changed the way the frequencies and power settings are set for the rfm22b device. 2012-12-11 17:43:55 -07:00
Brian Webb
dae382564a RFM22B/RM: Added rfm22b com device, moved remaining functionality in the radio module to the rfm22 driver, and simplified configuration of the PipX/OPLink. The radio device now presents itself completely as a com device, both in RadioComBridge (OPLink devices) and Telemetry (RM). Also change the PipXStatus and PipXSettings UAVOs to OPLinkStatus/OPLinkSettings. 2012-12-11 17:43:53 -07:00
Brian Webb
4b90f81f6f RFM22B: Modified the method of tracking RX errors, and now reporting Good, Corrected, Error, and Missed packets to the GCS. Also removed some less useful fields from the PipXStatus. 2012-12-11 17:43:49 -07:00
a*morale
2d83e8a779 Fixes for SBUS support on RM2.
Note: it needs the RTC timing to be fixed as it seems that it runs at half its nominal 625Hz value
2012-11-23 19:41:23 +01:00
Corvus Corax
b09027afe5 Completely refactored airspeed module, now a pure sensor input module without any complex sensor fusion features -- changed driver for mpxv analog airspeed to be more versatile 2012-11-08 01:31:21 +01:00
Stacey Sheldon
5aa3777078 Merge remote-tracking branch 'op-public/next' into revo-next
Conflicts:
	flight/Modules/Telemetry/telemetry.c
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
2012-10-30 00:41:35 -04:00
Stacey Sheldon
2119067722 Merge remote-tracking branch 'op-revo/james/revo' into revo-next
Conflicts:
	Makefile
	flight/Modules/Attitude/revolution/attitude.c
	flight/Modules/Battery/battery.c
	flight/Modules/FixedWingPathFollower/fixedwingpathfollower.c
	flight/Modules/GPS/GPS.c
	flight/Modules/ManualControl/inc/manualcontrol.h
	flight/Modules/ManualControl/manualcontrol.c
	flight/Modules/OveroSync/overosync.c
	flight/Modules/PathPlanner/inc/pathplanner.h
	flight/Modules/PathPlanner/pathplanner.c
	flight/Modules/Sensors/sensors.c
	flight/Modules/VtolPathFollower/vtolpathfollower.c
	flight/PiOS/Boards/STM32F4xx_Revolution.h
	flight/PiOS/Boards/pios_board.h
	flight/PiOS/STM32F4xx/library.mk
	flight/PiOS/inc/pios_hmc5883.h
	flight/PiOS/inc/pios_l3gd20.h
	flight/PiOS/inc/pios_rfm22b_priv.h
	flight/Revolution/Makefile
	flight/Revolution/Makefile.osx
	flight/Revolution/System/inc/pios_config.h
	flight/Revolution/UAVObjects.inc
	ground/openpilotgcs/src/libs/utils/coordinateconversions.cpp
	ground/openpilotgcs/src/libs/utils/homelocationutil.cpp
	ground/openpilotgcs/src/libs/utils/homelocationutil.h
	ground/openpilotgcs/src/plugins/config/configrevowidget.cpp
	ground/openpilotgcs/src/plugins/hitlnew/il2simulator.cpp
	ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp
	ground/openpilotgcs/src/plugins/plugins.pro
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
	package/Makefile
	shared/uavobjectdefinition/fixedwingpathfollowersettings.xml
	shared/uavobjectdefinition/fixedwingpathfollowerstatus.xml
	shared/uavobjectdefinition/flightstatus.xml
	shared/uavobjectdefinition/hwsettings.xml
	shared/uavobjectdefinition/manualcontrolsettings.xml
	shared/uavobjectdefinition/pathdesired.xml
	shared/uavobjectdefinition/vtolpathfollowersettings.xml
	shared/uavobjectdefinition/waypoint.xml
2012-10-30 00:08:43 -04:00
lilvinz
3db04ea174 pios_jedec: fixed usage of uninitialized memory
When reading the jedec device id the code only transfered one byte via spi leaving
the expected input buffer uninitialized. This may lead to the problem that flash
initialization fails because the expected input may be whatever the stack was set
when entering the function. The impact of the bug is somewhat limited tough as the
initialization usually takes place before starting up the rtos and thus is pretty
deterministic. So if the code passed init while testing it should pass init in
production as well.
2012-10-28 14:34:20 +01:00
Stacey Sheldon
127ca1e7e1 Merge remote-tracking branch 'op-public/next' into revo-next
Conflicts:
	ground/openpilotgcs/src/plugins/hitl/plugin.pro
	ground/openpilotgcs/src/plugins/hitlnew/fgsimulator.cpp
	ground/openpilotgcs/src/plugins/hitlnew/hitlconfiguration.cpp
	ground/openpilotgcs/src/plugins/hitlnew/hitloptionspage.cpp
	ground/openpilotgcs/src/plugins/hitlnew/hitloptionspage.ui
	ground/openpilotgcs/src/plugins/hitlnew/il2simulator.cpp
	ground/openpilotgcs/src/plugins/hitlnew/simulator.cpp
	ground/openpilotgcs/src/plugins/hitlnew/simulator.h
	ground/openpilotgcs/src/plugins/hitlnew/xplanesimulator.cpp
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
2012-10-20 13:56:18 -04:00
James Cotton
17f3c4d4e0 Re-add our code for accessing the run time information in freertos. 2012-10-09 09:57:57 -05:00
James Cotton
72c84fc49c Upgrade to FreeRTOS 7.2.0 2012-10-09 09:48:02 -05:00
Brian Webb
9ea572f4f7 RFM22B: Fixed the signedness of the return value of the RSSI function. 2012-10-04 21:23:44 -07:00
Brian Webb
5724fa083c RFM22B: Added link quality calculation based on number of dropped packets. Also added packet error correction, which apparently wasn't being done before. 2012-10-04 21:11:40 -07:00
Brian Webb
9b9d0c0d1e RFM22B: Added back configuration of the RF Power and RF Datarate. Also added setting of the destination ID in the rfm22b driver. 2012-10-03 20:03:35 -07:00
Brian Webb
3cdb9df05f RFM22B: Removed setting register 0x58 in the rfm22_setDatarate call, which was breaking all data rates < 100000 bps. Also temporatily fixed the datarate at 64kbps. 2012-10-02 20:59:43 -07:00
Brian Webb
a8590045a8 RFM22B: Moved radio status reporting from the radio module into the rfm22b driver task. 2012-10-02 19:52:21 -07:00
a*morale
be752b8075 Fixed some declaration to Exti functions to make it compile. 2012-09-30 17:04:36 +02:00
James Cotton
b0d8487e27 PIOS_RFM22: Make the irq return false for the exti changes 2012-09-28 02:14:15 -05:00
James Cotton
5c13c31c08 Merge branch 'next' into revo
Conflicts:
	ground/openpilotgcs/src/libs/utils/homelocationutil.cpp
	ground/openpilotgcs/src/libs/utils/homelocationutil.h
	ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp
	ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.cpp
2012-09-28 01:00:10 -05:00
James Cotton
8979c00fba Merge branch 'exti_end_switching_isr' into next 2012-09-28 00:41:08 -05:00
Stacey Sheldon
9896a0d416 Merge remote-tracking branch 'op-public/next' into revo-next
Conflicts:
	ground/openpilotgcs/src/libs/utils/homelocationutil.cpp
	ground/openpilotgcs/src/libs/utils/homelocationutil.h
	ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.cpp
	shared/uavobjectdefinition/taskinfo.xml
2012-09-27 22:42:44 -04:00
James Cotton
1721479a12 Fix for vinz' merge to pios_mpu6000 exti changes 2012-09-27 14:34:11 -05:00
Brian Webb
6972c29813 RFM22B: Added check for timeout wating for sync on receive. This virtually eliminates the number of timeouts. 2012-09-25 18:10:15 -07:00
Brian Webb
88be2ddf1e RFM22B: Added a message timeout event to the RFM22B state machine that will fire if a packet takes too long to transmit / receive. 2012-09-24 20:51:34 -07:00
Brian Webb
a070e1cc3e RFM22B: Added PIOS_RFM22B_Receive_Packet function and removed rx buffer. 2012-09-23 08:36:38 -07:00
Brian Webb
a46e3cdec3 RFM22B: All outgoing data to the radio is now going through the PIOS_RFM22B_Send_Packet call. Also removed all global variables with the exception of the rx buffer. 2012-09-22 20:13:11 -07:00
Brian Webb
61200f01f5 RFM22B: Major refactoring of te RFM22B driver to implement a state machine for the driver. The state machine should now be complete, and the driver seems to be working pretty well on both the RM and the pipx. 2012-09-22 20:13:10 -07:00
Brian Webb
80509d264e RFM22B: Start at cleaning up the processing interrupt handling, and starting to make it more of a state machine. Also removed the supervisor, which was causing unnecessary resets. The supervisor functionality is not in the the driver thread. 2012-09-22 20:13:08 -07:00
Brian Webb
8ca2e85f4c RFM22B: Removed incorrect defaulting of tx power level. 2012-09-22 20:13:05 -07:00
Brian Webb
6623c55846 RFM22B: Moved ISR processing thread into the rfm22b driver. 2012-09-22 20:13:03 -07:00
lilvinz
47cc6216ac use constants for receivers and updated function description 2012-09-22 10:02:15 +02:00
lilvinz
1169fb5617 added channel data init to gcsreceiver 2012-09-22 09:45:47 +02:00
lilvinz
a6a7ed8157 pios_exti: added returnvalues to exti handlers which allows to use portEND_SWITCHING_ISR 2012-09-16 21:44:09 +02:00
lilvinz
524cff1c40 pios_mpu6000: fixed masked locals mistake 2012-09-16 21:25:06 +02:00
James Cotton
88b483f37d PIOS_MPU6000: Make the driver perform the rotation to bring it into the OP
coordinate system

Previously there were hacks spread throughout to deal with various ways of
positioning the chips.  Now the driver structure specifies the rotation
of the chip relative to the board layout and the output X/Y/Z are already
in OP convention.

This flag seems to do the right thing for Revolution, CC3D, and RevoMini
2012-09-11 01:46:22 -05:00
James Cotton
527edcbee9 RFM22b: Get rid of the burst read commands and do a block transfer 2012-09-08 12:39:14 -05:00
James Cotton
1f0004e9db RFM22b: Abstract out the port into the driver initiation
Also use a separate function to claim the bus semaphore and
assert the CS line.
2012-09-08 12:38:54 -05:00
James Cotton
68fa464ccf RM: Make the direction of the TX/RX lines come from the configuration file 2012-09-04 23:22:56 -05:00
James Cotton
844d14e2f5 RM (NOT FOR PIPX) Properly select the GPIO->RX/TX mapping 2012-09-04 10:22:04 -05:00
James Cotton
0b947b243d Revert "RFM22b: More block claims for rfm22_txStart"
This reverts commit fa4ca426abf5671fc7d0b7206f85f14bcbf92c3d.
2012-09-02 22:44:58 -05:00
James Cotton
dce4f36328 RFM22b: More block claims for rfm22_txStart
Warning: This patch makes the modem work more poorly
2012-09-02 22:44:58 -05:00
James Cotton
311bbcb539 RFM22b: Block transfers for more large SPI transfers
Preallocated buffers with various preambles etc.  Used SPI_TransferBlock for
anything over a few bytes instead of burstWrite.  Also make more of the
communications wrappered in a large semaphore grab using a new rfm22_write_noclaim()

Still needs work - probably because most of the methods to repeated calls they should
all use the noclaim, or more specifically that function becomes rfm22_write/read.
2012-09-02 14:35:56 -05:00
James Cotton
588297806c RFM22b: Use SPI block transfers for filling the RFM22b FIFO
Also removed the disable irq line since that was introducing
flight glitches.
2012-09-01 21:24:42 -05:00
James Cotton
997319ae80 RFM22b: Begin doing blocks of transfers when possible between semaphore claims
The abstraction should probably be improved but ideally we start using
the DMA SPI transfers for PipX and grabbing/releasing the semaphore less
frequently (e.g. not for each 1-2 bytes).
2012-09-01 21:07:38 -05:00
James Cotton
d9ec6454c2 PipX: Since we are calling the PipX ISR from user space looks ensure the frequency stays correct.
Previously it was polling too fast and the PipXStatus was incorrect as a result.  Now make
sure the stats loop only runs at 500 ms.
2012-09-01 19:13:11 -05:00
James Cotton
b888a137f0 TOFIX: Temporarily remove the transaction lock from the settings as it was causing a deadlock with the radio coms. 2012-08-26 05:02:14 -05:00
James Cotton
042055b29a RFM22b: Call the pendingISR routine from all the user space tasks. Got a valid connection with this. 2012-08-26 04:18:17 -05:00
James Cotton
f7cda1c0c4 RFM22b: No need to initialize the SPI. Done already. 2012-08-26 02:42:18 -05:00
James Cotton
477385ca25 RFM22b: Start to move the ISR into userspace 2012-08-26 02:41:19 -05:00