Добавив пустышку, мы доказали, что функция EraseSector все-таки вызывается, но при этом не возвращает ни нуля, ни единицы. А такое возможно только при улете в HardFault. Теперь 2+х+2 сложились.[/uquote]Нет, конечно! Вот смотри, в файле FlashPrg.c есть вот такое описание функций
Что из этого мы можем выжать? А то что в случае когда IDE может добраться до чтения флэшки без специальных подпрограмм, а в случае с QSPI он это может сделать, то она перед стиранием/записью читает память. То есть, помимо процедур стирания/записи, которые ты пишешь, IDE ещё и сама во флэшь лазит и "обламывается" в этот момент, так как ты её не инициализировал. А когда ты добавляешь функции BlanckCheck и Verify, то IDE думает, что до флэшки без танцев с бубном не добраться и сама даже не пытается этого сделать, делает через твои функции.- BlanckCheck is necessary if Flash space is not mapped into CPU memory space
- Verify is necessary if Flash space is not mapped into CPU memory space
Мораль сей басни такова. Не надо выпендриваться, а запустить проект Test, отладить в нём все функции и просто использовать их во флэшлоадере - всё будет работать.
