Я разобрался в смысле этой инструкции
Оказалось что дело не в конвейере процессора, а в линкере. В актуальном скрипте линкера в команде
SECTIONS среди прочих располагается оператор определения секции
.relocate:
Код:
...
.relocate : AT (_efixed)
{
. = ALIGN(4);
_srelocate = .;
*(.vectors)
*(.ramfunc)
*(.data)
. = ALIGN(4);
_erelocate = .;
} >sram
...
При этом в
Makefile проекта указаны следующие опции компоновки:
Код:
LDFLAGS = -g $(OPTIMIZATION) -nostartfiles -Wl,--gc-sections
Здесь,
--gc-sections - это не что иное как опция
Remove unused sections (on some targets). Если убрать из кода явное обращение к секции векторов, то после сборки проекта размер секции .relocate заметно легчает согласно выводу команды
Код:
$ arm-elf-readelf -S
Полученный результат меня удовлетворил, поэтому разбираться в том, что за ад происходит в чипе при выполнении переоптимизированной микропрограммы я не стал
Поправьте меня, если я где-то наврал.