78 Commits

Author SHA1 Message Date
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
chrysn
a1f4c29872 Merge branch 'efm32'
this adds support for energy micro's efm32 tiny gecko, gecko, leopard gecko and
giant gecko series.

also, the experimental libopencmsis is included in this branch, as it is
required for full operation of the free energymicro standard library
2012-10-29 14:44:37 +01:00
chrysn
f594af86c8 fixes for generated header cleanup
* make target phony
* don't complain about missing files
2012-10-23 01:59:41 +02:00
chrysn
efce73f815 make make clean work again
the irq2nvic_h generates files in a way make doesn't understand, so it
now also provides an option to clean up again
2012-10-23 01:38:27 +02:00
chrysn
2ad04777bf only generate irq headers on demand
as header file generation is not directly controlled by make (which, by
the way, makes the generatedheaders target phony), the script has to
take care of not needlessly generating files itself lest to have make
rebuild everything everytime
2012-10-23 01:31:30 +02:00
chrysn
cece71ba2f install *all* efm32 linker scripts
this will install the per-family linker scripts twice (doesn't hurt,
gets overwritten), but more importantly intalls the per-chip scripts
too.
2012-10-19 16:13:34 +02:00
chrysn
e11edaff11 build all efm32 families 2012-10-19 14:53:06 +02:00
chrysn
62345af9ee install opencmsis 2012-10-19 13:54:42 +02:00
chrysn
d526dd3268 rename tinygecko->efm32tg everywhere 2012-10-19 00:59:49 +02:00
chrysn
47c69695ce Merge branch 'generalizations' into efm32
Conflicts:
	Makefile
2012-10-18 18:43:44 +02:00
chrysn
c69916ffb6 integrate irq2nvic_h script in buildprocess 2012-10-18 17:58:12 +02:00
Felix Ruess
b7ebe6e705 fix clean target for example makefiles if the compiler is not in PATH 2012-10-16 14:09:42 -07:00
Ken Sarkies
ff83a1ae1c Setup to document entire project using doxygen.
New doc directory with config files and generated html, LaTeX/pdf.
Makefile provided for autogeneration and explanatory README.

The project structure is hostile to doxygen, which can't cope with functions
of the same name. Doxygen is run for each family separately, and separately
for LaTeX generation. Customized layout files sort of "integrate" HTML, and
separate pdfs are generated for each family. Not ideal but seems the best
solution until doxygen changes, if at all.
2012-09-15 12:51:46 +09:30
chrysn
0508f30d2d Merge branch 'master' into efm32
Conflicts:
	Doxyfile
	Makefile
2012-09-13 22:32:28 +02:00
Piotr Esden-Tempski
3441bba1c4 Changed local build target for library and linker files.
- The library files are now being built into the lib subdirectory of the
  source.
- The linker files for each library are being copied into the lib source
  subdirectory.

Motivation: The relative locations of files in the source directory after make
are now the same as after make install now. This makes it easier to
reuse examples with their makefiles outside of the libopencm3
sourcecode directory.
2012-08-13 15:19:57 -07:00
Michael Ossmann
14026fc31f make install now installs lpc43xx and other non-stm32 stuff 2012-06-06 23:48:30 -06:00
Michael Ossmann
50999194d2 added lpc43xx to target list 2012-05-22 14:23:57 -06:00
chrysn
09fea0bc1b Merge branch 'master' into efm32
Conflicts:
	Makefile
2012-04-19 17:28:55 +02:00
Taylor Vesely
f7bf15343d Produced build system for Blueboard-LPC1768-H miniblink. 2012-03-27 08:55:19 -06:00
chrysn
563586c072 Merge branch 'master' into efm32 2012-03-02 23:59:52 +01:00
Piotr Esden-Tempski
43561de329 License change of the library to LGPL, version 3 or later.
Agreed to by all the significant contributors to the library.
2012-03-02 14:44:49 -08:00
chrysn
2275ed7b0c overhauled documentation
includes minor refactoring in example code and modification of how the
generic and the tinygecko specific vector.h go together (bringing it in
line with stm32/f1's memorymap.h)
2012-02-26 03:42:25 +01:00
Uwe Hermann
6c278b19b4 Makefile: Add 'doxy' target for doxygen docs.
A top-level 'make clean' will remove the whole doxygen/ output directory.
2011-11-11 21:27:29 +01:00
Uwe Hermann
42e531c7c4 Makefile: Fix 'install' target.
Thanks to CheBuzz on IRC for pointing this out.
2011-11-03 20:45:04 +01:00
Stephen Caudle
5a89d44591 Add initial support for STM32F4 2011-10-31 00:41:19 -04:00