Не секрет что флеш довольно медленное устройство.
И очевидно что после сброса, основной исполняемый код необходимо копировать в область RAM памяти. А затем эту же область RAM памяти переместить туда где вектора. Верно?
Как бы написать свой бутлоадер вроде и не проблема, но со временем возникают вопросы.
Как выгружать полезный код?
Самое простое решение это резервировать всю оставшуюся область памяти для одной скомпилированной с ресурсами (картинки, иконки и т.д.) большой прошивки. Просто, но не рационально. Особенно когда этих же ресурсов очень много (приложения с графикой и (или) звуком к примеру). Да и присоединять к проекту и компилировать такие вещи, а потом сливать на флеш очень кисло (особенно при отладке).
Тут так и напрашивается некий FAT.
Встречаются ли готовые решения этого вопроса?
С библиотеками для FAT16/32 возникает один курьезный момент - как отформатировать NOR-Flash.
Понятно что с MMC/SD и CF здесь проблем никаких.