It will _vastly_ speed up repeated voice builds.
The voice pool directory will not be erased by a 'make clean'
Change-Id: Ice58d5c5355abfa5a385dfca749f8063e2ee8622
This problem only happened with GCC7 (and older?) simulator builds, and
was introduced by an incorrect test that always stripped our default
optimization (-Os) in simulator builds.
The fix is to correct the test to only strip -Os if the user explicitly
enables a debug build.
Also, use -Og instead of (implicit) -O0, as per GCC recommendations.
Change-Id: I61091b3cdf5323504961c0bb2d80aa65049eb8fb
* Only codecs and plugins are enabled
* Only native builds (so far)
* Only tested on xDuoo X3 (MIPS, monochrome)
* opus & speex generate some warnings
* Significant compile time impact
Change-Id: I519b0d179631a54b2103cd67225bd5ec6ad3bd2f
In verbose mode it will log valid the strings found, otherwise it will
only complain when we encounter a missing string.
Unfortunately a missing string is not inherently a problem, due to
conditional expressions. So all we can do is complain in checkwps
or if wps debugging is turned on.
Meanwhile, this is the first step in actually enumerating the translated
strings used by themes.
Change-Id: Ia93b333085e825d5b085c4d372ad8e13aa3e3ba1
Annoyingly, this makes all of the '.S' files we compile get treated as
divided syntax, so we need to make the syntax in them explicit.
Change-Id: I56a3916b7b24c84a1214a5d6bc4ed4d651f002cf
https://github.com/rhasspy/piper
High quality, offline, neural-network-based, with good language coverage
Note that you have to manually download the piper voice models, and set
PIPER_MODEL_DIR appropriately. The configure script will let you choose
from the available models and remember your choices.
Change-Id: I8eba9fcf78b51b01b89491539aac3e423cc42f16
This makes it far more useful, as before it insisted on scanning from
the root directory and putting the generated db files in /.rockbox
Change-Id: I0d0e3c6c6c7ee1fc5473185482fbfb9a2a2be29f
eg, our current toolchian generates this:
GNU ld (GNU Binutils) 2.26.1
But the system toolchain on the buildserver generates this:
GNU ld version 2.37-37.fc36
Change-Id: I0166f12d660654c1456289954fb256db98213618
NO_CROSSREFS_TO() was first introduced in binutils 2.27.
It is used to have the linker report errors when symbols
from a list of sections refer to a specified section,
which is useful for verifying that normal code does not
refer to INIT_ATTR code.
Note this doesn't actually start using NO_CROSSREFS_TO()
for builds -- that will have to wait until the toolchain
upgrade when we'll have a new enough binutils -- it just
detects support for the feature so it can be conditionally
enabled in linker scripts.
Change-Id: If1553eaa671fcbbdfe6af357a6331931e7c4f997
This turns on -fwrapv and -fwrapv-pointers.
As per GCC docs:
"This option instructs the compiler to assume that signed arithmetic
overflow of addition, subtraction and multiplication wraps around
using twos-complement representation. This flag enables some
optimizations and disables others."
All of our targets fall under this category.
For some time now we've been using -Wall which implies
-Wstrict-overflow=2, which only warns when the compiler actually
implements a possibly questionable optimization, so I'd expect this to
not affect our code size at all.
Change-Id: I8e1c10183e390c6d0897e81f84a5df4590b02d84
By passing --with-ubsan to tools/configure, you can now build the
simulator with UBSan to catch undefined behavior at runtime.
Change-Id: I054cd46ca59587dd544efbd7bdf6d27a040a4891
All three X1000 native targets turned out to have a very
similar boot configuration and used a nearly identical
makefile. Eliminate this duplication by moving the logic
into the main makefile.
Change-Id: I13044b9675c0abd605b8accdb2fee4f54549b020
Compiling the plugins takes quite a long time and is unnecessary
if you're only working on the core code. Having an option is nicer
than having to edit the configure script by hand.
Change-Id: I401867355d897ce3fd899d9daf25ea9afcc380f0
It has only a couple GB of onboard flash storage with no storage
driver in Rockbox. It hasn't seen any meaningful development since
its initial commit, it's not on the build farm, and the bootloader
build is broken by other refactoring.
Change-Id: Idd9e3c46fac9b96f416ce444182f97a50770e747
What works:
- LCD: 16-bit RGB565
- all buttons, including scrollwheel
- SD Card
- Battery level and charging/not charging status
- USB
- audio
- sample rate switching
- HP / LO detect, with "safe" fixed LO volume -
LO volume will only be put to user-defined max volume
if headphones are not present.
- rtc
- Plugins build, tried a couple and they seem OK
- Bootloader, installable to nand via usbboot
What doesn't work:
- Dual Boot
- power on/off has intermittent, low volume audio click
(sometimes it's completely silent, sometimes there's
a click)
- Audio uses 16-bit volume scaling, so clicking/popping
is pretty bad at lower volumes - need 32 bit volume
scaling, 24 bit I2S data
- USB HID keys not yet defined
- no jztool support
Unknowns:
- Stereo Switch pins: Direction select, AC_DC
(probably not even hooked up)
- What is the actual purpose of the Stereo Swtich?
- How does the bluetooth module connect?
"Someday" stuff:
- get LCD working at higher bit depth
- Bluetooth
Change-Id: I70dda8fc092c6e3f4352f2245e4164193f803c33
- Audio playback works
- Touchscreen and buttons work
- Bootloader works and is capable of dual boot
- Plugins are working
- Cabbiev2 theme has been ported
- Stable for general usage
Thanks to Marc Aarts for porting Cabbiev2 and plugin bitmaps.
There's a few minor known issues:
- Bootloader must be installed manually using 'usbboot' as there is
no support in jztool yet.
- Keymaps may be lacking, need further testing and feedback.
- Some plugins may not be fully adapted to the screen size and could
benefit from further tweaking.
- LCD shows abnormal effects under some circumstances: for example,
after viewing a mostly black screen an afterimage appears briefly
when going back to a brightly-lit screen. Sudden power-off without
proper shutdown of the backlight causes a "dissolving" effect.
- CW2015 battery reporting driver is buggy, and disabled for now.
Battery reporting is currently voltage-based using the AXP192.
Change-Id: I635e83f02a880192c5a82cb0861ad3a61c137c3a
SPL and UCL-compressed bootloader are now packed into one output,
bootloader.m3k, eliminating the separate SPL build phase.
The Rockbox bootloader now has a recovery menu, accessible by
holding VOL+ when booting, that lets you back up, restore, and
update the bootloader from the device.
Change-Id: I642c6e5fb83587a013ab2fbfd1adab439561ced2
It never worked, and hasn't compiled in something like a decade, Given
the HW capabilities (limited onboard flash, no expandability) there's
really no point in trying to fix/complete it.
Change-Id: I7d175089840396f8891645bd10010d730dd5bfdc
They were never finished, never saw any release ever, and haven't
compiled for the better part of a decade. Given their HW capabilities [1],
they are not worth trying to fix.
[1] 1-2MB RAM, ~256MB onboard flash, no expandability
Change-Id: I7b2a5806d687114c22156bb0458d4a10a9734190
It seems that 'toolset=' in tools/configure was set but not used, with
the build system only generating a hardcoded set of tools. This change
fixes the issue by exporting the required tools in the TOOLSET variable,
and having root.make append those to the TOOLS list.
Change-Id: I07024bdf1dd2260c32cfeecaba0d3bb5bf00346d
* arm failures in lua, wolf3d, quake, flac
* m68k failures in lua, wmapro
* mips ???
I still think that most of these are actually due to latent bugs or
ambiguous code.
Change-Id: I4c9751d2b5c7a66253b313bfbc75fcd721b118d6
And size elements horizaontally based on SYSFONT_WIDTH
Unfortunately we need 16px icons to make 16px statusbar look right
but at least it _works_ properly now.
Also: all targets currently use 8-px SYSFONT, except some hosted bootloaders
Change-Id: I0cdf97e6ef47ec49693ef79667b200595b4fe075