Chapter 4. API Guides
# Non-preferred
[sections:text]
entries:
.text
.text.*
.literal
.literal.*
# Preferred, equivalent to the one above
[sections:text]
entries:
.text+
.literal+
Scheme
Scheme fragments define what target a sections fragment is assigned to.
[scheme:name]
entries:
sections -> target
sections -> target
...
Example:
[scheme:noflash]
entries:
text -> iram0_text
text will go to iram0_text
→
rodata -> dram0_data
rodata will go to dram0_data
→
The default scheme
There exists a special scheme with the name default. This scheme is special because catch-all placement rules
are generated from its entries. This means that, if one of its entries is text -> flash_text, the placement rule
will be generated for the target flash_text.
*(.literal .literal.* .text .text.*)
These catch-all rules then effectively serve as fallback rules for those whose mappings were not specified.
The default scheme is defined in esp_system/app.lf. The noflash and rtc scheme fragments which are
built-in schemes referenced in the quick start guide are also defined in this file.
Mapping
Mapping fragments define what scheme fragment to use for mappable entities, i.e. object files, function names,
variable names, archives.
[mapping:name]
archive: archive
a)
→
entries:
object:symbol (scheme)
object (scheme)
* (scheme)
There are three levels of placement granularity:
• symbol: The object file name and symbol name are specified. The symbol name can be a function name or a
variable name.
• object: Only the object file name is specified.
Espressif Systems
# means .text and .text.*
# means .literal and .literal.*
# the entries under the sections fragment
# the entries under the sections fragment
# output archive file name, as built (i.e. libxxx.
# symbol granularity
# object granularity
# archive granularity
1417
Submit Document Feedback
named␣
named␣
Release v4.4
Need help?
Do you have a question about the ESP32-S2 and is the answer not in the manual?