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
