Демонстрация концепции в приложенном архиве. Вкратце, заставить GNU ld выкинуть секцию невозможно... но можно вырезать потом из исполняемого файла с помощью objcopy. При этом можно получить неработающий бинарник (не осилил почему -- понял, что если данные INSERT AFTER .bss, то всё ок, иначе не факт). И "(OVERLAY)" нужно по той же причине. Вместо смещений в BIN-файле можно использовать какие-то несуществующие адреса в RAM микроконтроллера -- тогда становится возможным на лету по адресу понимать, интерпретировать его как есть или читать через кеш...