[riot-devel] SPI automatic interface configuration inside of cpu.c/periph_init(();
hauke.petersen at fu-berlin.de
Tue May 2 09:43:34 CEST 2017
the global/automatic SPI initialization might not be ideal, but the
benefits are greater than the drawbacks. One of the major design issues
this is solving is the handling of shared peripherals (as in SPI/I2C):
when doing the initialization somewhere in the driver code, different
driver will re-initialize the same peripheral, potentially with
For your specific problem: if you only use one specific SPI and use pins
configured to another SPI dev for other purposes, then the other SPI
should not be configured, so you should use an application specific
`periph_conf.h` file. This should fix your issues.
On 29.04.2017 14:56, Neo wrote:
> Dear RIOT developers,
> I think it is not a good idea to initilialize the SPI interface
> automatically via the periph_init() function because it is not as
> static as mentioned.
> In my application I have 2 SPI interfaces defined in the periph_conf.h
> file - but I wanted only to configure the second one of these interfaces.
> I the older days everything went well, but when I pulled in the new
> sources I was wondering why now the spi_init() function was invoked 3
> times....2 times automatically by the periph_init() function
> (initializing all defined interfaces) and one time by my own
> (initializing only the second interface).....and it took some time to
> find out what was going wrong.
> For my opinion interface initialization should be under control of the
> application which interface is set up.
> Best regards,
> devel mailing list
> devel at riot-os.org
More information about the devel