Перейти к содержанию
    

Неточности либо ошибки в STM32Cube_FW_F1_V1.0.0

Обращаю внимание начинающих программистов на определённые неточности в STM32Cube_FW_F1_V1.0.0.

Ранее был stdlib. Сейчас st меняет подход. И, похоже, не все вычистило при переходе.

Честно говоря я не ставил своей задачей выявить "как и почему". И использую лишь некоторые модули. В частности попробовал применить RCC и FLASH.

В обоих возникли хомуты.

С FLASH не стал разбираться, если честно - выкинул и обратился напрямую к регистрам.

С RCC наблюдаю следующее ...

В файле stm32f1xx_hal_rcc.c (версия V1.0.0 от 15-December-2014) есть процедура:

__weak HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency)

Как видим задаётся FLatency. Эта FLatency нигде не фигурирует далее по процедуре, кроме как в assert_param(IS_FLASH_LATENCY(FLatency));

В библиотеке stdlib она, естественно, использовалась для задания Latency cycle FLASH памяти.

Здесь это описывается в заголовке и по тексту, но не делается.

Если исходить из того, что я должен был сделать это заранее отдельной процедурой, то тогда зачем было вводить этот параметр в эту процедуру и проверять на правильность задания?

То есть с моей точки зрения это достоверный баг.

При попытке запуска контроллера на частотах требующих тактов ожидания, естественно ничего не работает.

Для начинающих: необходимо добавить в начале процедуры следующие строки:

 

  // Flash FLatency wait state
  FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
  FLASH->ACR |= (uint32_t)FLatency;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вызывайте HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency)

из файла stm32f1xx_hal_rcc_ex.c, там все нормально

 

Вернее, не вызывайте HAL_RCC_ClockConfig из stm32f1xx_hal_rcc_ex.c, а подключите к проекту файл

stm32f1xx_hal_rcc_ex.c и будет вызвана функция HAL_RCC_ClockConfig из stm32f1xx_hal_rcc_ex.c

Изменено пользователем antis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Атрибут __weak дает шанс каждому (...) написать свою функцию. Что они (...) и делают. Приходится искать по проекту все упоминания нужной функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При попытке запуска контроллера на частотах требующих тактов ожидания, естественно ничего не работает.

А это не ускоритель? То есть запуск проца с неправильными циклами просто вызывает тормоза работы, а не прекращение работы, разве нет?

И по умолчанию там не стоит ли на самый медленный вариант?

Конечно плохо что они пропустили атрибут, но думаю не смертельно....

 

Но этот HAL так запустить быстро поглядеть вообще работает или нет, я чет как не пробую воспользоваться, а все равно половину функций переписывать приходиться, то таймаут воткнут на десятки миллисекунд, то еще что подобное...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А это не ускоритель? То есть запуск проца с неправильными циклами просто вызывает тормоза работы, а не прекращение работы, разве нет?

Нет. Запуск проца с неправильными циклами вызывает неработоспособность.

Новость я написал для новичков и начинающих. Понятно что для бывалых это не проблема. )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обращаю внимание начинающих программистов на определённые неточности в STM32Cube_FW_F1_V1.0.0.

Таки не понял, почему у вас 1.0.0 когда уже как минимум 1.3.0?

А в 1.0.0-то да, навскидку помню как исправлял определение размера SD, было неправильно. Ещё что-то исправлял, щас не помню.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет. Запуск проца с неправильными циклами вызывает неработоспособность.

Да поглядел в книжку, начальное состояние действительно под минимальный клок и просто крутанув частоту все упадет, забавненько....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...