Closed trentgill closed 3 years ago
gah. i just did this same thing, with a different route (made an additional lds
file for teletype)
we can go this route instead, if we don't think any other bits of the lds
will need modifying
this might be a better option - since this setting might need to change in the future (if we free enough memory through refactoring and need to add something else to stored scenes), it’s easier to change it just in the main repo as opposed to having to change libavr32 as well
What does this PR do?
Sets a custom symbol for the linker script, causing the NVRAM to be moved further into the flash address space. This was necessitated as the TT program has grown beyond the allotted 256KB flash reserved for it.
NVRAM is just a marker in the flash memory space which enables an additional interface for read/writing data. It does not require any special hardware support, and the location is arbitrary - the flash memory it controls is homogeneous.
TT uses the NVRAM address marker as the basis for all non-volatile data storage (Saved scenes, and calibration data). The 512KB of flash memory was previously split 256/256kB between program/data (the default). This PR changes the split to 312/200kB. The current usage of NVRAM is ~198kB, so if any substantial amount of data is added to the stored data, this variable may need to be updated.
Provide links to any related discussion on lines.
https://llllllll.co/t/teletype-firmware-discussion/13961/102?u=galapagoose
How should this be manually tested?
Typical TT usage, and particularly, making sure saved Scenes & calibration data are working across power cycles.
Any background context you want to provide?
If the related Github issues aren't referenced in your commits, please link to them here.
fixes #250
I have,
CHANGELOG.md
help_mode.c
(if applicable)make format
on each commit