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

35 минут назад, razrab83 сказал:

CubeMX позволяет абстрагироваться от битиков в недрах регистров процессора и больше времени потратить на конечное ПО.

Результаты этого "абстрагирования" регулярно можно наблюдать тут, на форуме: в бестолковых вопросах, неумении найти оптимальное решение задачи с помощью имеющихся средств периферии МК, узком кругозоре на эти средства. Хождение по кубокодерскому пути - это как хождение по узкой тропе, протоптанной в глубоком снегу: как только требуется шаг в сторону от единственного, навязанного вашим кубом способа использования периферии - так и вязнете по уши в простейшей задаче.

И одно дело - абстрагироваться, изучив все эти периферийные регистры, написав макросы/функции под свою задачу (работающие с этими битами). И другое дело - нежелание вообще изучать и просто натыкивание галочек в вашем кубе - авось заработает. И кубокодеры идут по 2-му пути.

Имхо - тех, кто без помощи куба не способен самостоятельно разобраться в конфигурировании периферии под нужды задачи, вообще нельзя называть embedded-программистами.

58 минут назад, razrab83 сказал:

Но с заявлениями "Не используй CubeMX (или подобную тулзу), потому что это путь в некуда... " не соглашусь.

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

А кто-то смог покинуть этот манеж. И начать ходить самостоятельно, без помощи поддерживающих стенок. И он сможет увидеть весь большой и многообразный мир периферии различных МК и использовать его полноценно. А вы об этом многообразии даже никогда не узнаете.  :unknw:

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


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

1 hour ago, razrab83 said:

именно о IDE, т.е. о среде программирования для STM32

Я использую qt-creator. И?

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


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

41 минуту назад, jcxz сказал:

это как хождение по узкой тропе, протоптанной в глубоком снегу

полностью согласен. сборка ядра linux с помощью куба инструментов типа buildroot - это хождение по узкой тропе, протоптанной программистами buildroot в снегу. Что в этом плохого? Шаг в сторону - и велком ту написание драйвера и/или редактирование device tree. Что в этом плохого?

 

41 минуту назад, jcxz сказал:

И одно дело - абстрагироваться, изучив все эти периферийные регистры, написав макросы/функции под свою задачу (работающие с этими битами).

есть программисты, пишущие на Qt, с использованием gcc, с использованием ОС. Они пошли по 2-му пути. Т.е. они абстрагировались от низкого уровня не написав ни одного макроса/функции под свою задачу (работающие с этими битами) и не изучив всех периферийных регистров. Они берут готовый EGLFS и пишут свое ПО не углубляясь в битики регистров gl. Они не пишут свой компилятор, а берут готовый gcc и используют, идут по протоптанной тропе в глубоком снеге. Берут готовую ОС - и пишут своё ПО.

 

41 минуту назад, jcxz сказал:

А вы об этом многообразии даже никогда не узнаете. 

В контексте данной дискуссии не идет речь - "Установить куб и не писать свои велосипеды". Тут речь идет "дайте ссылку на кубИдэ". Но у меня вопрос... чего нет в кубе, в плане настройки периферии? Если покинуть манеж куба, какой мир откроется на стм32? Допустим кубе есть настройка GPIOA, но отсутствует GPIOB, GPIOC и GPIOD? Или в кубе есть один уарт, а в камне их 7?

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

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


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

3 часа назад, razrab83 сказал:

аверно Вы бы писали руками makefile и делали бы сборку отдельно ядра, dt и rootfs. 

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

2 часа назад, jcxz сказал:

Результаты этого "абстрагирования" регулярно можно наблюдать тут, на форуме: в бестолковых вопросах,

Вот и я это писал, но мне почему-то билдрут в ответ всунули)))))))

2 часа назад, razrab83 сказал:

есть программисты, пишущие на Qt, с использованием gcc, с использованием ОС. Они пошли по 2-му пути. Т.е. они абстрагировались от низкого уровня не написав ни одного макроса/функции под свою задачу

Ну значит они пошли по пути "помигаем диодом и покажем окошко с кнопкой" на 4х ядрах по 1Ггц, ибо меньше qt- тормозит. Ну да, вариант, по которому сейчас ровной дорожкой идут быдлокодеры в инете, так, что скоро процы 8го поколения там тормозить будут... Супер! Производители процов и компов аплодируют такому подходу стоя)))

2 часа назад, razrab83 сказал:

Или в кубе есть один уарт, а в камне их 7?

И какие там настройки этого уарта? скорость и 8-n-1, еще и без прерываний может вообще?...

ЗЫ. Как-то задал одному "программисту МК", который из интернетчиков вылез, как он с прерываниями на USB работает, так он говорит - я прерывания вообще не использую, в php и java их же не было никогда)))

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

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


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

4 минуты назад, mantech сказал:

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

Хорошо, пусть это не программирование, это конструктор сборки ОС. Тогда куб - это конструктор периферии. Кто пытается кубом заменить программирование? Есть хотя бы один пример?

Возьмём любую задача по программированию... с потолка... "взять на стм32 получить по UART данные, обработать и  вывести их на экран".  Вы можете взять даташит на мк/lcd и написать свою инициализацию UART, LDC, RCC, GPIO, .... и потом написать программу которая примет данные, обработает и выведет на экран. Это будет программирование. А можете взять куб, натыкать галочек по инициализации периферии. Но конечной программы у вас не будет. Вам нужно написать программу для приема данных, обработку  и вывод. Это и есть программирование. Ни один куб за вас это не сделает. Ни одним кубом вы эту задачу не решите. Кубом вы только сможете сделать инициализацию периферии. Куб не заменяет программирование, куб помогает в программировании.

 

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


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

13 минут назад, razrab83 сказал:

Кубом вы только сможете сделать инициализацию периферии.

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

Плюс к этому напихает своих абстрактных либ, в которых черт ногу сломит.

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

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


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

3 минуты назад, mantech сказал:

Инициализацию по умолчанию, которая может не подойти под вашу задачу

Может быть вы его не умеете готовить? Я такого в кубе не встречал, чтобы например уарт по умолчанию настраивается на 9600, а на 115200 ни как.... или GPIO на out в кубе настраивается, а на in нет. В кубе галочками можно настроить периферию под любую задачу.  Единственное к недостаткам инита от куба можно отнести HAL, т.е. грамоздкость. Но это не недостаток куба, а недостаток хала.

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


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

3 часа назад, razrab83 сказал:

В контексте данной дискуссии не идет речь - "Установить куб и не писать свои велосипеды".

Простой вопрос: Когда потребуется перейти на другой МК, где нет куба, что будете делать?

3 часа назад, razrab83 сказал:

Тут речь идет "дайте ссылку на кубИдэ". Но у меня вопрос... чего нет в кубе, в плане настройки периферии?

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

3 часа назад, razrab83 сказал:

есть программисты, пишущие на Qt, с использованием gcc, с использованием ОС. Они пошли по 2-му пути. Т.е. они абстрагировались от низкого уровня не написав ни одного макроса/функции под свою задачу (работающие с этими битами) и не изучив всех периферийных регистров. Они берут готовый EGLFS и пишут свое ПО не углубляясь в битики регистров gl.

Я это прекрасно вижу на примере современных программ. Например - когда обновляю до последней версии простейшее приложение на своём смартфоне, которое показывает карту местности и несколько значков на ней. И потом при каждом его запуске жду матерясь полминуты-минуту, пока оно загрузится. И это на смартфоне с 4-мя ядрами и несколькими ГГц тактовой!! И весит это приложение - несколько десятков МБ. Время и размер совершенно неадекватные сложности выполняемой задачи.

Понимаю, что авторы "не углублялись" и не изучали ничего. Отсюда и получается такое г$#@о, а не приложение.

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


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

37 минут назад, razrab83 сказал:

Может быть вы его не умеете готовить?

Пару лет назад попробовал на stm32f407, он мне такого наворотил, что я взял старую spl, выдрал из нее неск. функций инита, и забыл все это дело. А потом уже использовал МК другой фирмы и там это вообще "мимо кассы"...

37 минут назад, razrab83 сказал:

Но это не недостаток куба, а недостаток хала.

А это идет комплектом, так что кушайте по-полной )))

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

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


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

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

Простой вопрос: Когда потребуется перейти на другой МК, где нет куба, что будете делать?

Буду осваивать другой МК. Если нет куба, буду осваивать то что есть. Если ни чего нет, буду писать на vi и собирать своим makefile. Если нет компилятора си/с++ - буду осваивать асм. Если нет асма - буду осваивать машинный код. Нужно будет освоить др язык - освою (в своё время перешел на плис, пришлось осваивать верилог. вот был разрыв шаблона, когда за один такт выполнялись одновременно все строчки кода функции). Поставили задачу для ардуино - освоил ардуино. Поставили задачу написать код с TNKernel - (а это ваще кто такой!?) освоил TNKernel. Любые капризы клиента....

Но если сам буду переходить на новый МК, естественно промониторю доступность удобных идэ, кубов, спл/хал..., ос....

11 минут назад, jcxz сказал:

Не могу ответить

ключевой ответ.

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


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

34 минуты назад, razrab83 сказал:

Может быть вы его не умеете готовить? Я такого в кубе не встречал, чтобы например уарт по умолчанию настраивается на 9600, а на 115200 ни как.... или GPIO на out в кубе настраивается, а на in нет. В кубе галочками можно настроить периферию под любую задачу.

Вы так топите за куб, какой он прекрасный. Но здесь на форуме есть куча вопросов от кубокодеров. И ни в одной этой теме я почему-то не видел, чтобы Вы кому подсказали или посоветовали - как описанную проблему правильно решить в кубе. Почему интересно?   :umnik2:  Ведь вы же "умеете его готовить" и утверждаете, что "в кубе галочками можно настроить периферию под любую задачу"...  Так почему одни только голословные утверждения и не подтверждаете практикой?

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


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

1 минуту назад, razrab83 сказал:

Но если сам буду переходить на новый МК, естественно промониторю доступность удобных идэ, кубов, спл/хал..., ос....

Новый в наше время - это скорей всего китайский, если вы не европеец, конечно))) а там никаких кубов нет вообще, хорошо, если вменяемый даташит отыщите))

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


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

2 минуты назад, mantech сказал:

Пару лет назад попробовал на stm32f407, он мне такого наворотил, что я взял старую spl, выдрал из нее неск. функций инита, и забыл все это дело

а я как сказал? я так и сказал - вы не умеете его готвитью ))

2 минуты назад, mantech сказал:

А это идет комплектом, так что кушайте по-полной )))

ну не совсем так.... да, "жирность" кода от это возможно плата за скорость написания ПО. Т.е. поднять UART - пару кликов. Поднять самому урат... разобраться во всех регистрах, а попутно в регистрах клоков и в регистрах прерыванию - тут потратить много времени и стрельнуть себе в ногу. Если влазит в МК жир - то пость будет. Когда у меня в 8к флеша код из 32к не полез.... я в кубе настраивал например клоки - очень удобно в графике, собирал, запускал. Брейкпоинтом перед MX_Clock_Init(). делал один шаг, смотрел какие регистры изменились. Потом менял вызов этой функции на запись в регистры нужного кода, типа

RCC->NaneReg1 = 0x45;

и вперёд. Инит уарта менялся на 2 строки. из 1 кб флеша превращялись в несколько байт. Один профит от куба.

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


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

4 минуты назад, razrab83 сказал:

Буду осваивать другой МК. Если нет куба, буду осваивать то что есть. Если ни чего нет, буду писать на vi и собирать своим makefile. Если нет компилятора си/с++ - буду осваивать асм. Если нет асма - буду осваивать машинный код.

Причём тут компиляторы и языки, на которые вы всё время уводите тему? Разговор про разницу между: а) самостоятельным изучением периферии МК и написанием ПО, работающего с ней; и б) натыкиванием галочек и редактированием всяких callback-ов куба, без понимания что именно эти галочки и callback-и делают.

8 минут назад, razrab83 сказал:

Поставили задачу написать код с TNKernel - (а это ваще кто такой!?) освоил TNKernel. Любые капризы клиента....

Есть очень сильные сомнения, что человек никогда не изучавший самостоятельно периферию и самостоятельно не написавший ни одного драйвера оной (всегда пользовавшийся мурзилками-кубами), когда потребуется сможет что-то там быстро изучить.

Да даже не сомнения - просто НЕ ВЕРЮ! И доказательства этому вижу повсеместно. Как правило такой человек сразу садится в лужу.  :unknw:

Легкость изучения периферии и написания алгоритмов работы с ней, приходит с опытом и с количеством освоенных архитектур. Такого опыта у кубокодера нет по определению.  :unknw:

6 минут назад, razrab83 сказал:

а я как сказал? я так и сказал - вы не умеете его готвитью ))

А вы - умеете? Что-то по форуму, по практическим вопросам по кубу, вас не видно. Где ваши советы, Великого Гуру куба?  :biggrin:

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


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

1 час назад, razrab83 сказал:

Поставили задачу написать код с TNKernel - (а это ваще кто такой!?) освоил TNKernel.

И что вы там освоили? Вот порекомендуйте, что проще в освоении TNKernel или FreeRTOS, например, или любой другой РТОСью, хотя бы пару-тройку пунктов? Не из интернета, а из своего опыта освоения...

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

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


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

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

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

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

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

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

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

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

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

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