aboutsummaryrefslogtreecommitdiffstats
path: root/support
Commit message (Collapse)AuthorAgeFilesLines
* stm32f2-f4: fix doxygen evil_manglerbnewbold2015-06-131-1/+2
| | | | | | | Now detects "stm32f2-f4" as a valid series, and rewrites it to "stm32f2_f4" as a namespace. Documentation will need to be refactored to point at this new namespace.
* stm32f4: 32bit-float-friendly GCC flagsbnewbold2015-03-031-1/+2
| | | | | | | | | | | | | | This commit makes 'float' (32-bit) the default for floating point constants in the source code, instead of the defaults 'double' (64-bit). Floating point performance is very sensitive to the float vs. double distinction on 32-bit processors, especially Cortex-M4s with a VFP unit for floats but not doubles. In the future it may be wise to make this change for non-hard-fp chips (aka, all the other STM32s) as well, for behavioral consistancy. The warning flag ensures that the frequently used parts of the code base will be less ambiguous, but doesn't cover series-specific code.
* stm32f4: series-specific linker flagsbnewbold2015-03-033-1/+103
| | | | Also refactors STM32F2-F4 linker files into sub-series directories.
* board support: stm32f401c_discovery -> st_stm32f401cdiscoverybryan newbold2015-03-011-0/+0
|
* stm32f4: add sram_64k_flash_128k linker scriptbryan newbold2015-03-011-0/+5
| | | | This supports, eg, the STM32F401xB chip family.
* stm32f401c_discovery.mk: fix typo and use short MCU name conventionbryan newbold2015-03-011-1/+1
|
* stm32f4: add support for stm32f401CDiscovery boardPerry Hung2015-03-011-0/+7
| | | | Add support for stm32f401CDiscovery board running an STM32F401VGT6
* board support: opencm904 -> robotis_opencm904bnewbold2015-02-281-0/+0
|
* board support: cm900 -> robotis_cm900bnewbold2015-02-281-0/+0
|
* board support: nucleo -> st_nucleo_f103rbbnewbold2015-02-281-0/+0
| | | | Also correct attribution in Wirish board.h
* board support: rename VLDiscovery -> st_stm32vldiscoverybnewbold2015-02-281-0/+0
|
* Adding support for NUCLEO-F103RBGrégoire Passault2015-02-281-0/+10
| | | | Signed-off-by: Grégoire Passault <g.passault@gmail.com>
* Rename various "stm32f2" directories "stm32f2-f4".Marti Bolivar2014-11-242-7/+15
| | | | | | Preparatory patch for adding STM32F4 support. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* support: add loader script for 64k sram/256k flashPerry Hung2014-11-241-0/+5
| | | | | | | Preparation for 32F01CDiscovery board bringup Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com> Signed-off-by: Perry Hung <perry@leaflabs.com>
* doxygen: set STM32_HAVE_DAC=1bnewbold2014-09-011-0/+1
|
* Adding ROBOTIS "make install" and reset hookGregwar2014-04-241-0/+94
| | | | Signed-off-by: Grégoire Passault <g.passault@gmail.com>
* Adding BOOTLOADER option to support Robotis bootloader different ROMGregwar2014-04-235-0/+25
| | | | Signed-off-by: Grégoire Passault <g.passault@gmail.com>
* Adding support for cm900 and opencm904 boards (robotis)Gregwar2014-02-202-0/+20
| | | | Signed-off-by: Grégoire Passault <g.passault@gmail.com>
* build-rules.mk: allow user to override dfu-util path.Marti Bolivar2013-07-191-1/+1
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* build-rules.mk: Add CROSS_COMPILE env var supportDaniel Nyström2013-06-041-9/+11
| | | | | | | | | Since toolchains other then older Code Sourcery (Mentor Graphics) might not use the arm-none-eabi triplet, make it possible to use any triplet by just setting the CROSS_COMPILE environment variable accordingly. Signed-off-by: Daniel Nyström <daniel@nystrom.st>
* Add fix to support Summon/Linaro GCC ARM embedded toolchain.Dmitry Prokhorov2013-01-051-0/+4
| | | | Signed-off-by: Dmitry Prokhorov <dipspb@gmail.com>
* reset.py: Not every Unix is Linux.Marti Bolivar2012-08-221-8/+20
| | | | | | | | Move the sysfs tests for Maple out of unix_get_maple_path() and into a new linux_get_maple_path(). This prevents unnecessary probing for a nonexistent /sys on e.g. OS X. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Improve Maple device detection in reset.py on LinuxDavid Kiliani2012-08-221-4/+12
| | | | | | | | Adds a function to lookup the USB vendor & product id from the udev info in the sysfs tree. This removes invalid choices and reduces user queries for the correct ttyACM device. Signed-off-by: David Kiliani <mail@davidkiliani.de>
* reset.py fixups for OS X 10.8.Marti Bolivar2012-08-201-2/+3
| | | | | | | | As discussed on this forum thread: http://forums.leaflabs.com/topic.php?id=2451 Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32loader.py: replace obsolete exception catch syntax.Marti Bolivar2012-08-101-1/+1
| | | | | | For Python 3 support. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Makefile: Don't assume Cortex M3.Marti Bolivar2012-08-051-1/+11
| | | | | | | | | Instead, derive -march and -mcpu from the target MCU in target-config.mk. Also (on STM32F4) add the necessary floating point flags. The CodeSourcery toolchains don't support these, so we'll need to prepare alternative toolchains when F4 support is official. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* fixup! Add support for ARM's GCC ARM embedded toolchain.Marti Bolivar2012-08-052-0/+7
| | | | | | Oops. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Add support for ARM's GCC ARM embedded toolchain.Marti Bolivar2012-08-052-12/+33
| | | | | | | Based on patches provided by Hanspeter Portner: http://forums.leaflabs.com/topic.php?id=1717#post-11812 Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32loader.py: Cosmetics.Marti Bolivar2012-07-241-23/+22
| | | | | | | Move the actual QUIET setting to above mdebug(); that was confusing. Rename _wait_for_ask to _wait_for_ack. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32loader.py: Updates for F2 and F4.Marti Bolivar2012-07-241-7/+51
| | | | | | | | | | | | | Support the extended erase memory command, which replaced the erase memory command in the bootloader protocol as of version 3.0. This takes a long time, so tweak _wait_for_ask to take an extra timeout for special cases like this. Use this under if __name__ == '__main__' to support F2 and F4. Additionally, produce a human-readable report of the target chip from its chip ID. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32loader.py: Improve error message on failed init.Marti Bolivar2012-07-241-1/+1
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32loader.py: Use new-style classes.Marti Bolivar2012-07-241-1/+1
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32loader.py: Don't use Psyco.Marti Bolivar2012-07-241-8/+0
| | | | | | This script is I/O bound. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32loader.py: Use print function.Marti Bolivar2012-07-241-10/+12
| | | | | | Towards py3k compatibility. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* stm32loader.py: Remove unused code.Marti Bolivar2012-07-241-10/+0
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* reset.py: Remove advisory for 64-bit Linux.Marti Bolivar2012-07-201-2/+0
| | | | | | We test on that platform now, and it does work. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Add win-list-com-ports.py.Marti Bolivar2012-07-131-0/+29
| | | | | | | Utility for listing COM ports available on the system. Taken from Eli Bendersky. Signed-off-by: Marti Bolivar <mbolivar@lozenge.(none)>
* Doxygen hacks and fixups.Marti Bolivar2012-06-281-6/+8
| | | | | | | | - Shut Doxygen up in various places - Fix some genuine docs bugs - Ignore sources we're not responsible for Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* reset.py: Use the real print function (requires Python 2.6+).Marti Bolivar2012-06-281-14/+16
| | | | | | | | | | | | | | | | | | | | | | Use "from __future__ import print_function" so the recent py3k compatibility patches to reset.py preserve the old output in Python 2. This increases our minimum Python version to 2.6, but avoids ugly output Python 2, where print statements with a tuple argument print the tuple with parentheses etc. Python 2.6 came out almost four years ago, and it's widely available: - even on older Linux distros (e.g. Ubuntu 10.04 and Debian Squeeze have 2.6 default at time of writing), - on OS X since 10.6, - and Windows users will probably be installing from python.org anyway, so they've likely got a reasonably recent vintage. Dropping 2.5 support thus doesn't seem likely to cause problems. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* ventosus2012-06-281-12/+12
| | | | | | | Make the reset script work for both python2 and python3 Make the reset script work for both python2 and python3 by putting brackets around print statements and properly encoding the string sent with ser.write Signed-off-by: Hanspeter Portner <agenthp@users.sf.net>
* Fix botched TARGET_LDFLAGS.Marti Bolivar2012-06-261-3/+3
| | | | | | | Works with officially supported CodeSourcery toolchain. May need tweaks for users with a more modern arm-none-eabi-g++. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Merge branch 'wip-family-support'Marti Bolivar2012-06-2651-679/+470
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge the long-lived (too long; future changes like these will need to proceed more incrementally) development branch of libmaple, containing experimental STM32F2 and STM32F1 value line support, into master. This required many changes to the structure of the library. The most important structural reorganizations occurred in: - 954f9e5: moves public headers to include directories - 3efa313: uses "series" instead of "family" - c0d60e3: adds board files to the build system, to make it easier to add new boards - 096d86c: adds build logic for targeting different STM32 series (e.g. STM32F1, STM32F2) This last commit in particular (096d86c) is the basis for the repartitioning of libmaple into portable sections, which work on all supported MCUs, and nonportable sections, which are segregated into separate directories and contain all series-specific code. Moving existing STM32F1-only code into libmaple/stm32f1 and wirish/stm32f1, along with adding equivalents under .../stm32f2 directories, was the principal project of this branch. Important API changes occur in several places. Existing code is still expected to work on STM32F1 targets, but there have been many deprecations. A detailed changelog explaining the situation needs to be prepared. F2 and F1 value line support is not complete; the merge is proceeding prematurely in this respect. We've been getting more libmaple patches from the community lately, and I'm worried that the merge conflicts with the old tree structure will become painful to manage. Conflicts: Makefile Resolved Makefile conflicts manually; this required propagating -Xlinker usage into support/make/target-config.mk. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * Rework linker scripts.Marti Bolivar2012-06-0743-368/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having separate linker scripts for all the boards is a bad idea. Most boards really only need to specify MEMORY and the appropriate REGION_ALIASES() so that support/ld/common.inc can do its work. Not having infrastructure for this leads to duplication -- viz. the Maple Mini linker scripts are identical to the Maple's, and the olimex_stm32_h103 linker directory is just a symlink to Maple's. Clearly, the current structure is wrong. To fix it, instead of having per-board subdirectories of support/ld/, add per-MEMORY subdirectories of (new) support/ld/stm32/mem/. The per-board .mk files under support/mk/board-includes/ now reference these directly, and target-config.mk and the Makefile handle this appropriately. We move some other stuff around in target-config.mk to make this all more convenient, and even allow more overriding of the libmaple defaults on a per-board basis. Custom board hacks will be easier now. Unfortunately, lots of duplication under support/ld/stm32/mem/ is necessary, as the LENGTH attribute in a MEMORY region specification doesn't support arithmetic expressions, and ld doesn't seem to have any way to specify MEMORY at the command line (why?!). If we find a better way than this, we should do it. If a board (e.g. Maple Native) _does_ really need special memory-related configuration, you can always put a per-board subdirectory of support/ld/stm32/mem. We do this here to configure the heap. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * Move OpenOCD stuff into contrib/.Marti Bolivar2012-06-076-351/+0
| | | | | | | | | | | | This has gone unmaintained for long enough. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * Makefile: add list-boards target.Marti Bolivar2012-06-071-1/+1
| | | | | | | | | | | | | | | | | | As the number of boards increases, it's less practical to keep a list of them in the help target output (notice also that some have been forgotten). This target can't get out of date unless we change how the board-includes/ directory works. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * Slightly improve and generify the USB infrastructure.Marti Bolivar2012-06-038-3/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The good news is that <libmaple/usb.h> and <libmaple/usb_cdcacm.h> did turn out generic enough in what they specify to go on unchanged. However, we can't just go on assuming that there's USB just because we're on an F1. Now that there's value line in the tree, we need to be more careful (value line F1s don't have USB peripherals). To that end, make all the F1 board-includes/*.mk files specify what line their MCU is with an MCU_F1_LINE variable. Use that to hack libmaple/usb/rules.mk so we only try to build the USB module under appropriate circumstances. While we're at it, add a vector_symbols.inc for value line MCUs under support/ld/. We need this to get the target-config.mk modifications implied by the addition of MCU_F1_LINE. We'll fix up some other performance-line-isms under libmaple/stm32f1 in a separate commit. Also in libmaple/usb/: - Move everything into a new stm32f1 directory. Due to aforementioned rules.mk hacks, there is no immediate need for an stm32f2 directory (USB support doesn't exist there). - Update the README for style and content. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * Doxyfile: Add to PREDEFINED to cover libmaple_types.h.Marti Bolivar2012-05-311-0/+4
| | | | | | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * Doxygen: add the Evil Mangler.Marti Bolivar2012-05-102-1/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Whenever Doxygen is running on a series header, make it run an awk script, the Evil Mangler, that pretends the file is enclosed in an appropriate namespace declaration for the series target. Doxygen chokes if two structs have the same name. This is a problem for the series headers, which commonly have data structures with the same name. However, if those structs are in different namespaces, Doxygen has no problems. We obviously can't use namespaces in C headers, so use FILTER_PATTERNS to trick Doxygen into thinking they're there. Ugly, but I can't think of a better way to handle this. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * Doxyfile: Disable TYPEDEF_HIDES_STRUCT to work around Breathe issues.Marti Bolivar2012-05-101-1/+1
| | | | | | | | | | | | | | This works around a problem we're having getting the XML for the series headers into a form that we can work with in leaflabs-docs. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
| * Change __DOXYGEN_PREDEFINED_HACK to __DOXYGEN__.Marti Bolivar2012-05-091-1/+1
| | | | | | | | | | | | avr-gcc does it this way. Seems ok to me. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>