|
|
  |
HAL, сколько можно фиксить ? |
|
|
|
Apr 9 2016, 19:42
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(ViKo @ Apr 9 2016, 21:49)  Например, один таймер задает частоту дискретизации, аналоговый вотчдог срабатывает, как синхронизатор, другой таймер высчитывает количество выборок в послезапуске, третий таймер вычисляет время между синхронизацией и выборкой. Все это у меня сделано на STM32F3xx (пока чисто для развлечения), и никаким стандартным HAL-ом я этого не сделал бы, я так думаю. Вот именно. Этот как бы хал убивает идею МК на корню (ну, кроме простейшей гирлянды). Как-то так.
|
|
|
|
|
Apr 9 2016, 23:04
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
HAL ничего не убивает. Это просто еще один инструмент. Убивает, как всегда, глупость, бездумное пользование инструментом. Любой проект состоит из алгоритма и кода, ответственного за периферию. Соответственно, HAL должен облечать применение алгоритма к этой самой перифирии. Очевидно, что те, кто не знает перифирии, наломает дров с любым HAL-ом, а разнообразие доступного железа и его отличия от одой модели к другой и, уж тем более, от одного производителя к другому, осложняют жизнь разработчика и, соответственно, затягивают время на выполнение проекта. Я полагаю, что со временем, периферия будет более и более стандартизоваться... Также очевидно для чего компании разрабатывают HAL-ы: чтобы поиметь и в прямом и переносном смысле пользователя. STM молодцы в этом смысле. HAL сделать проще(индусы дешевле чем technical writers) , чем написать достойный мануал/референс/документ. За десятки лет моей карьеры я не видел много документов хуже, чем STM, причем, английский для меня очень давно не проблема. NXP и Atmel намного лучше в этом смысле. Зато у SТМ есть HAL(очень xочется сказать, что от слова ХАЛтура) и это - все-таки, неплохой референс. Так что, уважаемые коллеги:"думайте сами, решайте сами..."
Сообщение отредактировал pitt - Apr 9 2016, 23:09
--------------------
|
|
|
|
|
Apr 10 2016, 17:07
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Цитата(Огурцов @ Apr 9 2016, 18:08)  hal - это от слова ад, добро пожаловать он имел бы право на жизнь, будь он надстройкой над spl но почему-то st ударило переколбасить spl, перемешав кашу с винегретом - не переваришь HellНет, на самом деле, никакой разницы между HAL и SPL - другая организация дабы как-то соответствовать CMSIS(The ARM® Cortex® Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series). Качество кода при этом никак не улучшилось. Цитата У микрочипа например - в 100 раз хуже его "HAL". Во-первых, я персонально PIC невзлюбил еще очень давно и с тех самых пор дела с ним не имею, а, во-вторых, не вижу смысла в соревновании у кого хуже и во сколько раз. Дело в том, что любой текст можно интерпретировать по-разному, а вот с кодом это уже, практически, не так. Поэтому референс, примеры с кодом- прекрасная подспорка к документации. Конечно плохо, когда и то, и другое - оно, но 2 она все-таки лучше, чем ничего.
Сообщение отредактировал pitt - Apr 10 2016, 17:22
--------------------
|
|
|
|
|
Apr 10 2016, 17:14
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(AleksBak @ Apr 10 2016, 13:49)  А то что SSerge тут пишет про Delay - типа она через 2^32 степени миллисекунд перестанет работать - то во-первых это голословное заявление и просто слова. Не обратили внимания что там у него только слова? Это было в версии 1.0.0, потом они этот баг поправили: Цитата * @file stm32f4xx_hal.c * @author MCD Application Team * @version V1.0.0 * @date 18-February-2014 void HAL_Delay(__IO uint32_t Delay) { uint32_t timingdelay; timingdelay = HAL_GetTick() + Delay; while(HAL_GetTick() < timingdelay) { } } Впрочем, я уже тогда не особенно интересовался новыми версиями HAL.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Apr 10 2016, 18:41
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 25-11-11
Пользователь №: 68 515

|
Цитата(pitt @ Apr 10 2016, 02:04)  Я полагаю, что со временем, периферия будет более и более стандартизоваться... Также очевидно для чего компании разрабатывают HAL-ы: чтобы поиметь и в прямом и переносном смысле пользователя. STM молодцы в этом смысле. HAL сделать проще(индусы дешевле чем technical writers) , чем написать достойный мануал/референс/документ. За десятки лет моей карьеры я не видел много документов хуже, чем STM, причем, английский для меня очень давно не проблема. NXP и Atmel намного лучше в этом смысле. Зато у SТМ есть HAL(очень xочется сказать, что от слова ХАЛтура) и это - все-таки, неплохой референс. Так что, уважаемые коллеги:"думайте сами, решайте сами..." Cогласен с вами полностью...ведь не боги горшки обжигают,то бишь программисты,пишущие код HAL ,от нас ничем не отличаются,и багов там не меряно..ты сравниваешь их код со своим и разбираешься по даташиту,почему их код работает а твой-нет и наоборот...этих людей надо уважать за то,что они тебя развивают и ты не уподобляешься Qt-расам,которые do { do { load(library,internet); }while (! compile(library)); }while(! run_without_bugs(library)); Как говорится,читайте,читайте и еще раз читайте(даташит)
|
|
|
|
|
Apr 10 2016, 20:44
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(scifi @ Apr 10 2016, 23:02)  Есть примеры добротно сделанных проектов. Недавно натыкался на LabTool, к примеру, и там код выглядит вполне прилично. Читайте, развивайтесь. Ага, LabTool, повеселил: Код uint32_t GetTimerCounter() { return 0; } Типичный говнокод.
|
|
|
|
|
Apr 10 2016, 20:49
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Цитата(Огурцов @ Apr 10 2016, 14:39)  я не знаю белорусский А что, имеющий уши, услышит на вопрос:"Who are you?" VIKo Для незнающих белорусский сообщаю, что HAL - произносится как "хал", а Hell - как "хэл".
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|