Commit Graph

102 Commits

Author SHA1 Message Date
kbob e8154aa44a efm32: Add EZR32WG "EZRadio Wonder Gecko" family. 2018-04-27 21:37:03 +00:00
kbob c3889b91df efm32: Add EFM32WG "Wonder Gecko" family. 2018-04-27 21:37:03 +00:00
Maxim Sloyko 2b1ddc8490 sam/4l: monster commit
The original submitter of this squished everything into one series, and
has not returned. The code mostly appears good, and review comments were
followed for the most part.  The project doesn't really maintain any
testing or board farm for sam3/sam4 parts, so we're going to just trust
our users.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>

sam/4l: IRQ Configuration file (irq.json)

sam/4l: Basic Memory Map.

sam/4l: GPIO Defines.

sam/4l: GPIO Functions

Added everything that needed to compile the library: Makefile, Linker
Script and common includes.

sam/4l: SCIF function to start OSC.

sam/4l: GPIO Enable/Disable and Multiplexing configuration functions.

sam/4l: PLL Clock configuration.

sam/4l: Peripheral clock configuration and basic USART support.

sam: USART Character length configuration.

sam/4l: Generic Clock configuration functions.

sam/4l: Analog to Digital Converter Interface (ADCIFE) basic support.
2018-04-14 18:40:54 +00:00
Julian Friedrich 74dd24a062 make: allow building target subsets
Usage:  make TARGETS="stm32/l1" or even make TARGETS="stm32/l1 stm32/f7"
2018-04-14 18:40:54 +00:00
Sebastian Holzapfel a86948ec6e efm32hg: add basic makefile, interrupts, device information 2018-03-02 22:42:04 +00:00
Karl Palsson 4ba3a27f80 mk: cleanup genlinktests
Even if they don't work, at least make them clean up afterthemselves
2018-02-05 21:00:43 +00:00
Karl Palsson bf882caf4d make: avoid shell find for windows compatibility
Instead of expecting a posix-ish "find" in the shell, simply leverage
our knowledge of our source structure to make a single list using make's
builtin wildcard() functionality.

Fixes https://github.com/libopencm3/libopencm3/issues/828
2017-10-18 20:08:51 +00:00
Karl Palsson 31eac1b787 makefile: make it easier to disable targets.
Sometimes you're working on a subset of targets, and want to do full
clean/builds, but don't need to clean and rebuild families you're not
working with.  This is a pure syntactic change that makes it easier to
simply comment out lines for targets, instead of having to mangle line
continuations.
2016-12-01 15:56:51 +00:00
Karl Palsson 53de290fda atmel samd: Basic framework.
Thoughts: should this be a "sam0" family rather than samd?  (Much like Atmel's
own software package lumps all the cortex-m0+ devices in one family)

This was enough to get a basic blinky working at least.
2016-08-18 22:08:58 +00:00
Kuldeep Singh Dhaka 77354cb371 Inital support for EFM32LG 2015-12-13 19:56:19 +01:00
Karl Palsson 7c1cd2e5cd Drop "install" target and documentation.
This has hurt many many many people over it's lifetime, by confusing their
multilib toolchains.  Simply drop it outright.  People who _really_ know what
they're doing are still perfectly entitled to "install" portions of this
project in suitable locations for their own use.
2015-12-06 22:17:30 +00:00
Karl Palsson 507c184456 stm32l4: initial memorymap and vector support
Values from RM0351rev1, with the correction of the duplicate TIM1_CC entry.

Only stub support so far, but this opens up the beginning of build testing.
2015-11-10 23:47:57 +00:00
Frantisek Burian 3ef2c38120 [stm32f7] Add initial support of the family, GPIO support.
Most changes are noise from doxygen.
Readme udpated to explain newer FP_FLAGS for m7
stm32f7 library is skipped if the toolchain doesn't support it yet.
2015-10-15 10:34:28 +00:00
Frantisek Burian f9152eb00a [stm32l0] Initial support for STM32L0 architecture, Add GPIO peripheral 2014-10-15 19:31:41 +02:00
Stefan Agner 07b7d3e805 vf6xx: initial add of Vybrid VF6xx support
Freescale Vybrid is a familiy of ARM SoC, wheras the VF6xx models
have two cores in one SoC, a Cortex-A5 and a Cortex-M4. This adds
initial support for the Cortex-M4 in the libopencm3 library.

By using two different ram areas (pc_ram and ps_ram) the user can
put the code in a RAM area bounded to the code bus. The data can
be stored in the data area. However, currently the initial values
of for the variables in the data section are stored in the code
section and copied to the ram section by the initialization code
(like it's copied from ROM to RAM on microcontrollers).
2014-10-15 19:31:01 +02:00
Paul Fertser 283d8cc7d2 Makefile: fix build for directories with spaces
When full path of a source directory has spaces in it, that makes
shell and Make split the path, so special treatment is
necessary. Additionally, @F doesn't honour the escaping, so has to be
avoided.

Reported-by: Roman Faizullin <roman@faizullin.info>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2014-08-12 12:01:16 +00:00
Karl Palsson 5a0c305aad Clarify toolchains and install steps
Including removing the extremely unhelpful DETECT_TOOLCHAIN option.
2014-04-04 20:12:28 +00:00
Felix Held 641fbffe9a [sam3a] add irq table and memory map 2014-02-24 02:32:38 +01:00
Felix Held b5d937a00c add memory map and irq table for sam3s and sam3u devices 2014-02-06 23:06:55 +01:00
Ken Sarkies 3c6e9fd56d Fix a number of top level doxygen issues.
So that the navigation pane works correctly in browsers.
Some additional doc fixes put in where found (but many more still to go).
Added some dummy .c and .h files to bring the associated docs into line.
makefile changed to allow 'make html' as well as 'make doc' (the latter only does html anyway).
2014-01-15 22:19:52 +01:00
Frantisek Burian eb924abc10 Add dependency of stylecheck result file to its source
In previous version, if teh file has been changed, stylecheck file was not generated.
2014-01-11 11:28:15 +01:00
BuFran 8d94bdc11c [GENLINK] Make tests in paralell
usage:

make genlinktests -j

speedup: 4 times on 8-core system
2014-01-02 21:50:02 +01:00
BuFran 89236f0339 [GENLINK] Add Test suite + simple test 2014-01-02 21:50:01 +01:00
Karl Palsson 5c14780403 [build] Remove PyYAML dependency
This converts all the YAML files to JSON files, as json parsing is built
into python instead of being a separate library requiring installation.

YAML is a superset of JSON, but putting comments in is not quite as obvious
as it is in yaml.

The following glue was used to convert yaml to json:
python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)' < $1 > $2

Clearly I haven't tested this on every single platform, and this
doesn't address the large blobs of yaml in the lpc4300 scripts directory,
only the cortex NVIC generation process.

I've tested a few IRQ driven example apps, and I've checked the generated
output of some known cases like the LM3s that has explicit gaps, and they are
all generated correctly.
2014-01-02 20:55:15 +01:00
BuFran 18c4d299c1 [STM32F0] Add preliminary support for the family 2013-08-22 17:18:35 -07:00
BuFran b8e8cb2f0d [BUILD] Paralelize stylecheck
Each thread runs its own stylecheck script, outputing to {FILENAME}.stylecheck file. If that file is empty, it is deleted. Otherwise it is printed to the output and stays in the sources directory to indicate something in that file is not correct.
The file mangling and cat-ing is needed because of multithreaded nature of paralell make. (We like single file to be an block of text on the output).

New PHONY added that make styleclean clears all .stylecheck files.

New functionality added to check only single file (specifyilng the file with stylecheck extension) ie

make lib/usb/usb.c.stylecheck

BUG: if someone edit that file, .stylecheck file is not regenerated - missing dependency on the %.stylecheck rule. FIX: make styleclean stylecheck rebuild all style errors

Performance:

make stylecheck     1:43 -> 1:54 (slightly slower due to file creation)
make stylecheck -j8 1:43 -> 0:34 (Rapidly faster)

note the -j option must be specified with number, OS Windows cannot handle one thread per file.
2013-07-07 16:22:21 -07:00
BuFran 7002bca027 [BUILD] move the definition line of yaml files search outside the targets section 2013-07-07 16:22:21 -07:00
BuFran ea28feb537 [BUILD] Paralelize BUILD HEADERS
make    1:06:47 -> 1:06:90
make -j   24:52 ->   20:18

(measured on Core2 quad, 2.84GHz, 4GB ram, windows x86)
2013-07-07 16:22:21 -07:00
BuFran 85aa16f8c9 [BUILD] Paralelize CLEAN HEADERS
make clean    34.64s -> 35.35s
make clean -j 14.00s -> 14.16s

(measured on Core2 quad, 2.84GHz, 4GB ram, windows x86)

Added overhead is logging the operation with every yamlfile to output.
2013-07-07 16:22:21 -07:00
BuFran 0ff37d0dde [BUILD] Paralelize CLEAN
make clean    34.85s -> 34.64s
make clean -j 34.78s -> 14.00s

(measured on Core2 quad, 2.84GHz, 4GB ram, windows x86)
2013-07-07 16:22:21 -07:00
Federico Ruiz Ugalde 3af5833b83 Initial support for stm32f3. Changes in makefiles, gpio.
- Makefiles now include building f3 src directory.
- Gpio support added. gpio_common_f24 changed to support also f3.
- f3 still not compiling, but f2 compile not broken (probably also f4).
2013-07-07 16:01:45 -07:00
Piotr Esden-Tempski 8769073266 [install] Be more specific about what scripts we want to install.
We now have a subdirectory containing register definitions in scripts,
this confuses the install command so we have to be more specific about
which scripts to install. We actually only want to install the black
magic scripts from there as they are useful for locm3 users.
2013-07-07 14:11:58 -07:00
Ben Gamari 2b027cf2de Makefile: Install everything in scripts/ 2013-07-07 13:52:14 -07:00
Ben Gamari 17fd708f66 Move lpc43xx and lpc43xx_m0 code to lpc43xx/ hierarchy
Previously there were nasty dependency issues causing M4 objects to be
linked into the M0 library
2013-07-07 13:52:13 -07:00
TitanMKD 0dec187fee lpc43xx basic IPC for multicore M4 & M0 (with basic examples for hackrf jellybean). 2013-07-07 13:52:12 -07:00
Michael Ossmann 0f180ceffd do not try to install scripts/data 2013-07-07 13:52:12 -07:00
Piotr Esden-Tempski 7df63fcae0 First coarse run to fix coding style in locm3.
Added --terse and --mailback options to the make stylecheck target. It
also does continue even if it enounters a possible error.

We decided on two exceptions from the linux kernel coding standard:
- Empty wait while loops may end with ; on the same line.
- All blocks after while, if, for have to be in brackets even if they
  only contain one statement. Otherwise it is easy to introduce an
  error.

Checkpatch needs to be adapted to reflect those changes.
2013-06-12 18:22:56 -07:00
Piotr Esden-Tempski 48e0f3326b Added linux kernel checkpatch.pl script and stylecheck target.
To make it easier on everyone to keep a uniform coding style throughout
the project we will be using this target to verify our code for
complience.

Currently a lot of files in the project don't fully follow the coding
style. We need to reach that spot over time though. :)
2013-06-11 18:10:29 -07:00
Karl Palsson bad5580492 [make] Use less shell variables
Use fixed variables for things that can't change, instead of variables
like SRCLIBDIR that was causing a shell call for every single use.

Use less functions in general and less shell expansions.

Use builtin functions like $(realpath blah) instead of $(shell
pwd)/blah  In particular, this was important for me trying to build on
windows with git-shell.  This should help a lot on smaller build
machines, but doesn't make a huge difference on my own.

Remove redundant clean print messages. These also cause more needless
shell expansions.
2013-06-02 18:11:49 -07:00
Gareth McMullin ce3e3dc39b Split sam3x/sam3n support. 2013-06-02 18:01:38 -07:00
Gareth McMullin f0bace7838 sam3x support. 2013-05-10 14:01:16 -07:00
Piotr Esden-Tempski 3e2be1d4a4 Removed examples, they are moved into libopencm3-examples repository. 2013-04-19 19:33:32 -07:00
Alexandru Gagniuc 326c945b55 lm4f: Add lm4f support files copied from lm3s
Create lm4f code infrastructure from the lm3s infrastructure.

As far as the interrupt table is concerned, don't create an irq.yaml. Just
include the LM3S nvic.h. The LM3S vector table seems to be compatible with the
LM4F

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2012-12-31 01:35:25 -06:00
Ken Sarkies 35c0863a75 Documentation updates 2012-11-12 21:44:52 +10:30
Karl Palsson 8318384cf1 More progress towards L1 support.
Believe gpio is complete, but untested without finishing at least the
RCC defines.

RCC defines are a work in progress
2012-11-07 21:50:27 +00:00
Karl Palsson f1f1aa84f3 Use make flags to help control where the library is installed
Where the library is installed has quite an affect on what -L and -I
flags are used.  If you install into the toolchain, you don't want
to use them at all, but if you install out of tree (/opt/mycm3 for
example) you need to specify the -L and -I flags.

Update the documentation and the example makefiles to support this
2012-11-07 21:50:27 +00:00
Piotr Esden-Tempski 76c7357c00 Fixed header clean target find call for Darwin BSD find too. 2012-10-31 13:45:58 -07:00
Piotr Esden-Tempski 8091f10576 Merge pull request #56 Allow make to build libs/examples in parallel.
Merge remote-tracking branch 'karlp/pr_parallel_makes'
2012-10-31 13:43:44 -07:00
Piotr Esden-Tempski fd3ee124f8 Fixed find call for Darwin BSD find. 2012-10-31 13:29:38 -07:00
Karl Palsson 90cdddd96b Allow make to build libs/examples in parallel.
You cannot issue make inside a for loop if you want to let it run in
parallel.  Performance increases seen:

10:03 < zyp> I tested make all -j8 without your change, it takes 8.7s
10:03 < zyp> so on my cpu, your change gives >2x speedup

My own cpu gives more modest speed increases, of only about 20%.
2012-10-30 10:03:12 +00:00