Сначала Вы мне расписывали про FAT 32, затем написали следующее: Так что ошибка связана с неверным выполнением команд USB Mass Storage Devices или ошибками в параметрах команд, либо с ошибками записи/чтения самой памяти.
А на самом деле "косяк" или в Вашем контроллере, или компиляторе. В конечном счете, Ваш компилятор некорректно работает с 4-х байтовыми числами. Как только "ушел" от 4-х байтовой математики, все заработало. Да, и с размещением в памяти программ не все корректно работает.