Цитата(011119xx @ Nov 26 2012, 12:55)

А вот это что задается?
Код
DMA_InitStructure.DMA_BufferSize = BufferSize / 4;
Здесь все ок. Это особенности обмена с sd картой. В функцию передается количество байт для пересылки, а в дма заносится количество 4-х байтных слов. Обмен с картой ведется через 32-х битный буфер фифо.
Обмен прекращается после 26-и пересылок, когда передано 104 байта. Счетчик дма виснет на значении 102. Запрос был на 512 байт - 128 пересылок.
И еще. Дело в том, что в этом же виде все работает, если адресоваться в озу. Т.е. эта же функция работает нормально. Там единственное отличие это устанавливается флаг инкримента памяти. Но чтобы точно все проверить я оставлял флаг инкремента и при адресации к fsmc. Т.е. вообще ничего в функции не менял. Результат всегда один и тот же - после 26 транзакций - останов.