1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-13 20:48:42 +01:00
Commit Graph

231 Commits

Author SHA1 Message Date
Oleg Semyonov
fba201c8b3 usart: move default port numbers from pios_config.h to pios_board.c 2011-06-22 01:32:18 +03:00
Mathieu Rondonneau
fc1e3f574c OP-423: Split task create and module init in order to postpone task creation once the full heap is available.
Also implement some ordering (quite ugly still) in the module init and task creation order so we can decide which module to start/init first
and which module to start/init last.
This will be replaced/adapter with the uavobject list later (once it's implemented).
reserving some space for module init and task create parameters to customize module/task creation (this will be usefull once we get the list and customization from customer).

Changes have been made for OP and CC. Tested comped with CC,OP, sim_posix.
Only ran on bench with CC for couple of minutes (code increase expected but no dropping of stack which is good).

This gives task creation at the time wherethe all heap is available.
2011-06-19 22:35:40 -07:00
Oleg Semyonov
6272210df7 sbus: some code cleanup (no functional changes) 2011-06-19 14:30:13 +03:00
Mathieu Rondonneau
2b11395a67 OP-423 just move stack from systemmod back to heap (200 bytes) that are not needed anymore. 2011-06-18 17:31:29 -07:00
Mathieu Rondonneau
5e3e7cc4e3 OP-423 Fix issue with init not properly started in the right order endup up object thinking other where not init. 2011-06-18 17:28:37 -07:00
Oleg Semyonov
311902f1f2 sbus: implemented S.Bus stream decoding 2011-06-18 23:19:57 +03:00
James Cotton
724016ffb0 When erasing flash at the end start flashing LED to indicate it is done 2011-06-18 14:32:09 -05:00
James Cotton
5044ea36de Start initializing objects in the modules that consume them. Shouldn't affect
OP yet but not tested.
2011-06-18 14:20:51 -05:00
Mathieu Rondonneau
b67a38661e OP-423: merge master into that branch, resolve conflicts and test with CC and bl_CC
heap reamining is low (about 500) but stacks can be ajusted (specially the 200 bytes from system) to give the level close to 1Ko if needed.

Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint

Conflicts:
	flight/CopterControl/System/inc/FreeRTOSConfig.h
	flight/CopterControl/System/inc/pios_config.h
2011-06-17 19:04:09 -07:00
James Cotton
9720a8444f Make a few things optional if they are mostly for diagnostics to keep memory
down
2011-06-17 21:00:21 -05:00
Mathieu Rondonneau
65cf467ca4 OP-423: move the module initialize funtion into a specific section for OP and CC.
- create linker section for those <module>Initialize()
- later this list will incorporate parameters as well. (this probably will be more a OP feature to swap/remove/delete module on the fly.
- this is not done at compile time anymore by Makefile.
- this will allow us to have control on the module start at run-time (not implemented but build the ground for it).
- this simplify the startup (Part of code re-org).
- this change does not affect sim_posix and win32 (since they don't need that)
- ensure it's compiling for PiOS.posix
- port to PiOS.win32 but not tested (not compiled)
- tested on CC
- compile on OP.
- this free ~200 bytes.
- current avalable bytes (is we keep the same remaining bytes on the stack than before) is easily passed the 1.2Ko mark on CC with new gcc (4.5.2)
- this does not include init-reorg for each module (I still think more can be freed)
2011-06-16 22:13:19 -07:00
Oleg Semyonov
aeda61d252 usart: serial telemetry can be disabled to free USART
It was tested being merged with OP-472_CorvusCorax_CopterControl-Guidance_v3
branch, Spektrum on USART3 and GPS on USART1 and seems to work.

Currently defaults mimic original behavior, that is, if USE_SPEKTRUM
is not defined - define USE_PWM and USE_GPS. Thsi should be refactored
later to make it configurable from the Makefile.

Also it was not ported to the OP MB: it currently does not support the
S.Bus hardware and still has original behavior with the patch. But this
is one more step to dynamic configuration of ports.
2011-06-16 15:06:01 +03:00
Oleg Semyonov
50e819192b usart: make CC USART ports compile-time configurable
TODO: This should be dynamic in the future.
But for now define any compatile combination of:
   USE_I2C (shared with USART3)
   USE_TELEMETRY
   USE_GPS
   USE_SPEKTRUM
   USE_SBUS (USART1 only, it needs an invertor)
and optionally define PIOS_PORT_* to USART port numbers

Defaults are:

#define PIOS_PORT_TELEMETRY 1
#define PIOS_PORT_GPS       3
#define PIOS_PORT_SPEKTRUM  3
#define PIOS_PORT_SBUS      1

#define USE_TELEMETRY
#define USE_GPS

Telemetry, GPS and PWM input are enabled by default.
2011-06-15 22:37:44 +03:00
Oleg Semyonov
d8201ec45b sbus: provide a stub based on Spektrum driver (for CC only) 2011-06-15 22:35:21 +03:00
James Cotton
144f36dfb7 Merge branch 'bugfix-flight' 2011-06-14 10:02:55 -05:00
Mathieu Rondonneau
c95b199166 OP-423 do the arch specific stuff (in reset vector) to hide this from portable code:
- switch back to MSP stack before starting the scheduler so that the sheduler can use the IRQ stack (when/if needed).
 - call the C portable function in heap1 to claim some stack back (the number to claim is taken from linker file).
 - start the scheduler from reset vector (I move this here from main because it make sense to not go back to C (so that I don't need to copy the rolled stack in case the sheduler returns). This make it more clean.
 - Also I have added the call to the mem manager if sheduler return. that way, we don't reset indefinitely if memory runs out. We will go to this handler and figure things out (right now, it's just looping but at least not rebooting. Probably trap NMI would be better (later improvement).

The part missing for this part is the weak attribute for the function in heap1.c so that we don't have to update everything with empty stub.
I think the weak atrribute for C function called in assembly is arch dependent so I am not sure if this is possible (will look into it, maybe somebody outthere nows).
Right now, it's heap1 dependent and won't work with heap2. I will clean that up the next couple of days.

I did some test and it looks good.
this is without init code re-organization so we don't free as much as we will be it's good starts.

This compile with sim_posix (since it does not affect portable code) so this is really clean.
I only tested this with CC. I will port it for OP when I will work on heap2.
2011-06-13 21:49:17 -07:00
James Cotton
404c026188 Patch from Zippe to use cycle timer for CPU monitoring. 2011-06-13 00:24:30 -05:00
Mathieu Rondonneau
7598e898fa OP-423 Step-1: split system stack and implement water mark for IRQstack:
- use IRQStack for ISRs (at begening of SRAM) (let's call it the irq stack)
- use end of heap for stack needed during initialization (let's call it the init stack).
- the systemStats in GCS indicate the remaining bytes in the IRQ stack (this is realy usefull to monitor our (nested) IRQs.

This is the base ground to provide as much memory as possible available at task creation time.

Next step is to re-organize the initialization in order to move all the init out of the thread's stacks onto the init stack.
This will provide as much memory as possible available at task creation time.
Basically the stack during initialization will be destroyed once the scheduler starts and dynamic alloc are made (since the init stack is at the end of the heap). We will need to make sure we don't clobber the heap during initialization otherwise this will lead to stack corruption.
2011-06-12 20:23:00 -07:00
James Cotton
4a59c03b0e OP-493: Unfortuantely have to change stack alarms for this to work :( 2011-06-07 10:31:40 -05:00
James Cotton
efe50012cb Merge branch 'spektrum_rtc_supervisor' 2011-05-29 17:19:48 -05:00
sambas
17fb31a7fa Spektrum rtc supervisor working, tested on CC and all outputs are activated. Needs review and testing before merge. 2011-05-29 14:52:22 +03:00
Stacey Sheldon
5be27fda83 coptercontrol: Increase stack size for system module
When running flight software from master (cf74908), my
config was pushing the system module stack usage to within
16 bytes of its limit.  This triggers a stack overflow
alarm which prevents the quad from arming/flying.

This change increases the available stack size such
that there are 72 bytes of stack free (a previously stated
safe margin) when my quad is sitting idle and unarmed on
the bench.
2011-05-29 00:12:26 -04:00
James Cotton
ae2759a957 Merge branch 'bugfix-flight' 2011-05-15 12:50:45 -05:00
James Cotton
2087441006 OP-216: Make the object manager use new flash fs for objects 2011-05-14 14:23:02 -05:00
zedamota
a38fbe6cea Make CopterControl firmware non functional when using the ERASE_FLASH=YES compile flag 2011-05-14 19:03:31 +01:00
James Cotton
5d28276c49 Reshuffle memory allocation on CC after FlightStatus object introduced 2011-05-11 17:35:52 -05:00
James Cotton
8e06eb3162 Get the "IDLE_NO_LOAD" level closer for CC with optimizations on, but it would
be great if someone actually calibrated this for me!
2011-05-07 15:07:14 -05:00
James Cotton
d3247c9946 Remove unused code from coptercontrol.c 2011-05-07 06:56:20 -05:00
zedamota
5dd8a3eea2 Fix a silly mistake on the CC erase_flash compile flag. 2011-05-01 20:10:27 +01:00
zedamota
3d209f2166 Fix to erase option. Erase must be performed after board initialization. 2011-04-30 14:17:44 +01:00
zedamota
8dd46e1465 Should fix the CC showing as OP.
Added a compile flag to make a CC fw version that will erase flash.

Signed-off-by: zedamota <josembarros@hotmail.com>
2011-04-29 23:38:26 +01:00
zedamota
6172e45c0d Should fix CopterControl showing as Openpilot on DropDown box. 2011-04-29 21:42:59 +01:00
James Cotton
819bc9d441 Merge branch 'master' into OP-430_Ligi_UAVTalk-Code-Review 2011-04-26 12:49:32 -05:00
marcus bueschleb
06ac71b784 do not force telemetry update when alarm is changed - this was bypassing the MetaData of the UAVObject and seem to be a relict from times where no metadata existed - now doing it the MetaData way with onchange as updatemode - see http://forums.openpilot.org/topic/4208-systemalarms-bypassing-updatemode-from-metadata/ and OP-431 2011-04-24 03:43:05 +02:00
Corvus Corax
0a05896146 CopterControl: Added dependency: pios_bl_helper 2011-04-23 19:56:48 +02:00
sambas
dabc33c71c OP-22 Flight/PiOS: fix for 11ms framerate, Spektrum supervisor timer must have atleast one interrupt between frames
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3134 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-04-09 14:51:39 +00:00
chebuzz
183ca03cc9 CC/Makefile - Make I2C conditional compilation, disabled by default. Unterminated I2C can cause boot process to hang. Thus disabling I2C by default should help to avoid problems in the future.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3059 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-21 09:18:21 +00:00
edouard
aa097ec400 OP-339 Update USB descriptors on CopterControl and OpenPilot to reflect the new convention.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@3015 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-09 07:21:01 +00:00
peabody124
8930ec01de OP-313 Quaternion based stabilization, gets rid of lots of checking angle
signs, should be stable for all orientations

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2932 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-03-02 01:25:34 +00:00
osnwt
899c1fe0bf Moved CPU and heap alarm thresholds into pios_config.h.
Fixed heap thresholds for the CC (prevented arming).

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2886 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-26 11:46:39 +00:00
peabody124
52f09e5d55 Add compile time flag (USE_SPEKTRUM) to enable spektrum support until the
dynamic switching is done.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2778 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-13 17:43:44 +00:00
sambas
f3bce1705b OP-22 Flight/PiOS: Spektrum fix, OP tested on ground not flown yet, CC not tested.
pios_rcinput.[ch] outdated

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2775 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-13 13:10:02 +00:00
stac
66a9d53d0a hwinit: Convert I2C driver to dynamic init
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2773 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-12 22:19:54 +00:00
stac
3fda65c5d3 hwinit: Convert SPI drivers to dynamic init
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2772 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-12 22:19:50 +00:00
stac
841b0d3d6d hwinit: Convert COM and USART to dynamic init
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2771 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-12 22:19:43 +00:00
peabody124
a3ba9c3781 CC-21 Make it possible to enable Spektrum on CC, although it eats up S6 in
order to free a timer.  Mode PIOS_DELAY (not working cleanly) to TIM3 because
Spektrum resets TIM2 count.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2758 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:45 +00:00
peabody124
682b49df44 CC: Increase the SPI clock rate to minimize time spent in that routine
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2751 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-08 16:34:21 +00:00
peabody124
56d4d54a97 CC: Increase the memory for the modules after removing PriTxTask from CC and
also increase the telem queue to decrease event errors (can be reverted later if
we need the memory back)

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2730 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-05 10:52:59 +00:00
peabody124
e5b26bc67d More memory tweaks to keep CC flowing
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2709 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-03 02:42:49 +00:00
peabody124
cf2e9fb349 Memory: Also allow overriding Stabilization stack size
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2690 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-02 08:57:34 +00:00
peabody124
877bcca880 Delete hardcoded min and max servo PWM times, they weren't used. Use the
configuration settings.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2676 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 21:04:58 +00:00
peabody124
f93ed5f01f CC Module memory: Make it clean for CC to override the stack sizes of modules
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2668 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:35 +00:00
peabody124
b1e4b65f3d CC-1 Bigger oversampling window for CC sensor data
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2667 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:31 +00:00
peabody124
3f088bed8d CC-9 1. Improve the timings of the attitude estimation
2. Disable FirmareIAP module in CC (somehow causes lockups when also using vTaskDelayUntil in Attitude WTF)
3. Make the SPI bus run a little faster so we can handle the 3200 Hz from accel
while running the filter at 333 Hz

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2664 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:19 +00:00
peabody124
97acaa2402 CC-15 Gets settings saved to flash chip on CC using crude sector based storage.
Sector based on Object ID so could overlap :-(.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2662 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:12 +00:00
peabody124
e27c9c0b7a CC-6 Rename Flash function to not be all upper case consistent with other PIOS
functions

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2660 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:18:04 +00:00
peabody124
063c58e7c0 CC-12 Enable Watchdog on CC
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2653 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-02-01 02:17:32 +00:00
sambas
195b63b6bb OP-22 PIOS/Spektrum: Made spektrum input driver, NOT YET TESTED!!!, also preliminary support for CC, sync/supv timer not yet fixed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2602 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-28 09:25:30 +00:00
peabody124
92dd78db51 OP-256 PIOS/PWM: Disable from the pios_board.c file when not using PWM
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2589 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 23:17:39 +00:00
peabody124
d4b4a6ca37 CC-3 Modules/CCAttitude: Add oversamplign to the accel data
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2576 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:52:08 +00:00
peabody124
21e3441f00 CC-3 Set gyro to downsample 10x to 250 Hz
Conflicts:

	flight/CopterControl/System/inc/FreeRTOSConfig.h

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2575 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:52:05 +00:00
peabody124
2881370eab OP-291 PIOS/Servo: Refer to channels by TIM_Channel_x to be consistent with PWM
system

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2571 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:54 +00:00
peabody124
99fcd089d4 OP-291 PIOS/Servo: Make the remapping of timers a part of the driver structure
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2569 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:48 +00:00
peabody124
da96ce15b9 OP-256 PIOS/PWM: Converting PWM input to use standard driver structure.
Beginning of unifying the input types into PIOS_RECEIVER.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2568 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:45 +00:00
peabody124
99f2f3c68b OP-291 CC Servo configuration: Gets S5 and S6 working
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2566 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-24 07:51:38 +00:00
peabody124
2d9f7f32d1 OP-291 PiOS/Servo: Converting output to use driver system
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2499 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-21 03:40:21 +00:00
peabody124
18deba48c1 CC-6 PIOS/ADXL345: Helper functions for the ADXL345 chip. Need to add
semaphores for sharing the bus between the flash chip and this though.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2473 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 08:45:37 +00:00
peabody124
211585c7d7 CC-1 Modules/CCAttitude: Initial reads from accelerometer
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2472 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-17 08:45:34 +00:00
peabody124
0259b6d1f1 OP-269 PIOS/ADC: First part of conversion to driver structures
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2444 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 02:45:39 +00:00
peabody124
ab75e8117f OP-265 CC: Getting GPIO lines working
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2443 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 02:45:34 +00:00
peabody124
81b0c3fdb6 OP-269 PiOS/ADC: Moved AHRS ADC code to PiOS and made all the projects use it
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2440 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-16 02:45:22 +00:00
peabody124
94ff276522 OP-265 CC: Tweaking objects included and the memory requirements
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2426 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:49 +00:00
peabody124
8a32d88b10 OP-265 CC: More work to get it running
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2425 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:47 +00:00
peabody124
de51286524 OP-266: Rename openpilot.c to coptercontrol.c for CC
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2424 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:44 +00:00
peabody124
c59a1ff018 OP-265 OP-266: FreeRTOS configuration per project because of available heap
size (may eventually need to be per revision if we get bigger ram).  Typo in a
the ifdefs to get allow disabling SDCARD

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2423 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:42 +00:00
peabody124
ea851803af OP-266 CopterControl: Continue trying to strip out as much as possible to get
it to fit

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2422 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:39 +00:00
peabody124
2c335edd7f OP-266 CopterControl: For now no USB support for code size
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2419 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:32 +00:00
peabody124
79caad654b CopterControl: Don't need altitude sensor support
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2418 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:30 +00:00
peabody124
9cf3ee9fb3 OP-267 Flight/UAVObjectManager: Make all references to DFS function depend on
PIOS_USD_SDCARD.  However, this needs to be cleaned up and abstracted out of
the UAVObjectManager who shouldn't care about the storage layer.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2417 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:27 +00:00
peabody124
940792db5c OP-265 CopterControl: Fork main OpenPilot directory
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2416 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:24 +00:00
peabody124
fc54159369 OP-265 Flight reorganization of UAVObjects and Modules up a directory
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2415 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-14 01:38:19 +00:00