История изменений
Исправление shkolnick-kun, (текущая версия) :
Заодно можно хорошенько поджечь жопы всяким Эдикам.
TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.
А теперь более развернуто:
-
Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).
-
Куб опирается на HAL, писанный альтернативно одаренными программистами со всеми вытекающими. Никогда не используй HAL без веских причин (отсутствие драйверов в LL и сторонних драйверов с подходящей лицензией)
-
LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.
-
В этих хеддерах есть вот такие дефайны
#define TIM2 ((TIM_TypeDef *) TIM2_BASE)
В сочетании вот с такими:
#define RCC_APB1RSTR_TIM2RST_Pos (0U)
#define RCC_APB1RSTR_TIM2RST_Msk (0x1UL << RCC_APB1RSTR_TIM2RST_Pos) /*!< 0x00000001 */
#define RCC_APB1RSTR_TIM2RST RCC_APB1RSTR_TIM2RST_Msk
- В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
-
Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводов микроконтроллера, а для периферии - нельзя!
-
В итоге, проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.
Таким образом, Куб - ярчайший пример Defective by design.
Исправление shkolnick-kun, :
Заодно можно хорошенько поджечь жопы всяким Эдикам.
TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.
А теперь более развернуто:
-
Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).
-
Куб опирается на HAL, писанный альтернативно одаренными программистами со всеми вытекающими. Никогда не используй HAL без веских причин (отсутствие драйверов в LL и сторонних драйверов с подходящей лицензией)
-
LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.
-
В этих хеддерах есть вот такие дефайны
#define TIM2 ((TIM_TypeDef *) TIM2_BASE)
В сочетании вот с такими определениями:
#define RCC_APB1RSTR_TIM2RST_Pos (0U)
#define RCC_APB1RSTR_TIM2RST_Msk (0x1UL << RCC_APB1RSTR_TIM2RST_Pos) /*!< 0x00000001 */
#define RCC_APB1RSTR_TIM2RST RCC_APB1RSTR_TIM2RST_Msk
- В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
-
Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводов микроконтроллера, а для периферии - нельзя!
-
В итоге, проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.
Таким образом, Куб - ярчайший пример Defective by design.
Исправление shkolnick-kun, :
Заодно можно хорошенько поджечь жопы всяким Эдикам.
TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.
А теперь более развернуто:
-
Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).
-
Куб опирается на HAL, писанный альтернативно одаренными программистами со всеми вытекающими. Никогда не используй HAL без веских причин (отсутствие драйверов в LL и сторонних драйверов с подходящей лицензией)
-
LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.
-
В этих хеддерах есть вот такие дефайны
#define TIM2 ((TIM_TypeDef *) TIM2_BASE)
В сочетании вот с такими определениями:
#define RCC_APB1RSTR_TIM2RST_Pos (0U)
#define RCC_APB1RSTR_TIM2RST_Msk (0x1UL << RCC_APB1RSTR_TIM2RST_Pos) /*!< 0x00000001 */
#define RCC_APB1RSTR_TIM2RST RCC_APB1RSTR_TIM2RST_Msk
- В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
-
Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводов микроконтроллера, а для периферии - нельзя!
-
В итоге, проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.
В общем, Куб - ярчайший пример Defective by design.
Исправление shkolnick-kun, :
Заодно можно хорошенько поджечь жопы всяким Эдикам.
TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.
А теперь более развернуто:
-
Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).
-
Куб опирается на HAL, писанный альтернативно одаренными программистами со всеми вытекающими. Никогда не используй HAL без веских причин (отсутствие драйверов в LL и сторонних драйверов с подходящей лицензией)
-
LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.
-
В этих хеддерах есть вот такие дефайны
#define TIM2 ((TIM_TypeDef *) TIM2_BASE)
В сочетании вот с такими определениями:
#define RCC_APB1RSTR_TIM2RST_Pos (0U)
#define RCC_APB1RSTR_TIM2RST_Msk (0x1UL << RCC_APB1RSTR_TIM2RST_Pos) /*!< 0x00000001 */
#define RCC_APB1RSTR_TIM2RST RCC_APB1RSTR_TIM2RST_Msk
- В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
-
Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводов микроконтроллера, а для периферии - нельзя!
-
В результате проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.
В общем, Куб - ярчайший пример Defective by design.
Исправление shkolnick-kun, :
Заодно можно хорошенько поджечь жопы всяким Эдикам.
TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.
А теперь более развернуто:
-
Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).
-
Куб опирается на HAL, писанный альтернативно одаренными программистами со всеми вытекающими. Никогда не используй HAL без веских причин (отсутствие драйверов в LL и сторонних драйверов с подходящей лицензией)
-
LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.
-
В этих хеддерах есть вот такие дефайны
#define TIM2 ((TIM_TypeDef *) TIM2_BASE)
В сочетании вот с такими определениями:
#define RCC_APB1RSTR_TIM2RST_Pos (0U)
#define RCC_APB1RSTR_TIM2RST_Msk (0x1UL << RCC_APB1RSTR_TIM2RST_Pos) /*!< 0x00000001 */
#define RCC_APB1RSTR_TIM2RST RCC_APB1RSTR_TIM2RST_Msk
- В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
-
Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводом микроконтроллера, а для периферии - нельзя!
-
В результате проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.
В общем, Куб - ярчайший пример Defective by design.
Исходная версия shkolnick-kun, :
Заодно можно хорошенько поджечь жопы всяким Эдикам.
TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.
А теперь более развернуто:
-
Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в дагфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).
-
Куб опирается на HAL, писанный альтернативно одаренными программистами со всеми вытекающими. Никогда не используй HAL без веских причин (отсутствие драйверов в LL и сторонних драйверов с подходящей лицензией)
-
LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.
-
В этих хеддерах есть вот такие дефайны
#define TIM2 ((TIM_TypeDef *) TIM2_BASE)
В сочетании вот с такими определениями:
#define RCC_APB1RSTR_TIM2RST_Pos (0U)
#define RCC_APB1RSTR_TIM2RST_Msk (0x1UL << RCC_APB1RSTR_TIM2RST_Pos) /*!< 0x00000001 */
#define RCC_APB1RSTR_TIM2RST RCC_APB1RSTR_TIM2RST_Msk
- В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
-
Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводом микроконтроллера, а для периферии - нельзя!
-
В результате проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.
В общем, Куб - ярчайший пример Defective by design.