Лабиринт с Минотавром

Oct 25, 2017 13:21

Ковыряясь в закоулках HAL, начинаешь понимать тех, кто прогает STM32 на асме.

Leave a comment

Comments 3

eddy_em October 25 2017, 11:02:49 UTC
Ну, на асме - это уж чересчур, а вот на нормальном С безо всяких говнолиб - очень даже правильно. В любом случае придется читать даташит, но если сам пишешь себе сниппеты, то не придется еще и чужой говнокод читать, чтобы понять, когда какую функцию вызвать и делает ли эта функция то, что нужно, или там опять что-то забыли. Я уж молчу, что все эти SPL/HAL жутко избыточны: они столько лишних движений делают, что ну их нафиг.
Вот было бы здорово иметь что-то подобное, но на чистых макросах и вообще без излишеств.

Reply


engine_runtime October 25 2017, 11:26:04 UTC
Да пепсец. MX_Cube сгенерировал инит в HAL. Ладно, хорошо. Начинаю добавлять свой код.
Компилю.
И тут вижу, что компилятор понимает
GPIOA->MODER = 0x00000000 ; //к примеру
и не понимает и дает ошибку на
GPIOA->BSRRL = 0x0008 ; //Set PA3 GPIO SPI1 soft NSS to HIGH
той же версии ХАЛ.
Как прописать в регистр конфигурации чего то, например RCC, по его физическому адресу???
--------------------------
Ладно, идешь обратным путем и внедряешь в рабочий проект с платой Дискавери STM32F407 инициацию RCC для похожей платы с другим кварцем 12мгц и процем STM32F427.
При компиляции не хочет знать функции
__HAL_RCC_PWR_CLK_ENABLE()
HAL_PWREx_EnableOverDrive()
_Error_Handler(__FILE__, __LINE__)
и они не находятся поиском не только в проектах, но и в интернете проблемно, вообще интересно, как в таком случае успешно компилится генерация CubeMX

Reply

engine_runtime October 25 2017, 12:06:02 UTC
Ну вобщем то не так чтоб не находится, но короче ХАЛ дерьмо.
Задуманное типа для упрощения жизни, превращается в широкий простор для сношения.

Reply


Leave a comment

Up