The Echo R1 is a new open-hardware music player design, based
on the STM32H743 microcontroller. Schematics and hardware
documentation for it can be found here:
- https://github.com/amachronic/echoplayer
This is an incomplete port. The bootloader can be loaded using
OpenOCD and it can draw to the LCD using SPI. SDRAM is working
but hasn't been extensively tested.
Change-Id: Ifd2bee15c49868fbc989683d3ca14dce48bf3e18
The bootloaders for version 3 and 4 hardware used separate target
IDs which now overlap with the Nano 3G / Nano 4G ports. It likely
makes sense for all the ErosQ native builds to share the same ID.
Change-Id: I40d166758744e8ba25931e568da11f374b2d7b90
The "fix" produces different asm and I don't have the bandwidth
to determine if it's functionally equivalent.
Change-Id: I822557d1244f8e8a05e7ebfc45da2643152345a4
/* offset = -3db * (ratio - 1) / ratio */
db_curve[2].offset = (int32_t)((long long)(-3 << 16)
* (ratio - 1) / ratio);
Results in a warning: left shift of negative value [-Wshift-negative-value]
To fix this, replace the '-3' with -3UL.
(As that is effectively what is already happening)
Change-Id: I5aa269ff332703d3c2d889fa032d2fdc403ff14f
The warnings triggered by -Wshift-negative-value are in the
upstream code, and presumably "correct"
Change-Id: I1cf20e12208f493c69e0852477d800cd417a67c6
It was actually defined but not actually mapped in.
Also shut up a warning in the peakmeter code when not using a color
display.
Both caught by -Wunused-const-variable
Change-Id: Ie2403c0cd77e6fdf3468fd45115a1e0f228238e8
-Wunterminates-string-initialization will complain if we try to shove
a "string" into a fixed array that is too small. Sometimes this is
intentional; when you are merely using "string" as a standin for
"non-terminated sequence of bytes". In these cases we need to mark
the "string" as "not actually a string" with an attribute. Applies to
GCC >=8, but this warning isn't pulled in by -Wextra until GCC >= 15.
Change-Id: Ib94410a22f4587940b16cf03d539fbadc3373686
This keeps all the old descriptions etc that were there before.
Had to fix up the tools some more, honestly feels better to just
rewrite this crap in perl.
Change-Id: Ic15deae200c143ba5457423e12c81f871c0fef09
To keep the code size small, this hardcodes the D-Cache line
size and set/way information (which is defined by the target
and should be fixed for a given CPU) and assumes there is only
one level of cache.
Change-Id: Ia6d0e6a87b5dbfc6c39bda83b58461ed8767edf6
Cortex-M processors don't have an MMU, but can still have caches
that need software management, so on those platforms we don't want
to include the MMU related functions.
While here, remove an outdated section of a comment referring to
deprecated cache maintenance functions which no longer exist.
Change-Id: I6f0fe694560bdee25ed7c69a846bf46e3e544cb1
This is an internal macro which is only used if has_sct()
is set by the generator, so don't generate it if we don't
need to.
Change-Id: I7ad51ad34ecabd833b84a270b5046e77131dcb41
When registers have lot of 1- and 2-bit fields it's possible
to exceed the 13 argument limit. Usually this only shows up
when programming a configuration register, but it's annoying
to have to split up the write. 20 arguments should be enough
to avoid that.
Change-Id: I6240fae4a51ae14600afcfb8a4e3f1e983cbffa6
Add a relative version of the register/field read/write operations
which takes a base address (which may be a void pointer or integer)
and computes the register address using offsets.
Change-Id: I7c012192e67adcd675a0fc1975ca4b16ed87bcac
Floating instances don't have an address and will only generate
child nodes and registers with offsets. The 'nochild' flag will
disable generating the children for a node but will generate the
node's own address, which can be used to generate base addresses.
Change-Id: Ib1014de94531436d5708db46aa684741e7740ace
Register offsets are defined as the address of the register minus
the address of the parent node. If enabled by the generator, these
will be emitted alongside defines for the node base addresses.
This allows the base address to be stored in a variable, and the
offset can be used to access registers relative to the base.
Change-Id: I15576aeb2945293a259007da7f00a26055f4d0f0
sample_to_chunk last value was ignored in some cases leading to invalid sample value in lookup_table.
Fixes FS#13600
Change-Id: I8f066966e15c384d3185f689b68a2cc2a3abad1d
Instead of 'this phrase missing entirely [...]' followed by the
verbatim phrase copied from English, instead the message now
reads 'the 'PHRASE_ID' is missing entirely [...]. This allows
the warning to be self-contained.
Change-Id: I413c29e0c1f6616e74d875d197b34c4724330d67