ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
680026 Топик полностью
shan (10.06.2016 13:46, просмотров: 85) ответил Гудвин на Хе-хе. Расслабил нас cortex и Keil, привыкли, панимашь, что все гладко и красиво :) Сегодня наткнулся на hard fault по причине выравнивания U32. В FatFS при размешении еe структур в глобальных переменных. Так и не нашел, как эту бяку вылечить.
Было похожее, когда свой массив размещал в статической памяти в батарейного домена stm32f207, и писал его в файл. Происходил hardfaul (причем не всегда а достаточно редко) при записи последнего байта статической памяти. FatFS зачем-то читал из моего в свой буфер ещё 1-2 байта после границы StaticRAМ (не существующий адрес), что и вызывало hardFault. Несмотря на то, что массив писался записями по 32байта и начало на границе слова (выравнивание на слово соблюдалось). Откючение всех оптимизаций не помогло. Сдвинул конец своего массива от физического конца памяти, оставив в конце неиспользуемые 4 байта и ошибки исчезли.