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

3778 Commits

Author SHA1 Message Date
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
zedamota
c6350492eb Cleaning and formating 2011-06-19 00:56:35 +01:00
zedamota
a0eca05595 Many changes to the uploader Gadget 2011-06-19 00:50:38 +01:00
Oleg Semyonov
21f988321e Merge branch 'master' into bugfix-ground 2011-06-19 02:18:06 +03:00
Oleg Semyonov
0ba605812e OP-522: fixed throttle calibration if input channel is reversed 2011-06-19 02:15:23 +03:00
Mathieu Rondonneau
506125af14 OP-423: fix problem in GCS when the config files get deleted.
GCS aborts on a table overflow when trying to set the axes with wrong number of channels.
2011-06-18 15:55:11 -07:00
Oleg Semyonov
59da5055cd usart: make USART ports configurable from make command line
For CopterControl the following make options are available:

USE_TELEMETRY=[YES|NO|1|3]    (default is YES, USART1)
USE_GPS=[YES|NO|1|3]          (default is NO, USART3)
USE_SPEKTRUM=[YES|NO|1|3]     (default is NO, USART3)
USE_SBUS=[YES|NO|1]           (default is NO, USART1 only)
2011-06-18 23:54:32 +03:00
Oleg Semyonov
311902f1f2 sbus: implemented S.Bus stream decoding 2011-06-18 23:19:57 +03:00
dankers
eecacc57f6 Update deluxe dials from London Flyer, added deluxe horizontal dial
Note: these are not used by default, commiting to master directly
2011-06-19 02:34:12 +10: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
Mathieu Rondonneau
693c6bc5b0 OP-423: fix bl and bu, also fix compiler problems encountered with make all 2011-06-17 18:54:25 -07: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
Andrew Thoms
6578eba0a0 Op-532 prevented settings being retreived from hardware during an update
to hardware
2011-06-17 01:01:55 -04:00
Andrew Thoms
90f7062940 OP-532 Implementation of Collective pass-through mapping 2011-06-16 22:52:41 -04: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
Andrew Thoms
08822807b3 OP-532 Now saving channels to GUI config data structure 2011-06-16 00:33:07 -04:00
Andrew Thoms
5c5a07b101 OP-532 Updated GUI config data definition, UI, and implemented three
sliders in mixer generation code
2011-06-16 00:09:27 -04:00
Mathieu Rondonneau
e8cdf22427 OP-423 Port to OP: Claim (at run-time) the remaining un-used bytes (between heap and end of RAM) that are for data growth (needed at compile time).
CAREFULL: the heap section need to be the last section in RAM to avoid overwritting data...

also move address into linker (CC and OP)
2011-06-15 18:54:35 -07:00
Stacey Sheldon
8c4c73496b build: add unbrick targets
Added new unbrick_<board> targets for each board.
These targets use the stm32flash utility to install
a bootloader on to the board.  This is a tool of
last resort and should not be used for normal firmware
upgrades.

Usage:
  make unbrick_<board> UNBRICK_TTY=/dev/ttyUSB0
Where:
  <board> is one of coptercontrol, pipxtreme,
          openpilot, ins, ahrs
  UNBRICK_TTY is set to the serial device connected
              to the board.
2011-06-15 21:37:10 -04:00
Stacey Sheldon
81dbd3f4c0 build: add install rule for stm32flash utility
This tool can be used as a last resort for
installing a bootloader to a completely bricked
board that is unresponsive to even the rescue
functionality in the GCS uploader gadget.
2011-06-15 21:37:10 -04:00
Stacey Sheldon
6313a78dc9 build: make lists of boards with fw, bl and bu
Provide unique lists of boards for each type of
build (fw, bl, bu) so we can refer to them in
the help text.
2011-06-15 21:37:09 -04:00
Stacey Sheldon
0801495ce1 build: fix spacing on label for clean targets
Whitespace only, no functional changes.
2011-06-15 21:37:09 -04: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
Mathieu Rondonneau
ab4e15e9aa OP-423 also claim (at run-time) the remaining un-used bytes (between heap and end of RAM) that are for data growth (needed at compile time).
CAREFULL: the heap section need to be the last section in RAM to avoid overwritting data...

Tested with GCC 4.5.2 this gives 1K of free bytes usable in heap right away (including the 200 bytes saved just by using the new gcc).
This does not include any code re-org yet!
2011-06-14 22:13:30 -07:00
Andrew Thoms
22269b658d OP-532 improved UI layout for new controls 2011-06-15 00:39:13 -04:00
Mathieu Rondonneau
3780de8d3e OP-423 port to OP (heap2) the previous changes done in CC (heap1) (see c95b199166)
I managed to test CC with heap2 changes and the init stack claimed back to heap once scheduler starts.

the changes of this commit are OP related (just cleanup on CC side):
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 heap2 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).
2011-06-14 20:10:53 -07:00
James Cotton
144f36dfb7 Merge branch 'bugfix-flight' 2011-06-14 10:02:55 -05:00
James Cotton
d7e08e5686 Merge branch 'heli_improvements' 2011-06-14 09:13:52 -05:00
Andrew Thoms
748d49817f OP-532 Save and Load UI elements to new GUIConfigData UABObject Field 2011-06-14 00:53:42 -04: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
Andrew Thoms
1c1881663f OP-532 Save and recall the new GUI config data to UAVObject 2011-06-14 00:10:28 -04:00
Mathieu Rondonneau
0e6abd4f39 Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint 2011-06-13 18:51:22 -07:00
Andrew Thoms
23f9dc42cc OP-532 Created union of struct to assist in type casting of GUI settings
to UAVObject
2011-06-13 21:40:39 -04:00
Andrew Thoms
31339e0414 OP-532 Modified system settings UAVObject to have GUI config data 2011-06-13 21:39:47 -04:00
Andrew Thoms
651c65ad84 OP-532 Started with GUI configuration save to OP hardware 2011-06-13 20:46:53 -04:00
Mathieu Rondonneau
1f54e32ea9 OP-423 also add changes to OP. (I can not test it because I don't have a board so only compile test) 2011-06-13 17:10:14 -07:00
elafargue
b4d65102b1 Add "..." on import and export buttons 2011-06-13 18:59:53 +02:00
elafargue
54d57f1815 Merge branch 'bugfix-ground' of git.openpilot.org:OpenPilot into bugfix-ground 2011-06-13 18:56:30 +02:00
Pip
7b3241cca9 Fixed GCS export file selection problem - in windows. 2011-06-13 16:12:04 +01:00
elafargue
8807d6bf0f OP-534 Disable arming completely when staring calibration procedure. Tells user to reconfigure arming manually afterwards. 2011-06-13 12:14:40 +02: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
Andrew Thoms
c8939e6e4f Merge branch 'heli_improvements' into OP-532_Heli_GUI_Improvements 2011-06-12 23:21:00 -04:00
Andrew Thoms
2dab73a128 minor updates to UI code for visibility of controls 2011-06-12 00:31:22 -04:00
Andrew Thoms
6ad60a7971 Implemented UI code for new ccpm options checkboxes and sliders 2011-06-12 00:17:32 -04:00
James Cotton
0f5fe54329 FlashFS: Should clear the 0 sector when wiping flash chip, not 10 bytes in. 2011-06-11 22:31:51 -05:00
Andrew Thoms
86f5d63045 Changed names of new ui components 2011-06-11 22:35:19 -04:00
Andrew Thoms
2454596211 Modified names of new controls 2011-06-11 22:21:33 -04:00