-
- А чем вам не нравится стандартный линк файл от WCH который есть во
всех примерах - там порядок сегментов .data / .sdata / .sbss / .bss
и $gp инициализируется на начало сегмента .sdata + 0x800. И так как
.sbss = .bss то при релаксации (-Wl,--relax включена по умолчанию)
всё .bss доступно сразу по $gp (естественно в пределах +-2K
смещения). А для использования .sdata надо задать как раз параметр
-msmall-data-limit. Сегменты .sdata и .sbss рядом вместе. Zikon(664 знак., Сегодня, 11:38)
- А вот в известной библиотеке ch32fun очень странный линк файл по поводу $gp. Инициализация $gp - адрес сегмента .data + 0x3fc. И как это понимать? Компилятор/линкер всё равно не будут работать с данными в .data через $gp. А если хотите всё же .data прихватить - задирайте значение -msmall-data-limit, но потом не удивляйтесь что 4К быстро закончились для $gp. Стандартный вариант от WCH - более оптимальный. - Zikon(Сегодня, 11:47)
- А чем вам не нравится стандартный линк файл от WCH который есть во
всех примерах - там порядок сегментов .data / .sdata / .sbss / .bss
и $gp инициализируется на начало сегмента .sdata + 0x800. И так как
.sbss = .bss то при релаксации (-Wl,--relax включена по умолчанию)
всё .bss доступно сразу по $gp (естественно в пределах +-2K
смещения). А для использования .sdata надо задать как раз параметр
-msmall-data-limit. Сегменты .sdata и .sbss рядом вместе. Zikon(664 знак., Сегодня, 11:38)