ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
17 июля
586879
VVB (19.03.2015 10:42, просмотров: 2078)
Как получить доступ к таблице секций, генерируемых линкером arm-none-eabi-ld.exe? Допустим, я определяю свою секцию .fastdata. Load Memory Address находится в FLASH, Virtual Memory Address находится в ОЗУ. Естественно, какая-то (системная) функция до запуска main должна осуществить копирование секции .fastdata из flash в озу. В составе GNU ARM Tools Embedded я такой функции не нашёл, пришлось вмешиваться в стартапную инициализацию и делать это самому. А когда мне ещё одна подобная секция понадобится, мне что, опять менять стартапные файлы? К примеру, ARMCC и GHS MULTI обозревают все скормленные секции, сортируют их по некоторым атрибутам, заполняют структуры с LMA, VMA, размером и кладут эти структуры в точно именованные секции, поэтому стартапный код может обратиться к структуре, идентифицирующей секции, и путём последовательного обращения ко всему массиву определить VMA, LMA, размер и сделать необходимые действия. Короче, поддерживает ли линкер GCC нечто подобное таблице уже имеющимся в нём таблицам .ctors и .dtors для пользовательских секций?