Commit Graph

25 Commits

Author SHA1 Message Date
Alexey Lapshin
824c8e0593 feat(esp_system): allow .bss to spill over into L2MEM above 0x4ff40000
This commit introduce SOC_MEM_NON_CONTIGUOUS_SRAM flag (that enebled for
esp32p4). If SOC_MEM_NON_CONTIGUOUS_SRAM is enabled:

- LDFLAGS+=--enable-non-contiguous-regions
- ldgen.py replaces "arrays[*]" from sections.ld.in with objects under
  SURROUND keyword. (e.g. from linker.lf: data -> dram0_data SURROUND(foo))
- "mapping[*]" - refers to all other data

If SOC_MEM_NON_CONTIGUOUS_SRAM, sections.ld.in file should contain at
least one block of code like this (otherwise it does not make sense):

  .dram0.bss (NOLOAD) :
  {
    arrays[dram0_bss]
    mapping[dram0_bss]
  } > sram_low

  .dram1.bss (NOLOAD) :
  {
    /* do not place here arrays[dram0_bss] because it may be splited
     * between segments */
    mapping[dram0_bss]
  } > sram_high
2024-02-28 19:41:25 +04:00
simon.chupin
35dda59209 tools: remove the dependency on the future package 2022-08-09 16:46:58 +02:00
Fu Hanxi
172854a850 refactor: rewrite ldgen fragment file parser
closes https://github.com/espressif/esp-idf/issues/7940
2022-01-07 16:18:32 +08:00
Fu Hanxi
a44953ecd4 refactor: move ldgen into a separate package 2022-01-07 16:18:32 +08:00
Ivan Grokhotkov
29489a3303 build system: fix quoting of fragments list passed to ldgen 2021-12-14 19:17:53 +01:00
Simon Chupin
909ae90867 replace the old header in ldgen.py with a new SPDX header style and delete it from check_copyright_ignore.txt to complete pipelines without errors 2021-11-15 18:03:33 +01:00
Tian Yunhao
b246ec86f3 ldgen: override LC_ALL to C before running objdump
When using a Linux system configured with `zh_CN.UTF-8` as `$LANG`,
and running raw cmake command to build the project (rather than using
`idf.py build`), output of objdump will be Chinese
(like `在归档文件 libesp_pm.a 中`), resulting in parsing error
`pyparsing.ParseException: Expected "In archive" (at char 0), (line:1, col:1)`
at entity.py line 129.

This commit forces objdump to use raw locale setting (`C`), to ensure
it always make English output that's able to be parsed.

Closes https://github.com/espressif/esp-idf/pull/7903
2021-11-15 17:55:24 +01:00
Renz Bagaporo
b99777066f ldgen: implement flags support
Implement support for KEEP, ALIGN, emitting symbols and SORT.
Add appropriate tests
Defines default mapping in linker fragment file
2021-03-01 14:19:34 +08:00
Renz Bagaporo
7f18c948dc ldgen: refactor generation tests and description addition 2021-02-05 10:20:37 +08:00
Renz Bagaporo
a41a56b5b0 ldgen: refactor generation internals 2021-02-03 19:44:28 +08:00
Fu Hanxi
0146f258d7 style: format python files with isort and double-quote-string-fixer 2021-01-26 10:49:01 +08:00
Renz Bagaporo
d8d24051a4 ldgen: allow checking mappings 2021-01-19 11:17:18 +08:00
Roland Dobai
01887f71e7 Update kconfiglib to upstream version and replace mconf-idf
Special thanks to @ulfalizer for the helpful suggestions regarding
kconfiglib.

"rsource" option is available for relative path includes
Closes https://github.com/espressif/esp-idf/issues/4064
2019-10-29 10:40:04 +01:00
Angus Gratton
f1e07663c4 cmake: Use environment variables file for all config binaries 2019-07-01 15:54:27 +10:00
Renz Christian Bagaporo
f0f861ccd9 ldgen: use user input filename for processed template
Previously ldgen determines the output file name on its own. This commit
makes it so that user can dictate what the output file name will be
for the processed template, if the user needs it for something else.
2019-06-11 18:09:26 +08:00
Renz Christian Bagaporo
b1ecd75d83 ldgen: pass component libraries directly 2019-04-26 20:06:53 +08:00
Renz Christian Bagaporo
7150ac61cd ldgen: rename common module 2019-04-13 08:59:32 +08:00
Renz Christian Bagaporo
7dcef2c33c ldgen: implement common fragment parsing 2019-04-04 15:56:14 +08:00
Roland Dobai
bfa9610f58 tools: Fix the Python coding style 2018-12-19 11:56:24 +01:00
Angus Gratton
9f8587360c ldgen: Fix crash if --sections argument not supplied 2018-12-05 18:29:28 +11:00
Renz Christian Bagaporo
a7a1c32a8e cmake, make: fix long cmd line args for ldgen 2018-12-03 12:26:38 +08:00
Angus Gratton
d4a5682e7d ldgen: Improve error output when linker input is invalid, don't create output file until end of process 2018-11-29 12:41:35 +11:00
Renz Christian Bagaporo
22b4c95d1e ldgen: add traceback in case of exception 2018-11-28 14:14:54 +08:00
Renz Christian Bagaporo
8eeddd287c ldgen: catch exception with python3 compatible style
Closes https://github.com/espressif/esp-idf/issues/2720
2018-11-22 22:09:43 +08:00
Renz Bagaporo
63411fc556 tools: implement linker script generation 2018-11-16 12:42:02 +08:00