QUOTE (zuuuuk @ Nov 23 2016, 10:00)

Подскажите, а возможно расположить в одной секции несколько функций и переменную?
Можно. Если эта секция в ОЗУ или переменная константная и статическая.
QUOTE (zuuuuk @ Nov 23 2016, 10:00)

что для этого нужно поправить в коде или линковочном скрипте?
Ничего не нужно править - достаточно того, что вы написали. Но есть один нюанс:
Наверняка ваша программа компилируется с ключами -function-sections и -fdata-sections, тогда ваш скрипт надо поправить вот так:
CODE
*(.name1)
*(.name1.*)
а переменные раскладывать в секции с разными именами, начинающимися на ".name1.":
QUOTE
uint8_t fn_ld () __attribute__ ((section(".name1.ld")));
uint8_t fn_md () __attribute__ ((section(".name1.md")));
uint8_t fn_init () __attribute__ ((section(".name1.init")));
Объясняю: с этими ключами компилятор выделает под каждую функцию (-function-sections) и переменную (-fdata-sections) свою секцию - .text.func1, .data.var1, .bss.var3 и т.д. Это позволяет линкеру по ключу -gc-sections удалять из выходного файла те секции, на которые нет ссылок, т.е. удалять неиспользуемые в программе переменные и функции. *(.name1.*) как раз и говорит линкеру "класть из всех файлов секции, начинающиеся на .name1." А размещение каждой вашей функции/переменной в отдельной секции позволит линкеру выкинуть все лишнее.
Тем не менее, очень интересно - что за задача заставляет вас вот так шаманить с секциями? Подозреваю, что написание загрузчика. В таком случае это делается совсем иначе. Если версия с загрузчиком подтвердится - распишу.