Example: for a file asm/foo.c, make will look for asm/arm/foo.[cS] and
compile it if found. If not found it'll fall back to asm/foo.c.
Also introduce new ARCH make variable. This is automatically detected by
configure. It is distinct from CPU since CPU defines the dir used for
the target tree (i.e. firmware/target/X, so it can be "hosted").
ARCH really has the target isa and can be x86 for sims/raaa too.
Change-Id: I18e5d2b7b7bbc2ad2be551a74a0fcae5ffbcbf8b
This dir is suitable for stuff that doesn't fit the target tree, e.g. because
it also builds on hosted or otherwise. It also has a generic subfolder for
fallback C implementations so that not all archs need to provide asm files.
SOURCES should only contain "foo.c" where foo.c includes the specific
<arch>/foo.c files from the subdirs using the preprocessor. This way automatic
selection of asm versions or generic C verion is possible.
For the start, the thread support files are moved, since ASM threads can
be used on hosted platforms as well. Since core_sleep() remains platform
specific it's moved to the corresponding system.h headers.
Change-Id: Iebff272f3407a6eaafeb7656ceb0ae9eca3f7cb9
Using the stack pointer for anything else than pointing to the
current stack can have in very bad effects, especially on hosted
platforms (e.g. when mixed with signals). Remove this at a
neglible performance cost.
Change-Id: I9545d701bd13c32456c224b87c708d907880c0ff
Core, codecs and plugins link it separately so this gets rid of SOURCES trickery.
Don't build it for hosted targets.
Change-Id: If15ef90e93cd218a4352ae8e89eea95d3122452f
Using the stack pointer for anything else than pointing to the
current stack can have in very bad effects, especially on hosted
platforms (e.g. when mixed with signals). Remove this at
very slight performance cost.
Signals are by default executed on the user stack, i.e. the stack of
the currently active thread. This has two problems:
1) The stack size of the current stack is likely insufficient (unless
using sigaltstack threads) because our stack sizes are normally
below MINSIGSTKSIZE which is needed to deliver a signal.
2) Some of our asm code does nasty tricks with the stack pointer. When a
signal comes in during this bad things can happen, e.g. random memory
being overwritten or simply a crash.
Using a well defined stack fixes this. This is comparable with the
separate irq stack on native targets.
The debug screen gets un-smoothed battery status via battery_read_info().
The level and runtime that is normally presented to the user needs to be
based on smoothed voltage.
Change-Id: Icb448853973aa1d5832e9094176938cfa12b2e48
Instead of storing the return value and ignoring it use it directly to check if
an error occured. Addresses FS#12542.
Change-Id: I447afa006366acfd1851d5b13cae5f1561050283
Instead of simply assuming the wav file that is supposed to be created by the
TTS engine check if the file actually exists and return an error if not.
Change-Id: I9e4a85a061b44b48931614602683b1dfe7dfce67
The reasons for not using / don't seem to be valid (It can lead to //,
true, but not on any system where // is actually special, and
create_*_filename() handles / fine albeit not perfectly (more //)).
Handling /./ is desirable, but we can't afford to leave all automatic
filename generation broken indefinitely while people discuss possible
approaches.
Change-Id: I6718ea28d7c91e19f7da89f76c8cefd92e12fe5e
Depending on the firmware version the filename is different, so it's necessary
to look for all the possible filenames when searching the file inside the zip.
The player happily accepts any of the filenames, so (as before) the first one
is used. Additional firmware filenames might be necessary for other players as
well.
Change-Id: If78444a8d9b7fe167ce0be1d58407038a4f9052b
Several devices require the original firmware to be able installing the
bootloader. Most vendors distribute the firmware file in zip format. Extend
reading the original firmware file to support reading the file from the zip
directly instead of requiring the user to separately extract it.
Change-Id: Ic4e89053456d8f7d6adc294f6657aceddbc354ba
Pass the threshold value for wavtrim to the TalkGenerator object instead of
using the default value. Makes wavtrim to be actually used.
Furthermore, check the result of the wavtrim call and respect its return value.
As done with the screenshots display an error notice when the main image is
missing. Same is done for the remote image for targets that do have a remote.
\IfFileExists requires to use the full filename, not the stem as
\includegraphics accepts happily, so 36489d9 actually broke the main image for
all players.
Running TTS and encoders with multiple threads is causing problems on Windows
since introduction of the feature (FS#12106, FS#11994). The current
implementation also makes wrong assumptions (having multiple threads talk to
the SAPI script doesn't make it run faster since it's still one thread
responsible for creation).
Completely remove multithreading support for that for now -- a different
implementation is necessary.
Change-Id: Icafa223644efc370a09186ce28ac83c22902e0c0
C99-ify variables to keep them localized
Use sum of absolute differences instead of sum of squared differences for
autocorrelation which should reach the same conclusion and avoid 64-bit
multiplication.
Change-Id: If4f3715a36225420db3b05e9814b81766d04f0f3