|
Когда есть секция .data (инициализируемые данные), то она также попадает в бинарник, хотя при этом и должна во время выполнения кода лежать в RAM. Решение состоит в том, что в скрипте задаются разные адреса положения секции при загрузке (LMA) и в рантайме (VMA). При инициализации нужно, чтобы данные с адреса LMA были переписаны по адресу VMA. Кстати, судя по размеру бинарника, адреса ROM и RAM различаются на 0x20000000