LINUX.ORG.RU

История изменений

Исправление shkolnick-kun, (текущая версия) :

Заодно можно хорошенько поджечь жопы всяким Эдикам.

TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.

А теперь более развернуто:

  1. Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).

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

  3. LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.

  4. В этих хеддерах есть вот такие дефайны

#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          
  1. В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
  1. Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводов микроконтроллера, а для периферии - нельзя!

  2. В итоге, проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.

Таким образом, Куб - ярчайший пример Defective by design.

Исправление shkolnick-kun, :

Заодно можно хорошенько поджечь жопы всяким Эдикам.

TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.

А теперь более развернуто:

  1. Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).

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

  3. LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.

  4. В этих хеддерах есть вот такие дефайны

#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          
  1. В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
  1. Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводов микроконтроллера, а для периферии - нельзя!

  2. В итоге, проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.

Таким образом, Куб - ярчайший пример Defective by design.

Исправление shkolnick-kun, :

Заодно можно хорошенько поджечь жопы всяким Эдикам.

TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.

А теперь более развернуто:

  1. Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).

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

  3. LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.

  4. В этих хеддерах есть вот такие дефайны

#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          
  1. В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
  1. Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводов микроконтроллера, а для периферии - нельзя!

  2. В итоге, проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.

В общем, Куб - ярчайший пример Defective by design.

Исправление shkolnick-kun, :

Заодно можно хорошенько поджечь жопы всяким Эдикам.

TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.

А теперь более развернуто:

  1. Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).

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

  3. LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.

  4. В этих хеддерах есть вот такие дефайны

#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          
  1. В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
  1. Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводов микроконтроллера, а для периферии - нельзя!

  2. В результате проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.

В общем, Куб - ярчайший пример Defective by design.

Исправление shkolnick-kun, :

Заодно можно хорошенько поджечь жопы всяким Эдикам.

TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.

А теперь более развернуто:

  1. Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в багфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).

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

  3. LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.

  4. В этих хеддерах есть вот такие дефайны

#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          
  1. В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
  1. Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводом микроконтроллера, а для периферии - нельзя!

  2. В результате проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.

В общем, Куб - ярчайший пример Defective by design.

Исходная версия shkolnick-kun, :

Заодно можно хорошенько поджечь жопы всяким Эдикам.

TLDR: Эдикам это будет строго до лампочки. А вот ТС, натыкает галочек и хорошенько так подожжет жопу себе при попытке сопровождать результаты натыкивания.

А теперь более развернуто:

  1. Куб ИДЕ писали криворукие придурки, ломающие обратную совместимость даже в дагфикс-релизах. Т.е., при сопровождении проекта нельзя обновлять куб (sad but true).

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

  3. LL лучше но опирается на вот такие хеддеры, которые какбе относятся к CMSIS, но их писали примерно те же альтернативщики, что и HAL.

  4. В этих хеддерах есть вот такие дефайны

#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          
  1. В результате над всем этим безобразием невозможно построить нормальные абстракции, не сделав
#undef TIM2
  1. Соответственно, горе программисты, писавшие Куб, не смогли нормально абстрагироваться от железа, и в кубе можно задавать человекочитаемые имена только для выводом микроконтроллера, а для периферии - нельзя!

  2. В результате проект, сделанный в Кубе, прибит гвоздями к конкретной версии конкретной платы. При коррекции платы обязательно будут пляски с бубном вокруг Куба.

В общем, Куб - ярчайший пример Defective by design.