Commit Graph
14 Commits
Author SHA1 Message Date
Ari Sundholm 67a64693c1 Userdata export: Zero out whole FAT area and handle SD write errors. 2020-11-24 23:50:05 +02:00
Ari Sundholm 8068542da1 Userdata export: export settings on a FAT16 filesystem. 2020-11-24 23:50:05 +02:00
Ari Sundholm 89bc3f35e7 Userdata export: Reduce image size by 20 bytes.
Replace an array of const char* literals with a single const char*
literal containing all the messages in the rotating prompt and an
array of alt_u8 containing the offsets of each message within the
literal.

This ends up yielding a larger size reduction than expected, a
healthy 20 bytes, despite a meager 8-byte difference in the size
of local variables and slightly more complex pointer math in
calculating the address of the current message within the string
literal.
2020-11-09 19:12:41 +02:00
Ari Sundholm b68b586ec8 Userdata export: Shrink the warning message code a bit. 2020-11-08 23:09:58 +02:00
Ari Sundholm 8df33bb364 Show warning message before exporting to SD card. 2020-11-08 17:39:26 +02:00
Ari Sundholm 32bbc49bf0 Userdata export: Fix menu behavior, particularly with the OSD.
The behavior of the menu option was all over the place, and would
easily leave the OSD in a weird state, requiring the user to blindly
do something that completely redraws the OSD.

Fix this by making the behavior similar to that of the userdata import
feature, with the difference of giving a more specific error message
when something goes wrong.
2020-11-07 01:39:06 +02:00
Ari Sundholm b890446e3d Implement userdata export.
A very simple implementation, as we are very short on remaining
block RAM. Simply blindly copies the entire userdata area to the
SD card. This may subject the SD card to some extra wear, as well
as potentially read-disturb some Flash memory pages, but this would
require more code.
2020-11-06 15:06:29 +02:00
Ari Sundholm 53eedc9d08 sys_controller/Makefile: Add -flto to compiler/linker flags.
This can (and does) considerably reduce the size of the resulting
binary, and as a bonus, the binary also does work. ;)
2020-11-06 15:04:21 +02:00
Ari Sundholm 0b495b234c altera_epcq_controller_mod.c: Fix faulty read/write end address check.
In the Flash info structure, the field containing the end address of
the Flash storage is documented to be non-inclusive.

However, when this field is compared to the end address of a read or
write, which is also non-inclusive, it is considered an error that
these two values match, which is incorrect, as this would error out
on an attempt to fully read/write the last page.

Fix this by simply changing the >= comparison into a > one.
2020-11-06 14:55:56 +02:00
Ari Sundholm af1f8a20d4 ulibSD/sd_io.c: Fix line endings to be consistently CRLF. 2020-11-05 19:11:04 +02:00
Ari Sundholm 598705c7fa ulibSD/sd_io.c: Fix writing to SD card.
There were a few things wrong with the SD card write implementation:
1. The protocol change regarding the interpretation of offsets
   introduced with SDHC cards was not taken into account in the write
   path, unlike in the read path.
2. All SPI writes involved in the process were actually issued as reads
   due to the use of the SPI_RW() function, the implementation of which
   seems to have gone through some churn. Likely just an instance of
   bit-rot.
2020-11-05 19:11:04 +02:00
Ari Sundholm 556140dd62 i2c_opencores.[ch], spi_io.[ch]: Improve const correctness. 2020-11-05 19:11:04 +02:00
Ari Sundholm cd77713255 ulibSD/spi_io.[ch]: Add function to write a single byte over SPI.
Additionally, fix the misleading documentation for SPI_RW().
The new function, SPI_WW() follows the same naming logic, for better
or worse.
2020-11-05 19:11:04 +02:00
Ari Sundholm b464a9224b Improve avoidance of profile load induced profile loads
It was buggy anyway, as pointed out by borti4938.
2018-03-15 13:28:37 +02:00