Refactors i2c_2 to match the structure of i2c_1 better.
Corrects functionality issues.
Allows the common implementation of read_regs and write_regs.
Documents constraints of hardware.
Matches error messages with API.
Jerryscript was never using INCLUDES so never having the 'newlib-nano' or llvm
includes. It prevented working with `llvm`.
Disable unsupported warnings for ESP32 and ESP8266 newlib that show when
using system includes.
* tested newlib version for ESP32 is 2.2.0
* tested newlib version for ESP8266 is 3.0.0
Build into the BINDIR directory instead of the source repository.
This makes 'clean' work as expected without other intervention.
Also it goes in the direction of having the package source repository
board independent.
Remove unknown rules from .PHONY.
Make 'all' be the default target for jerryscript and execute `all` target.
This way no definition order issue could happen in the future.
Do not include Makefile.base as 'DIRS' are not used here.
Also if 'all' target was to be used, there would be two rules creating
`$(BINDIR)/jerryscript.a`.
By default `Makefile.jerryscript` executes `libjerry` as it is the first
target.
The tests overrides the target all to be tested by the CI.
All the instructions how to use it are in README.md
The test is successful if the image boots and displays
information about the image and running slot.
Co-authored-by: Federico Pellegrin <fede@evolware.org>
Currently only tested boards provide the feature riotboot.
Potentially all boards embeding a cortex-m0+/3/4/7 are
able to have riotboot as a feature, but other dependencies
need to be met, e.g. usage of cortexm.ld linker script,
double initialisation of cpu_init(), etc. See doc in
bootloaders/riotboot.
RIOTBOOT_SLOT_LEN is calculated as an hexadecimal value and
handles ROM_LEN defined as kilobytes like '512K'
This enables support for all the cortex-m0+/3/4/7 arch,
so most boards embedding these are potentially supported.
One needs just to ensure that the CPU can be initialised
at least twice.
Co-authored-by: Gaëtan Harter <gaetan.harter@fu-berlin.de>
This new function allows to jump to another execution
environment (VTOR) located at a certain (aligned) address.
It's used to boot firmwares at another location than
`CPU_FLASH_BASE`.
The user needs to ensure that the CPU using this feature
is able to be initialised at least twice while jumping
to the RIOT `reset_handler_default` function, since it
initialises the CPU again (calls cpu_init()).
Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
riotboot is introduced here and makes use of riotboot_hdr,
which indentifies the images encapsulated as slots.
The slot size and offset is configurable, which makes
slots extendable if needed, e.g. 2 or more slots can be
transparently added.
Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
Co-authored-by: Gaëtan Harter <gaetan.harter@fu-berlin.de>