189 похожих чатов

Stm32f030, пробую снять lock с flash посылкой последовательности из двух

32-битных значений. При записи второго значения - hardfault. ДШ утверждает что такое возможно в случае отсылки не правильной последовательности. Есть другие варианты, кроме этого объяснения? Последовательность стандартная напутать с ней сложно.

25 ответов

19 просмотров

Код в студию...

Алексей-Сугоняев Автор вопроса
Алексей Кузнецов 🦔
Код в студию...

if ((FlashMCU->CR & MCU_FLASH_CR_LOCK) != 0) /* (2) */ { FlashMCU->KEYR = 0x45670123; FlashMCU->KEYR = 0xCDEF89AB; } Код из ДШ

Алексей Сугоняев
if ((FlashMCU->CR & MCU_FLASH_CR_LOCK) != 0) /* (2...

Вообще фигня, должно работать... Может, явно запихнуть их в uint32? Я в плане, кто его знает, вдруг оно там пытается перед записью в регистр битами играться, тогда знак может уплыть не туда (вторая константа в signed int меньше нуля)...

Алексей-Сугоняев Автор вопроса
Алексей Кузнецов 🦔
Вообще фигня, должно работать... Может, явно запих...

похоже интересную мысль Вы сказали, посмотрел ассемблер а там вот: FlashMCU->KEYR = 0x45670123; FlashMCU->KEYR = 0xCDEF89AB; 8000f4c: 4b09 ldr r3, [pc, #36] ; (8000f74 <CheckFontOffsetsTable+0x5c>) 8000f4e: 6053 str r3, [r2, #4] при этом константа 8000f74: cdef89ab .word 0xcdef89ab а первой то константы 0x45670123 и нет

Алексей-Сугоняев Автор вопроса
Alexey Tsvetkov
Регистры объявлены как volatile?

Нет, это структура на которую объявлен указатель

Алексей-Сугоняев Автор вопроса
Алексей Кузнецов 🦔
Так ыть должны быть... 😒

Сами регистры не объявить, отдельно, только в составе макросов. Я раньше так и делал и никогда с таким способом оптимизации не встречался. Захотелось красиво сделать, тьфу блин.... на такую красоту

Алексей Сугоняев
Нет, это структура на которую объявлен указатель

Вот и ошибка. Есть FLASH в CMSIS - его и используйте. И будет всегда красиво.

Алексей-Сугоняев Автор вопроса
x893
Вот и ошибка. Есть FLASH в CMSIS - его и используй...

Да чего вдруг бы, там тоже такая же фигня даже еще хуже накручена. Не вижу смысла в этом оверхеде

Алексей Сугоняев
Да чего вдруг бы, там тоже такая же фигня даже еще...

С того что работает. Раз нет смысла - делайте как хотите.

Алексей-Сугоняев Автор вопроса
x893
С того что работает. Раз нет смысла - делайте как ...

Это именно тот случай когда я пошел на поводу того как это сделано в CMSIS

Алексей Сугоняев
Это именно тот случай когда я пошел на поводу того...

Значит не туда пошли. У них стоит __IO поэтому и работает

Алексей-Сугоняев Автор вопроса
x893
Значит не туда пошли. У них стоит __IO поэтому и р...

Ладно не буду флеймить, но код который поражадает st-шные CMSIS - то еще барахло

есть рабочий код на f030 для работы с флеш надо?

Алексей-Сугоняев Автор вопроса
Евгений
есть рабочий код на f030 для работы с флеш надо?

Спасибо! Но кайф в другом, велосипеды лучшая вещь в мире 😊

Алексей-Сугоняев Автор вопроса
Leonid Zaliubovskyi
Как твой FlashMCU объявлен?

Как указатель на структуру, регистровый указатель.

Алексей Сугоняев
Спасибо! Но кайф в другом, велосипеды лучшая вещь ...

можете крутить свой велосипед а посмотреть, как сделано на cmsis быстрее разберётесь

Алексей-Сугоняев Автор вопроса
Leonid Zaliubovskyi
сильное заявление. Ты код покажи

А что этого никто не видел что ли? Не думал что Америку открываю.

Алексей Сугоняев
А что этого никто не видел что ли? Не думал что Ам...

ты главное не гори, если у тебя нет там __IO, как здесь и/или volatile - оптимизатор поднасрать может с компилятором. Что собственно он и сделал

Алексей-Сугоняев Автор вопроса
Vyacheslav Olkhovchenkov
ты у нас поэт?

раз пять пересмотрел, рифмы не нашел

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Карта сайта