That would be great, though more C examples of how to do it would be most helpful.The datasheet docs are not super helpful it seems so i will update them for the next release
I get that, it's that accessing unmapped memory beyond the partition which is mapped which brought things tumbling down.TLDR it is only the memory mapped stuff that is affected by address translation
That's the sort of answer I was hoping for; not having to look at registers, having to understand anything, search through '.h' files, just add 0x0C000000 to the normal Flash address. Simples.Code:
// use untranslated window starting at 0x1C000000#define BOT_ADDRESS 0x1C200000 // Top 2 MB of 4 MB Flash#define TOP_ADDRESS 0x1C3FFFFC
Code:
0x10200000 .----.---------------.-----------.---.--------------. | PT | | Firmware | | File System | `----^---------------^-----------^---^--------------' : : : : .....................: : : :......................... : : : : : .....................: :......................... : : : : : .-----------.- - - - - - - - - - - - - - - - - - - - - - - - -.--------------. | Firmware | | File System | `-----------^- - - - - - - - - - - - - - - - - - - - - - - - -^--------------' 0x10000000 0x100F0000 0x1C200000I guess to do that I do need to make A/B non-bootable, make C bootable and fill that with code which decides which of A/B to jump to, setting up mapping and Address Translation to allow access to Flash beyond their lengths.
Unless there's a way to tweak the 'pt.json' and/or some 'pictool' trick with LOAD_MAP Meta Blocks to do it all for me.
Statistics: Posted by hippy — Fri May 02, 2025 6:31 pm