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

Критерии совершенства в CubeMX?

On 1/18/2019 at 10:58 PM, Forger said:

200...1000 кб.

Выходит, что я - неправильный программист, и делаю неправильный код,  коли делаю все наоборот - изолирую чужой код своими т. н. "обертками", чтобы полностью отвязаться от этого чужого кода.

У всех - свой подход. Мне лично очень удобен мой подход, который я тут описывал, для меня он и прост и понятен.

У MQX ядро - 5 мегабатй, файловая - 500 кБ, стек TCP - 3.5 мегабайта., shell - 500 КБ, USB  - 1 мегабайт. 
Вы понимаете насколько мала ваша библиотека? 
Изоляция чужого кода может прийти в голову только если этого чужого кода очень мало. 

Сколько не анализирую большие и полезные проект на github все используют сторонние утилиты для преобразования исходников. 
Везде есть в том или ином виде метаязыки, т.е. языки управляющие преобразованием других языков.
Никто не парится с версиями библиотек и не полагается на IDE. 
Посмотрите на такой известный проект NuttX, который собран как лоскутное одеяло из кучи чужих кусков, там мужику в голову не приходит че-то изолировать. 
Он берет и юзает как есть, без всяких проблем. 

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

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


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

Кхм, все ide имеют несколько вариантов сборки проекта, в виде готовых кнопок. Собрать готовое, собрать изменённое, пере_собрать проект полностью, и остановить зависший процесс сборки. Разница в скорости сборки просто громадная. Если части проекта уже были собраны и не изменены - то повторная сборка будет моментальной.

Это свойство ide - полностью аннигилирует потребность в ручных библиотеках, вообще полностью. Как можно пропустить эти кнопки? они-же на самом виду.  

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


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

7 hours ago, AlexandrY said:

У MQX ядро - 5 мегабатй, файловая - 500 кБ, стек TCP - 3.5 мегабайта., shell - 500 КБ, USB  - 1 мегабайт. 

Я не учитываю размер внешних готовых стеков. Только ОСь и драйверы на периферию под конкретное семейство. Чужие "стеки" - отдельно. Пока отдельно.

 

Quote

Вы понимаете насколько мала ваша библиотека? 

А вы понимаете, что вот таким странным образом пытаетесь "меряться пиписьками"?  

 

 

7 hours ago, AVI-crak said:

 Как можно пропустить эти кнопки? они-же на самом виду.  

Не стоит считать людей полными идиотами лишь потому, что вам так показалось, тогда и вас таковым считать не будут ::buba:

 

Библиотеки собираю для другой цели, тут уже озвучивал. Влом повторяться.

 

Попробую другими словами: "изолирую" чужой С-код своими С++ "обертками". Чужой код оставляю без изменений, не перепиливаю. Мне лично так удобнее. Повторюсь: мне лично.

 

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


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

Ковыряюсь "в тряпках" по HAL  http://www.cyberforum.ru/post13177999.html  нахожу  от _SayHello

"По счастливой случайности эти поля проинициализировались не нулями, а рандомным мусором. И по итогу испортили значения в регистрах USART. 
Проинициализировав эти поля нулями все заработало как надо."

...."индусы" свирепствуют и позволяют не утруждать себя корректностью полей инициализации.  Срамота...

 

Кстати, почему в книге  "Mastering STM32" (2016г про HAL) нет разъяснений о половине описаний в HAL под обобщенным названием   LL_**** ? 

(Например LL_AHB1_GRP1_EnableClock, LL_IWDG_Enable, LL_GPIO_SetPinMode...).  Что прикрывает их появление? Мотивы столь сильны?

Просмотрел  Firmware(F429) на этот предмет (применение LL_XXXX).  Не нашел, где такое востребовано?  Может кто разъяснит?   Нафига оно нужно?

 

Кажется нашел.  В  "Overview of Low Layer APIs and naming rules" как раз и показано, что

...Инициализирует периферийные основные функции в соответствии с указанными параметрами в PPP_InitStruct.

Или  Заполняет каждый элемент PPP_InitStruct его значение по умолчанию.   ...и даже  _DeInit

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


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

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

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


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

Достаточно ручками заполнить все поля структуры и никаких проблем не возникнет.

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


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

А если используется Си++, то поля структур можно инициализировать в конструкторе наиболее типичными значениями:bb:

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


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

15 часов назад, haker_fox сказал:

А если используется Си++, то поля структур можно инициализировать в конструкторе наиболее типичными значениями:bb:

Открыл первый попавшийся SPL

void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)
{
  /* Reset GPIO init structure parameters values */
  GPIO_InitStruct->GPIO_Pin  = GPIO_Pin_All;
  GPIO_InitStruct->GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStruct->GPIO_Speed = GPIO_Speed_Level_2;
  GPIO_InitStruct->GPIO_OType = GPIO_OType_PP;
  GPIO_InitStruct->GPIO_PuPd = GPIO_PuPd_NOPULL;
}

 

Делает то же, что делал бы конструктор. Но лучше руками заполнить самому все, никаких "по умолчанию". Это "по умолчанию" потом приведет к неочевидным казусам а-ля "пару минут назад все работало, а щас нет":smile:

А лучше да, драйверы нижнего уровня собственноручно писать.

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


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

On 1/9/2019 at 8:16 PM, Arlleex said:

И что характерно, для H7\F7 такой библиотеки нет!  То-то слабо покупают  Дискавери для топовой модели   

NUCLEO-H743ZI
Отладочный комплекс NUCLEO
Отладочная плата линейки STM32 Nucleo-144 на основе микроконтроллера STM32H743ZIT6

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


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

12 minutes ago, Мур said:

То-то слабо покупают  Дискавери для топовой модели 

Просто пока непонятно, куда этот M7 можно прикрутить? Для решения каких задач?

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


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

Только что, Мур сказал:

И что характерно, для H7 такой библиотеки нет!

STMicroelectronics активно продвигает свои HAL/Cube, и с недавних пор отказался от разработки SPL для новых линеек МК. Отсюда и потух ажиотаж.

Но для регистровых гурманов, ровным счетом, не поменялось ничего - карта регистров открыта.

 

Только что, haker_fox сказал:

Просто пока непонятно, куда этот M7 можно прикрутить? Для решения каких задач?

Как каких? Как раз тех, где 400МГц процессора уже будет, в принципе, достаточно для калокуберского мигания светодиодом:biggrin:

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


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

6 minutes ago, Arlleex said:

достаточно для калокуберского мигания светодиодом

:blum: нас не моймут)))

А вообще, стирается грань между взрослыми МК (с MMU и возможностью запуска win/lin/etc) и маленькими МК с MPU.

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


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

4 hours ago, Мур said:

И что характерно, для H7\F7 такой библиотеки нет!  То-то слабо покупают  Дискавери для топовой модели   

Совсем не топовый он, пока что топовый H753.

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


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

On 3/18/2019 at 1:31 PM, MasterElectric said:

Совсем не топовый он, пока что топовый H753.

Речь о семействе как таковом...

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


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

https://blog.radiotech.kz/category/perevod/    случайно обнаружил..

 

https://blog.radiotech.kz/perevod/adc-perevod-iz-knigi-mastering-stm32/   отсюда зацепил

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


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

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

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

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

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

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

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

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

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

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