Цитата(lavrik @ Jan 18 2015, 22:12)

Если массив меньше 32 кб - все компилируется и играет, но если больше 32 кб - компилятор выдает ошибку переполнения, т.е. при работе с массивом программа помещает его полностью в оперативку. Но главная загвоздка в том, что даже если не использовать массив больше 32 кб, а просто объявить его, то компилятор все-равно ругается точно так же.
Во первых - глупо копировать в оперативку даные из флеша, особенно если это не программа,а звук или что другое. Во вторых, в оперативке еще должен храниться стек и глобальные переменные, если копируете массив в размер оперативки, то куда складывать их?? Должен ругаться линкер на это безобразие
Если все равно будете биться об стенку, чтоб линкер не ругался, объявите массив, как "no init", но это все равно не правильно, ибо данные нужно читать их флеша напрямую, благо в армах линейное адр. пространство...
Цитата(lavrik @ Jan 18 2015, 22:12)

Однако все равно непонятно, как записать сэмпл звуковой, допустим в 64 кб, но чтобы компилятор принял его? Другими словами как ещё, кроме массива, можно записать эти самые 64 кб в код?
Работаю в KEIL, при компиляции выдает вот что:
На счет кейла не знаю, в иаре есть такая штука pragma location=адрес флеша, куда пишете данные... В кейле должно быть что-то подобное.