Hi,

For a prof of concept I've added an initial repository file [1] and some
module files [2] for the xpcc drivers. Now you can do all the things you
always wanted [3] by using lbuild:

Display all the available targets:

$ ../library-builder/scripts/lbuild-discover -r"source/repo.lb"
--discover=repository:options
modm-platform:target = [at90can128, ... long list of all targets ...,
stm32f779ni]

Display all available modules for a specific target:

$ ../library-builder/scripts/lbuild-discover -r"source/repo.lb"
--discover=modules -D":target=stm32f303k6"
modm-platform:adc
modm-platform:can
modm-platform:clock
modm-platform:core
modm-platform:dma
modm-platform:gpio
modm-platform:i2c
modm-platform:id
modm-platform:spi
modm-platform:spi_uart
modm-platform:timer
modm-platform:uart

Get the available options for those modules together with their current
value and possible values:

$ ../library-builder/scripts/lbuild-discover -r"source/repo.lb"
--discover=module:options -D":target=stm32f303k6"
modm-platform:core:allocator = newlib  [block_allocator, newlib, tlsf]
modm-platform:core:enable_gpio = True  [True, False]
modm-platform:core:main_stack_size = 3040  [512 ... 8192]
modm-platform:core:vector_table_in_ram = False  [True, False]

To check it out yourself you need the following repositories cloned in the
same folder:
https://github.com/dergraaf/modm-platform
https://github.com/dergraaf/library-builder
https://github.com/dergraaf/xpcc in branch feature/lbuild

Then you can run:

$ cd modm-platform
$ make discover

Building doesn't work yet because the mapping between the device file
content and substitutions for the jinja2 templates is not exactly the same
as before. Therefore the next step is to clean up that mapping and remove
the special cases which are at the moment hard-coded in the xpcc python
build tools.

E.g. '<core>cortex-m4f</core>' gets mapped to
'properties["core"][0]["value"]' which is quite cumbersome [4]. The correct
thing would be something like 'properties["core"]'. But that leads to
problems if there would be a second 'core' tag. Like there is for the
'define' tags.

Any idea on how to proceed with that?

Cheers,
Fabian

Btw. should I create a pull request for the discussions about the code?
Unfortunately the interesting parts are spread over the three repository,
therefore it would only work for the driver files.

[1] https://github.com/dergraaf/modm-platform/blob/master/source/repo.lb
[2]
https://github.com/dergraaf/xpcc/commit/309655a5e1e960f6af9ac43dfc50bbd79ab95c05
[3] DISCLAIMER: May not be all the things you always wanted.
[4]
https://github.com/dergraaf/xpcc/commit/309655a5e1e960f6af9ac43dfc50bbd79ab95c05#diff-261cd30516af3e8e5dd38080bab6ccbbR41
_______________________________________________
xpcc-dev mailing list
xpcc-dev@lists.rwth-aachen.de
http://mailman.rwth-aachen.de/mailman/listinfo/xpcc-dev

Reply via email to