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

513 Commits

Author SHA1 Message Date
Alessio Morale
b4c1a856c7 OP-1274 Implement 4 bytes aligment for standard malloc (while keeping 8byte alignment for RTOS Stuctures) as done for M3 2014-09-16 00:42:48 +02:00
Fredrik Larrson
d91db0af6f Revert "Merge remote-tracking branch 'origin/proff/OP-1373_DSMFixes' into next"
This reverts commit a39e393274, reversing
changes made to ebfdaf28b5.
2014-09-08 02:31:02 +10:00
Fredrik Larrson
a39e393274 Merge remote-tracking branch 'origin/proff/OP-1373_DSMFixes' into next
Conflicts:
	shared/uavobjectdefinition/hwsettings.xml
2014-09-08 01:54:59 +10:00
Fredrik Larrson
ebfdaf28b5 Merge remote-tracking branch 'origin/havyan/OP-1473_sbus_eof' into next 2014-09-08 01:35:39 +10:00
Alessio Morale
cf9329b8ee OP-1440 - Change timing slightly to support also WS2812B 2014-09-06 12:12:11 +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
Karl Knutsson
ec0d44e1b0 OP-1473 Fix EOF handling for R7008SB 2014-09-04 18:15:36 +02:00
Corvus Corax
b64326208e Merge branch 'next' into corvuscorax/OP-1456_struct_to_array_improvement 2014-08-31 18:43:48 +02:00
Corvus Corax
6faf1a73ac OP-1456 get rid of cast_struct_to_array because it is error prone! 2014-08-24 00:16:34 +02:00
Stefan Karlsson
3d8d803c33 OP-922 Fix missing ppm_id to ppm_out_id rename 2014-08-16 16:58:16 +02:00
Stefan Karlsson
34983a2d28 OP-922 Fix typo in pios_tim.c 2014-08-16 16:58:15 +02:00
Stefan Karlsson
22e981ea87 OP-922 Mark PIOS_DEBUG_Panic with attribute noreturn 2014-08-16 16:57:50 +02:00
Alessio Morale
30df5de332 uncrustify 2014-08-13 15:54:52 +02:00
Alessio Morale
cefc182a5e Merge remote-tracking branch 'origin/amorale/OP-1405_25qXXX_support' into next 2014-08-13 15:25:16 +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
Corvus Corax
c5fae5ee84 Merge branch 'next' into andrecillo/OP-1317_IMU_wind_estimation 2014-08-09 10:43:48 +02:00
Gasté Olivier
dfb21482f4 DSM protocol improvement
added item in DSM protocol in GCS
2014-08-08 13:14:39 +02:00
Alessio Morale
a6502518be OP-1405 - Add support for 25qxxx series of flash memories 2014-08-02 23:05:36 +02:00
Alessio Morale
6a3cb7b808 OP-1403 - Add support for multiple hmc* devices 2014-08-02 20:48:41 +02:00
Alessio Morale
57a43a5587 OP-1403 - Migrate to new HMC5x83 driver and remove old HMC5883 one 2014-08-02 20:48:34 +02:00
Alessio Morale
2a8429320d OP-1403 - Support HMC5983 temperature sensor/compensation 2014-08-02 20:48:24 +02:00
Alessio Morale
3c1b689224 OP-1403 - Add generic I2C/SPI HMC5x83 mag driver 2014-08-02 20:48:16 +02:00
Corvus Corax
5edb2dbae3 Merge branch 'andrecillo/OP-1317_IMU_wind_estimation' into corvuscorax/OP-1317_IMU_wind_estimation 2014-07-26 17:01:03 +02:00
Andres
d6a93cccaf OP-1317 added M_2PI_F and M_2PI_D constants for 2*pi in pios_math.h 2014-07-23 08:03:12 +02:00
Alessio Morale
6c38eda192 OP-1395 - Reset log num when changing flight num. fix flight num update logic 2014-07-09 23:05:38 +02:00
Alessio Morale
61d26d7fd8 op-1395 - automatically increment flight number after disabling log. 2014-07-09 08:39:32 +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
711c3609b6 OP-1395 - Add support for Fast read, explicitly set SPI clock speed to maximum allowed by all parts used 2014-07-08 02:53:25 +02:00
Alessio Morale
55b325966a OP-1395 - Pack several objects on a single Debug Log "slot", after ten consecutive failures (log full) gives up trying to save to prevent wasting time. Use PIOS_Delay for timestamp 2014-07-08 02:47:09 +02:00
Alessio Morale
c6a773363f Merge branch 'amorale/OP-943_add_malloc_for_ccsram' into next
Conflicts:
	flight/pios/common/pios_adxl345.c
	make/apps-defs.mk
2014-06-22 19:31:03 +02:00
Alessio Morale
a03ad41bab Merge branch 'amorale/OP-1365_pios_instrumentation' into next
Conflicts:
	flight/modules/Attitude/attitude.c
2014-06-22 19:13:46 +02:00
Alessio Morale
263fd64ab5 Merge branch 'amorale/OP-1274_freertos_v8.0.0' into next 2014-06-22 16:06:21 +02:00
Alessio Morale
fa24d21237 OP-1365 fix comments 2014-06-18 02:01:16 +02:00
Alessio Morale
eb5deb3eca OP-1274 Remove unneeded cast from task name in xTaskCreate call 2014-06-18 01:47:43 +02:00
Alessio Morale
61f71add4c OP-943 add missing pios_mem.c from previous commit 2014-06-11 23:54:28 +02:00
Alessio Morale
b3b90f1f66 OP-943 inline pios_mem function have issues with simposix. 2014-06-11 22:15:40 +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
622519b7c2 OP-1365 Flight code instrumentation API: add documentation to pios_instrumentation_helper, uncrustification 2014-06-10 22:13:20 +02:00
Alessio Morale
8ba5741f99 OP-1365 Flight code instrumentation API: Add some helper macros to simplify the addition of instrumentation code to a module.
Note: Look at next commit for an example use case.
2014-06-10 21:34:33 +02:00
Alessio Morale
698d132f9c OP-1365 Flight code instrumentation API: Changed API to use handlers (opaque pointers) to counter struct instead of an index, fix Search function, create does check if coutner exists and return existing handler 2014-06-10 21:24:28 +02:00
Alessio Morale
07d2e27276 OP-1274: Update to FreeRTOS 8.0.1 2014-06-10 19:42:11 +02:00
Alessio Morale
ee8ffed465 OP-1274: Force 8 bytes alignment for RTOS structures while using 4 bytes alignment for the remaining memory allocation operations to save RAM 2014-06-10 19:10:37 +02:00
Alessio Morale
92b48b09ff OP-1227 Fix high CPU usage: remove oversample buffer calculation in several part of pios_adc all over the code. 2014-06-09 19:28:22 +02:00
Alessio Morale
7acb0ad385 OP-1227 Fix high CPU usage: Apply missing parenthesis to prevent a fdiv for temp calculatin 2014-06-08 22:02:10 +02:00
Alessio Morale
a9f1d55fea OP-1227 Fix high CPU usage: Optimize Memory usage in ADC driver.
- performs undersampling in two steps operating with a half buffer at time;
- Skip costly undersampling for Temperature channel;
- some optimizations to the downsample loops;
- apply compiler speed optimization to PIOS_ADC_downsample_data()
2014-06-08 22:01:05 +02:00
Alessio Morale
a0d68c6afb OP-1227 Fix high CPU usage: Reduce Accel rate to 1600Hz, optimize sample reading, explicitly set bus speed
Note: Counter 0xA3450001 is the time it takes to transfer the requested number of samples
2014-06-08 21:33:18 +02:00
Alessio Morale
197d381937 OP-1365 Flight code instrumentation API: Add helper function to track mean period between its calls 2014-06-07 18:11:34 +02:00
Alessio Morale
9db264a457 OP-1365 Flight code instrumentation API: Add CopterControl support 2014-06-07 00:47:06 +02:00
Alessio Morale
1c92edb18b OP-1365 Flight code instrumentation API: Fix min/max handling 2014-06-06 22:38:49 +02:00
Alessio Morale
520e721bdd OP-1365 Flight code instrumentation API: PiOS Implementation 2014-06-06 22:15:18 +02:00
Alessio Morale
af8fe1f921 OP-1274 Fixes for Simposix 2014-05-18 22:56:57 +02:00
Alessio Morale
36e304f579 OP-1274 fixes for revolution 2014-05-18 22:56:48 +02:00
Alessio Morale
e9fff2b6fa OP-1274 fixes for OPLink 2014-05-18 22:56:44 +02:00
Alessio Morale
be5cc66bd3 OP-1274 fixes for Coptercontrol firmware 2014-05-18 22:56:29 +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
3c5a41049b Merge branch 'amorale/OP-1302_updated_led_behaviour' into next 2014-05-11 12:01:53 +02:00
Alessio Morale
e5d6726bb6 Merge remote-tracking branch 'origin/next' into amorale/OP-1302_updated_led_behaviour 2014-05-08 22:27:08 +02:00
Alessio Morale
19caa57dc6 OP-1312 fix copy/paste-naming issue 2014-05-03 11:45:30 +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
Alessio Morale
82139a6e44 Merge remote-tracking branch 'origin/amorale/OP-1294_fix_stacks_heap_cc' into next 2014-04-15 21:46:26 +02:00
Alessio Morale
299f388245 OP-1302 Add a stub pios_notify API for user interaction/notifications
right now all notifications produces the same output, the DRAW_ATTENTION sequence
2014-04-13 17:42:57 +02:00
Philippe Renon
3b7b06aad0 Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into next 2014-04-09 09:11:54 +02:00
Philippe Renon
1b356341c7 OP-1033 pios_rfm22b.c will not be messed up by uncrustify anymore :) 2014-04-09 09:06:18 +02:00
Philippe Renon
ec1ecc020e OP-1033 attempt at fixing the f1 usb buffer configuration (current configuration has overlapping buffer that cause tx errors) 2014-04-08 21:51:11 +02:00
Alessio Morale
1aefc61bc4 OP-1294 Resize stack for CallbackScheduler. 2014-04-07 00:31:48 +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
Corvus Corax
5866983ba3 Merge remote-tracking branch 'origin/Bertrand/OP-1272_Fix_STM32F4_Watchdog_Freeze_In_Debug_Mode' into next 2014-03-27 22:33:32 +01:00
Andres
c5dc556a43 OP-1273 Uncrustify 2014-03-27 16:19:22 +01:00
Andrés Chavarría Krauser
4dff86dc9c OP-1273 New files for the MS4525DO PixHawk speed sensor: PIOS files and module files 2014-03-25 10:37:10 +01:00
Andrés Chavarría Krauser
f8f53d8801 OP-1273 Adaptations to include MS4525DO PixHawk speed sensor 2014-03-25 09:18:25 +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
Alessio Morale
519d74ad1b OP-1026 fix review issues 2014-03-09 16:08:27 +01:00
Philippe Renon
4f42a1e950 OP-1033 added TODOs to validate that f1 USB end points configuration is consistent 2014-03-03 20:54:45 +01:00
Philippe Renon
e9dc5fac9a OP-1033 added more descriptive comment for usb end points (f1) 2014-03-02 14:51:34 +01:00
Philippe Renon
9a0f28d138 OP-1033 removed useless self inclusion of f4 usb_conf.h 2014-03-02 14:47:17 +01:00
Philippe Renon
b2168a4982 OP-1033 moved f1 specific usb include files to stm32f10x/inc directory 2014-03-02 14:46:01 +01:00
Alessio Morale
73d0b93829 OP-1026 Add a task monitor api to calculate idle percentage 2014-02-22 00:29:02 +01:00
Corvus Corax
e97ce303b8 Merge branch 'corvuscorax/OP-942_task-diagnostics-for-callbacks' into next 2014-02-18 00:03:07 +01:00
Alessio Morale
3044185019 Merge remote-tracking branch 'origin/amorale/OP-1218_pios_com_thread_safe' into rel-14.01
Conflicts:
	flight/modules/RadioComBridge/RadioComBridge.c
2014-02-17 15:24:50 +01:00
Alessio Morale
da5ef3b3cc OP-1218 Raise time PIOS_COM_SendBuffer waits to acquire sendbuffer semaphore 2014-02-15 22:05:56 +01:00
Alessio Morale
8cd5cfe2eb OP-1218 format/consmetic/comments fixes 2014-02-15 22:05:56 +01:00
Alessio Morale
1ba5dbaca8 uncrustify 2014-02-10 22:57:24 +01:00
Alessio Morale
fd92e2a497 Merge remote-tracking branch 'origin/amorale/OP-1218_pios_com_thread_safe' into rel-14.01 2014-02-10 20:52:15 +01:00
Alessio Morale
79b68ae886 OP-1218 locks SendBuffer under the same mutex as SendBufferNonBlocking 2014-02-09 19:57:05 +01:00
Alessio Morale
67117d228d OP-1149 change POW2 as POW2(0) led to undefined results 2014-02-09 12:05:40 +01:00
Alessio Morale
1569881e94 OP-1149 Remove shifts as they can have bad behaviours for negative numbers.
Documents correction algorithms as described in ms5611 documentation
2014-02-09 12:05:32 +01:00
Alessio Morale
5fa390ec9d OP-1149 fix low temperature compensation formula 2014-02-09 12:05:28 +01:00
Alessio Morale
590c27af29 OP-1218 fix thread safety issue with pios_com PIOS_COM_SendBufferNonBlocking
(kudos @filnet for finding this)
2014-02-09 11:37:02 +01:00
Corvus Corax
c74790b823 OP-942 correct reporting of callback stack overflows 2014-02-07 22:57:31 +01:00
Corvus Corax
7ec21a8f36 OP-942 duplicated exact API of task_monitor to also monitor callbacks
This allows cleaner and fine grained handling of STACKOVERFLOW alarms
2014-02-07 22:39:16 +01:00
Corvus Corax
9a6072d58c Merge branch 'next' into corvuscorax/OP-942_task-diagnostics-for-callbacks
Conflicts:
	flight/targets/boards/simposix/firmware/Makefile
2014-02-07 00:31:32 +01:00
Corvus Corax
6566a29054 OP-942 reliable and fast free stack test algorithm - will always 'see' overflows 2014-02-06 23:54:30 +01:00
Corvus Corax
c7ada40c2e Merge branch 'corvuscorax/OP-1211_time_measurement_helper' into rel-14.01 2014-02-06 19:56:47 +01:00
Corvus Corax
216ec095e4 OP-1211 removed unneeded define 2014-02-06 19:34:34 +01:00
Corvus Corax
723e22aa1a OP-1211 time_measurement_helper 2014-02-04 19:05:17 +01:00
Corvus Corax
cc04b780c5 OP-942 one possible but not well working implementation of stack end check 2014-02-04 17:53:51 +01:00
Corvus Corax
418f7e3d0f OP-942 task diagnostics for callback scheduler 2014-02-03 01:00:07 +01:00
Corvus Corax
49a1c4c28f OP-942 refactored callback scheduler to fit into PiOS naming scheme 2014-02-02 22:08:16 +01:00
Corvus Corax
5b9a17f630 OP-942 moved DelayedCallbackScheduler into pios/common 2014-02-02 20:31:37 +01:00
Corvus Corax
597ac4db2a OP-1195 increase priority for pios radio link driver task 2014-02-02 14:09:50 +01:00
Alessio Morale
7188394e39 Uncrustification 2014-01-19 12:37:25 +01:00
Alessio Morale
745a9e8853 Merge remote-tracking branch 'origin/fnurgel/OP-1148_r7008sb_sbus_protocol_fix' into next 2014-01-18 14:21:57 +01:00
Corvus Corax
41202a0227 Merge branch 'corvuscorax/OP-1022_AH_improvements_amorale' into next 2014-01-15 22:47:42 +01:00
Philippe Renon
c8a81f88a4 OP-1122 OP-1158 added facility to update a CRC with uavobject data (flight side) 2014-01-12 15:12:41 +01:00
Mikael Blomqvist
b1d2c1b83e Adding R7008SB end byte as a possible end of frame check for S.Bus 2014-01-03 18:25:44 +01:00
Philippe Renon
d668153b6d OP-1122 OP-1125 fixed copy/paste error in rfm22b flight code 2013-12-14 16:03:42 +01:00
Alessio Morale
29df9d6dad OP-1139: Add some more descriptive names and comments for compensation variables 2013-12-13 17:10:11 +01:00
Alessio Morale
13b45b2b78 OP.1139: uncrustify 2013-12-10 01:44:13 +01:00
Alessio Morale
75842cb648 OP-1139: perform second order low temperature compensation.
It follows the procedure described in MS5611 datasheet(http://www.meas-spec.com/downloads/MS5611-01BA03.pdf, page 8)
to perform low(20°) and very low(-15°C) temperature compensation.
2013-12-10 01:21:05 +01:00
Corvus Corax
25fd3d5740 Just uncrustification 2013-11-26 00:43:02 +01:00
Fredrik Arvidsson
2fc34910e0 OP-1119 Fix in pios function for debuglogging uavo. 2013-11-26 00:36:59 +01:00
Corvus Corax
be9faabe92 Merge branch 'next' into corvuscorax/onboardlogging 2013-11-26 00:34:01 +01:00
Alessio Morale
bacc4d3d79 Merge branch 'master' into next
Conflicts:
	flight/targets/boards/oplinkmini/firmware/pios_board.c
	ground/openpilotgcs/copydata.pro
2013-11-25 01:12:10 +01:00
Corvus Corax
18ad56d4ed removed identical files from pios/posix (use files from common instead) 2013-11-24 15:40:32 +01:00
Corvus Corax
89afbde58a initialized log packages with 0xff instead of 0x0 to reduce flash wear 2013-11-24 15:36:26 +01:00
Corvus Corax
fcc479f5cb more intelligent log interfacing, including flash formatting option 2013-11-17 20:14:50 +01:00
Corvus Corax
6031200aea Some fixes in debuglog to compile and run on all firmware platforms 2013-11-17 18:04:47 +01:00
Corvus Corax
a0746d87fa Logging facility: logs debug data to logfs and exports it through container UAVObject 2013-11-17 02:54:26 +01:00
Corvus Corax
adfbdfae38 Make use of (now supported) standard snprintf in stdarg-printf when used in logfs 2013-11-17 02:49:53 +01:00
Corvus Corax
314d526e94 corrected instance id encoding in filename to not conflict with metadata uavobject ids 2013-11-16 18:55:54 +01:00
Corvus Corax
00321b09dc Modified uavobjectmanager to only use logfs calls for UAVObject flash transactions, abstracted dosfs calls to use logfs wrapper class for simpiosix and SD-card access 2013-11-16 17:30:40 +01:00
Corvus Corax
86aa993d24 changed port increment tick function for new freertos 2013-10-18 23:07:23 +02:00
mathieu
fb1f58c94b Merge branch 'next' into Mathieu/OP-1079_Update_to_FreeRTOS_v7_5_2 2013-09-11 18:57:37 -07:00
Mathieu Rondonneau
03b243fe31 OP-1079 - Update to FreeRTOS v7.5.2 2013-09-04 20:26:23 -07:00
Alessio Morale
e91bc28667 OP-1058 Get rid of Unions.
They caused stack usage increase with -fstrict-aliasing as stack slots are not reused when dealing with unions.
It has now been added the cast_struct_to_array macro in pios_struct_helper.h to handle such case where it is useful to access those homogeneous structs as arrays

+review OPReview-552
2013-09-01 12:10:55 +02:00
Brian Webb
5ac1f33c47 Adds missing pios_gpio_priv.h 2013-08-02 22:01:44 -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
Richard Flay (Hyper)
c3e3521001 OP-1049: Hotfix to 13.06.02 for MPU6000 FIFO overflow on CC3D when board initialisation takes
longer than 150ms.
2013-07-28 01:16:22 +09:30
Alessio Morale
11bc7804d0 Merge branch 'amorale/OP-994_adc_cleanup' into next 2013-07-16 12:23:25 +00:00
Brian Webb
c2df59498b Merge remote-tracking branch 'origin/master' into next 2013-07-06 07:08:30 -07:00
Brian Webb
0d02df4d02 Uncrustified OPLink code. 2013-07-05 18:49:26 -07:00
Brian Webb
d0d8a0aadd OP-932 Adds PWM outputs to OPLinkMini. Both gpio pins on the main and/or flexi port can be configured to output PWM for a total of up to 4 PWM outputs. 2013-07-03 18:58:34 -07:00
Alessio Morale
89cb294218 OP-994 Move pios_architecture,h include in pios,h
+review OPReview-506
2013-07-02 19:26:39 +02:00
Brian Webb
c76ee7de9d OP-932 Fixes the failsafe that detects when the Rx modem loses sync with the Tx modem. This was not working on one-way mode. 2013-06-30 16:08:50 -07:00
Brian Webb
491e5fe685 Adds a failsafe on PPM output on OPLink that kicks in when the link goes down. Also updates all air datarate settings and adds new 64 and 100 kbps modes. 2013-06-29 15:00:38 -07:00
Brian Webb
d5f16faaec OP-932 Fixes the datarate used on PPM only mode, and fixes failsafe on PPM output on OPLM. 2013-06-26 20:11:39 -07:00
Brian Webb
caa8d3e70e OP-932 Forces one-way to be set when PPM only is configured. 2013-06-26 18:02:08 -07:00
Brian Webb
2aea2342ab OP-932 Adds a direct PPM channel on each Tx packet when in PPM mode, and adds a PPM only mode that uses a 9600 bps air datarate. Also updates the OPLink configuration tab and moves all OPLink configuration to the OPLink configuration tab on the Revo, and customizes the OPLink configuration tab for the Revo. 2013-06-26 18:01:54 -07:00
Brian Webb
b25ba75fd9 OP-932 Removed obsolete include of pios_rfm22b_rcvr from pios.h. 2013-06-26 18:00:22 -07:00
Brian Webb
44a0266e41 OP-932 Adds claiming of the SPI bus in the OPLink channel change function. 2013-06-26 18:00:02 -07:00
Brian Webb
56a60f2983 OP-932 Updates the 19.2 kbps datarate using the spreadsheet. 2013-06-26 17:59:49 -07:00
Brian Webb
61c453f6ff Removes several of the air datarate settings, and fine tunes the calculation of the max packet length from the datarate and packet time. 9600, 19200, 36400, and 57600 modes tested. Tested 19200 in one-way mode for PPM only. 2013-06-26 17:59:33 -07:00
Brian Webb
cdd51537f1 Fixes the 9600 bps air datarate for the RFM33B modem. 2013-06-26 17:57:46 -07:00
Brian Webb
fc0328a3cd OP-932 Adds working one-way mode to the OPLink radio connection. In this mode, packets will only flow from the ground side (coordinator modem) to the flight side modem. 2013-06-26 17:57:32 -07:00
Brian Webb
774a74884a OP-932 Replaces the RFM22B PPM/receiver code with an OPLinkReceiver UAVObject. This object is generated on a coordinator OPLink, and is used by both the OPLink to generate PPM output, and the OPLinkReceiver on the Revo. 2013-06-26 17:57:11 -07:00
Brian Webb
8c370df319 OP-932 A significant re-work of the OPLink and configuration of the OPLink. Auto-configuration is removed, and remote modems are bound the coordinator, rather than the other way around. Timing of the radio link is also significantly changed. The rfm22b code is also simplified so that it only sends packet, and has no notion about what those packets are, so the rfm22b is converteded to simply a com type device. 2013-06-26 17:56:56 -07:00
Brian Webb
08efc8d152 OP-932: Adds an oplink receiver device, which is based on the gcs receiver device, but uses the OPLinkReceiver UAVObject. The OPLinkReceiver packets are generated on the OPLink modem. 2013-06-26 17:56:20 -07: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
Brian Webb
ac75af55c1 OP-932 Moves the PIOS_PPM_OUT_Set function from pios_ppm_out_priv.h to pios_ppm_out.h 2013-06-26 17:55:56 -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
Corvus Corax
6163c5f53a Merge branch 'next' into corvuscorax/OP-947_stateestimator-module
Conflicts:
	flight/modules/AltitudeHold/altitudehold.c
	ground/openpilotgcs/share/openpilotgcs/pfd/default/AltitudeScale.qml
	ground/openpilotgcs/share/openpilotgcs/pfd/default/PfdIndicators.qml
	ground/openpilotgcs/share/openpilotgcs/pfd/default/SpeedScale.qml
	ground/openpilotgcs/src/plugins/pfd/pfdgadgetwidget.cpp
2013-06-22 18:44:03 +02:00
Alessio Morale
5cc3645b96 Uncrustify 2013-06-18 20:23:46 +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
Corvus Corax
1d17d08cca Merge branch 'next' into corvuscorax/OP-947_stateestimator-module 2013-06-12 18:32:01 +02:00
Alessio Morale
ad123a2761 Merge remote-tracking branch 'origin/amorale/OP-980_connection_reliability_issue' into next 2013-06-11 15:39:34 +02:00
Alessio Morale
2c0f7794a9 Merge remote-tracking branch 'origin/amorale/OP-997_revolution_settings_to_ext_flash' into next 2013-06-11 15:39:13 +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
88071b1078 Merge remote-tracking branch 'next' into corvuscorax/OP-947_stateestimator-module 2013-06-09 22:43:25 +02:00
Corvus Corax
6f59c49506 just uncrustification 2013-06-09 22:09:04 +02:00
Alessio Morale
e9b3ee52f3 OP-997: add fields to SystemStatsUavo to monitor storage status 2013-06-09 19:20:00 +02:00
Corvus Corax
218e15ce61 Merge branch 'next' into corvuscorax/OP-947_stateestimator-module 2013-06-09 17:24:08 +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
Corvus Corax
022f1a1ac0 Merge branch 'next' into corvuscorax/OP-947_stateestimator-module
Conflicts:
	flight/modules/Attitude/revolution/attitude.c
2013-06-09 13:49:52 +02:00
Alessio Morale
107b930573 Merge remote-tracking branch 'origin/amorale/OP-980_revolution_usb_reconnect' into next 2013-06-09 09:07:24 +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
Corvus Corax
6fdf554d4a Merge branch 'next' into corvuscorax/OP-947_stateestimator-module
Conflicts:
	flight/modules/Attitude/revolution/attitude.c
	ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp
	shared/uavobjectdefinition/attitudesettings.xml
2013-06-06 19:25: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
Mathieu Rondonneau
45391abd55 OP-976: RE-run uncrustify 2013-06-05 19:48:56 -07:00
Mathieu Rondonneau
a8c946dcb2 OP-976: Fix uncrustify changes that put a space before the ";" in the macro 2013-06-05 19:46:55 -07:00
Mathieu Rondonneau
d2fae1abed OP-976: fixing function name in the macro although don't have any effect since the linker directives are local. 2013-06-05 19:15:47 -07: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
Corvus Corax
6f6ca2481e Changed CoordinateConversion to use doubles for LLA2NED conversion, so coordinates can be represented in ECEF with sufficient resolution 2013-06-05 20:40:49 +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
Mathieu Rondonneau
23b2907d08 OP-976: Add the ';' back
This compile successfuly with make all_flight
2013-06-03 20:37:40 -07: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
Brian Webb
e9f83bcc80 Fixes a bug in the rfm22b driver that was reading past the end of the bindings list when receiving a status message. Also adds some formatting changes that came about after doing a make uncrustify_all. 2013-05-26 08:36:38 -07:00
Corvus Corax
40864b2d3b some cleanups 2013-05-23 21:21:14 +02:00
Corvus Corax
843db63cf6 some last issues from review 2013-05-22 23:08:48 +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
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
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
3ec9447fdc OP-901 Update CMSIS to r3p2-00rel1 2013-05-18 20:29:06 +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
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
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)
031ea3e069 Merge branch 'next' into brian/code_cleanup_130514 2013-05-17 05:49:38 +09:30
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)
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
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
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
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
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
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
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
f4bed187f4 f4 usb cdc: implement CDC class driver for STM32 F4 SoCs 2013-05-11 22:38:26 +02:00