wswan:guide:memory_management
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wswan:guide:memory_management [2025/04/03 18:11] – asie | wswan:guide:memory_management [2025/08/15 10:33] (current) – [Advanced section names] asie | ||
---|---|---|---|
Line 13: | Line 13: | ||
<code C> | <code C> | ||
- | // The variable below will be stored in IRAM, even if it's declared const. | + | // The variable below will be stored in IRAM, even if it's declared |
static const uint16_t table_iram[] = {0, 1, 2, 3}; | static const uint16_t table_iram[] = {0, 1, 2, 3}; | ||
- | // The variable below will now be stored in ROM instead of IRAM. | + | // The variable below will now be stored in ROM instead of IRAM, as it is read-only and far. |
static const uint16_t __far table[] = {0, 1, 2, 3}; | static const uint16_t __far table[] = {0, 1, 2, 3}; | ||
+ | |||
+ | // As will this one, except it's not static, so you can reference it in a .h file... | ||
+ | const uint16_t __far global_table[] = {0, 1, 2, 3}; | ||
+ | |||
+ | // ... like so. | ||
+ | extern const uint16_t __far global_table[]; | ||
void process_table_iram(uint16_t *tbl); // This function can accept pointers to IRAM only. | void process_table_iram(uint16_t *tbl); // This function can accept pointers to IRAM only. | ||
Line 54: | Line 60: | ||
</ | </ | ||
- | The quoted component | + | The quoted component |
- | * '' | + | * '' |
* '' | * '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
All section flags are listed in [[https:// | All section flags are listed in [[https:// | ||
Line 99: | Line 105: | ||
with the following optional arguments: | with the following optional arguments: | ||
- | * **bank index** - the index of a bank, padded to the top of ROM. | + | * **bank index** - the index of a bank, in hexadecimal, padded to the top of ROM. For example, '' |
- | * **offset** - the absolute offset within a bank or memory location. | + | * **offset** - the absolute offset within a bank or memory location, in hexademical. For example, '' |
Note that the linker requires // | Note that the linker requires // |
wswan/guide/memory_management.1743703883.txt.gz · Last modified: by asie