58 Commits

Author SHA1 Message Date
Karl Palsson
7ff54cb7f0 devices.data: add more stm32l1 parts
Fixes some eeprom sizes, and adds all the -a and -x suffix parts.
Note that the explicit endings must be listed _before_ the base parts,
otherwise the matcher will find the wild card first.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2019-08-22 10:01:11 +00:00
Sergey Shcherbakov
e75a3614a4 stm32f3: ld: Added stm32f303x6/8
Signed-off-by: Sergey Shcherbakov <shchers@gmail.com>
2019-06-18 23:33:46 +03:00
Guillaume Revaillot
b8d4b03722 stm32g0: add base, irqs, memorymap and current devices. 2019-05-20 23:43:41 +00:00
Karl Palsson
9551da6b6b devices.data: add stm32l15xx E series
Bigger brother parts, such as the l152re nucleo64 board.
2019-01-16 22:25:01 +00:00
Chuck McManis
63e0b6df3a Device Data: Add Specs for STM32F4[67]9 variant
The reference manual is incorrect, the data sheet is correct.
There is 320K of ram (up to address 0x20050000). This has been
tested on the STM32F469I-disco board.
2018-07-13 20:18:44 +00:00
Chuck McManis
564e485989 devices.data: Add STM32F446xC/E data 2018-06-23 22:21:53 +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
George Jiglau
b4f195b488 genlink: Remove old genlink makefiles 2018-04-14 18:40:54 +00:00
George Jiglau
974ca8a652 genlink: Update genlink tests 2018-04-14 18:40:54 +00:00
George Jiglau
396701808d genlink: Rewrite genlink script from awk to python
This removes the dependency on awk and should fix #732
python was already a dependency, for the irq generation
2018-04-14 18:40:54 +00:00
Guillaume Revaillot
f63090d9b6 devices.data: add stm32f071?8 2018-03-28 11:53:10 +02:00
Guillaume Revaillot
613ecc9046 devices.data: add stm32f091?[bc] 2018-03-28 11:53:05 +02:00
Guillaume Revaillot
0c578fe11b devices.data: add stm32f070?[6b] 2018-03-28 11:52:59 +02:00
Guillaume Revaillot
ca35b89c32 devices.data: add stm32f030?c 2018-03-28 11:36:58 +02:00
Karl Palsson
c93c8676e6 ld: devices.data: simply l4 a little
Join some of the paired devices that differ only by encryption periphs
2018-03-24 21:11:23 +00:00
Tom Verbeure
dba2430c89 Add full STM32L4 family memory sizes 2018-03-24 18:06:41 +00:00
Karl Palsson
fcd06c6cae devices.data: add more efm32hg variants
Some of the F32 devices only have 4k RAM
2018-03-02 22:42:04 +00:00
Sebastian Holzapfel
a86948ec6e efm32hg: add basic makefile, interrupts, device information 2018-03-02 22:42:04 +00:00
Christian Tacke
914521de90 Add RAM3 support for L4-Plus to linker generation
This only adds basic support.
Specific settings still need to be added.
2018-02-22 23:51:17 +00:00
Karl Palsson
953bf531ea awk->gawk: Make the gawk dependency explicit
Until https://github.com/libopencm3/libopencm3/issues/732 has been
fixed, it's not enough to just have it in the README that you need GNU
awk.  Explicitly use the "gawk" command name.  This exists on (sane)
systems that have gawk as awk, and for systems that use mawk as default,
the gawk name should also exist.

This should make it significantly easier to diagnost the cause of build
problems.
2017-11-19 20:52:05 +00:00
Karl Palsson
b4c4b4c3f9 devices.data: add stm32f105x8
Reported-by: Karl Hammar <karl@aspodata.se>
2017-06-17 21:58:46 +00:00
Garret Kelly
ce615ad7c8 devices.data: stm32f0: add stm32f042x[46] devices 2017-04-30 19:55:24 -04:00
Karl Palsson
d260f5c539 stm32l476: split sram sections for ld generator
The 128K of SRAM on the l476 devices is 96K of "normal" sram, and 32K of
parity SRAM at a different offset.

Fixes: https://github.com/libopencm3/libopencm3/issues/754
2017-03-30 21:48:07 +00:00
Matthew Lai
4a378a729a devices.data: stm32f7: added all STM32F7 chips (as Feb, 2017) 2017-02-28 16:57:28 +00:00
Karl Palsson
cd9ae5e6d7 eeprom: drop support from linker scripts.
While the NOLOAD variant sometimes worked with some toolchains, the
version in the generator scripts could never work, as neither the
startup code, nor gdb know how to load those sections properly.

Originally added in: eb18cc19cb392a69f8675c42776c644d1003ed89

The original scripts allowed you to place variables in eeprom space for
reading only.  However, the last toolchain that generated working code
with this linker script was the gcc-arm-none-eabi-4_9-2014q4 release.
Subsequent releases treat the directives differently, and can lose track
of where variables are.  One known symptom is constants getting bad
addresses, so for instance, "printf("asdfad")" will end up passing the
wrong address of the string constant into the eventual _write() call.

This commit removes the problematic directives until a more fully
correct system can be found that more properly follows the linker
script rules.
2016-12-19 11:40:39 +00:00
Karl Palsson
571a4cff17 devices.data: stm32l0: add new devices 2016-09-09 21:22:02 +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
Karl Palsson
f20d433e0d devices.data: add lm3s6965 2016-08-18 22:08:58 +00:00
Karl Palsson
374796c1fd devices.data: fix case on stm32f072xb
this is the part on the f072 discovery board.  The devices.data file is
expected to be already lowercased, while the user provided DEVICE= variable is
then lowercased.
2016-08-18 22:07:36 +00:00
Jonas Meyer
06aa6f1b16 devices.data: Add several chips
Added lpc43xx to devices.data

For now all lpc43 chips resolve to their cortex-m4 variant. How m0 should
be handled is to be determined later.

devices.data: add some vf6xx and lm4f support. fix typos

devices.data: added missing lpc13 family group

devices.data: fix lm4f with info from examples

devices.data: add some vf610 info

devices.data: add some entries for examples
2016-08-18 22:07:36 +00:00
Jonas Meyer
c025dc0327 mk/genlink: change devices.data format to remove gcc specific options
As discussed with karlp on irc the devices.data file should not contain
gcc specific command line options.

For that reason the command line options for gcc are now generated from
the variables CPU and FPU by the rules in the mk directory.

This breaks the genlink tests.

genlink: simplified devices.data

devices.data already had the information about the family name.
By using the first field (by the pattern used to match it) as family name information that data doesn't
have to be provided explicitly. The same data is used to generate the
CPPFLAGS, such as -DSTM32F1

The architectures block of the devices.data file was redundant.

genlink-config.mk uses family and subfamily to figure out which libopencm3
variant actually exists.
2016-08-18 22:07:36 +00:00
Karl Palsson
6d4a7d1d0c devices.data: fix f7 and l0 tech details
f7 has -mfpu=fpv5-sp-d16 in the lib makefile, devices.data should have
the same setting.
l0 is a cortex m0+, not a cortex m0, and uses cortex-m0plus in the
library makefile, and should have the same setting in the devices.data
file.
2016-02-05 12:30:24 +00:00
Constantine Verutin
2eade079a9 Fix flash size for stm32f401x(D|E) in devices.data. According to
datasheet(http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00102166.pdf,
page 11) stm32f401xD has 384 Kb of flash and stm32f401xE has 512.
2015-12-02 10:15:09 +00:00
Karl Palsson
d0ac7feb3b stm32l4: Add linker generation support 2015-11-11 00:51:50 +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
Hunz
9217a5f888 ld generator: add STM32F302x8 2015-10-11 18:46:25 +00:00
Hanspeter Portner
15a6103f8e stm32f3: ld: stm32f3x3x[bc] have 32K/40K RAM only.
Correct memory sizes in ld/devices.data for:

* stm32f3[01]3?c from RAM=48K to RAM=40K.
* stm32f303?b from RAM=40K to RAM=32K.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2015-09-07 20:52:34 +00:00
Jeff Epler
ef97de242e stm32: f373: support the 373xc devices
These devices have 32kiB RAM and 256kiB flash and are otherwise
register compatible with the f373x8 and f373xc devices.

Signed-off-by: Jeff Epler <jepler@unpythonic.net>
2015-02-05 22:55:51 -08:00
Frantisek Burian
f9152eb00a [stm32l0] Initial support for STM32L0 architecture, Add GPIO peripheral 2014-10-15 19:31:41 +02:00
Felix Held
26edb8ec42 [sam3s8] add flash size information for linker script generator 2014-02-24 02:32:38 +01:00
Frantisek Burian
10b4010097 [GENLINK] Updated definitions of memory sizes
Updated according versions of datasheets:

STM32F030 DS9773  v1.0
STM32F031 DS10111 v1.0
STM32F050 DS9262  v1.0
STM32F051 DS8668  v4.0 (updated RAM size)
STM32F071 DS10009 v1.0
STM32F072 DS9826  v1.0

F1, F2 and F3 have no changes and no new datasheets.

STM32F401 DS9716  v2.1
STM32F401 DS10086 v1.0
STM32F405 DS8626  v4.0
STM32F415 DS8597  v4.0
STM32F427 DS9405  v3.0
STM32F439 DS9484  v4.0

STM32L151 DS6876  v9.0
STM32L152 DS8576  v6.0
STM32L152 DS8890  v6.0
STM32L162 DS8669  v4.0
STM32L162 DS8928  v5.0
STM32L100 DS9496  v1.0
STM32L100 DS9821  v1.0
2014-02-07 07:46:52 +01:00
Felix Held
1f702cd940 fix base adresses in sam3 devices with multiple sram blocks, add nfc section 2014-02-06 23:01:50 +01:00
Frantisek Burian
b7785100c8 Add support of splitting parameter classes to ARCH, DEFS, LIB
in ARCH, there are all -m flags (will be expanded into ARCH_FLAGS in Makefile)
in DEFS, there are all -D flags (will be expanded into DEFS in Makefile)
in LIB, there are all -l flags (will be expanded into LIBNAME in Makefile)

If no MODE option specified, the generator behaves as in previous version.
2014-01-12 00:21:33 +01:00
BuFran
33f75a529d [LINKER] Fix the -m parameter 2014-01-02 21:50:02 +01:00
BuFran
bebcd88431 [LINKER] Clear ARCH_FLAGS if the DEVICE is specified 2014-01-02 21:50:02 +01:00
BuFran
f015c8209b [LINKER] Add ARCH_FLAGS to linker definition file 2014-01-02 21:50:02 +01:00
BuFran
d15a0e63fe [LINKER] Add single underscore to all definitions, no -D for dashed param.
This makes possibility for the script to append the definitions to CFLAGS
and LDFLAGS, and with the feature of disabling of -D prependation it will
make possible to generate ARCH_FLAGS generic to each specific chip.
2014-01-02 21:50:02 +01:00
BuFran
ea589b9a4e [BUILD] Updated to make from examples directory correctly 2014-01-02 21:50:02 +01:00
BuFran
6a41e5fccb [GENLINK] Moved linker template source to ld directory 2014-01-02 21:50:02 +01:00
BuFran
08e08f5f84 [GENLINK] Edit the documentation to match current version 2014-01-02 21:50:02 +01:00