Easyelectronics.ru

Электроника для всех
Текущее время: 18 июл 2019, 09:59

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 23 янв 2016, 22:43 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2601
Откуда: Санкт-Петербург
vt340 писал(а):
aamonster, а что вы думаете про хидеры с 10000 определений?

Это про какие?
То, что я пока видел из Cube/HAL - не настолько адово, плюс достаточно краткая, но внятная документация по каждому модулю прямо в C-файле (с точки зрения "нормального" программирования - странно, конечно: всегда для пользователя библиотеки основным был хидер, а *.c ему мог и вообще не достаться).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 23 янв 2016, 23:01 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2601
Откуда: Санкт-Петербург
Hold писал(а):
aamonster, это все первоначальные сложности, которые пройдут в течении месяца-двух. Потом наступает ощущение легкой эйфории, типа "охереть сколько они напихали в этот чип", или "как я раньше жил без DMA?". Особенно после AVR. На AVR решительно не захочется возвращаться. Насчет CubeMx: лично я в нем только смотрю как удобнее сделать разводку, да тактирование наглядно видно. HAL, который предлагает Cube не используют, уж слишком много в нем глюков, подробнее можете поискать на форуме. Уровень абстракции еще выше чем у SPL, ST-шники пытаются сделать универсальную либу для всех контроллеров STM, в итоге получается противоречивая штука, кому-то нравится, кому-то нет. SPL все же проще(почти прямое обращение к регистрам), хотя и в нем косяки бывают. Странно, что у вас возникли какие-то сложности с CooCox, как раз таки самая дружественная IDE, все должно работать из коробки, куча примеров рабочих, в нем даже можно выбрать нужную дискавери, чтобы точно все заработало.

Ну, месяц-два для меня могут растянуться на годы :-). Всё же электроникой и МК я занимаюсь в свободное время, а его немного.
Насчёт "охереть, сколько всего напихали" - я-то пришёл не с AVR (ну, в основном: большая доля в паре проектов на AVR на моей совести есть), а с "больших" компьютеров. И эйфория для меня скорей не в навороченной периферии, а в отсутствии необходимости подстраиваться под ОС. Хотя привычки типа "не верь, что одинаковый код выполнится за одинаковое время, ставь таймер или читай часы" остаются. Так что таймеры и DMA - для меня скорей естественны (эх... вспоминаются 90-е, когда для того, чтобы узнать, как оцифровывать стереосигнал с Sound Blaster Pro - пришлось дизассемблировать то ли Fast Tracker, то ли Scream Tracker и смотреть, как это сделано в нём: док не было... и вот там как раз руками DMA настраивался и всё такое - DOS, однако).
Уровень абстракции HAL мне скорей покажется не слишком высоким... В плане абстракции, кстати, порадовала ардуина. Да, они дорого за эту абстракцию заплатили, но там, где можно себе это позволить - "зацепление" (coupling) кода минимально, для понимания каждого модуля не надо смотреть за его пределы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 23 янв 2016, 23:31 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1373
aamonster писал(а):
vt340 писал(а):
aamonster, а что вы думаете про хидеры с 10000 определений?

Это про какие?
То, что я пока видел из Cube/HAL - не настолько адово

Я имел в виду хидеры регистров и полей, по файлу для каждого мк, они там в Cube в каталоге CMSIS лежат.
Другие библиотеки, кроме HAL, их используют как базу
Все библиотеки их используют как базу


Последний раз редактировалось vt340 25 янв 2016, 15:55, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 23 янв 2016, 23:59 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2601
Откуда: Санкт-Петербург
Так это ж CMSIS, это неизбежно. По ощущениям, они нужны в основном для того, чтобы не гадать, что за число 0x42 в юзерском коде.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 00:30 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1373
И вместо этого гадать что за слова USART_CR1_TCIE | USART_CR1_RWU )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 00:43 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2601
Откуда: Санкт-Петербург
vt340, это заметно проще:
1. Сразу видно, что оно от USART (а при некотором опыте, видимо, что-то ещё)
2. Это _однозначный_ идентификатор. И если искать по нему в DataSheet - найдёте именно то, что надо, а не какое-то другое использование числа 42.
А если бы было программирование на приличных языках (со строгой типизацией) и с нормальной библиотекой - ещё и шансы использовать не ту константу были бы невелики. Но это уже мечты, этого и на десктопе нет.
А то завтра, увидев в своём коде 42, полезете в datasheet и обнаружите, что это - ответ на главный вопрос жизни, вселенной и всего такого. Хотя позавчера вы всего-то хотели USART настроить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 07:40 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
aamonster писал(а):
А то завтра, увидев в своём коде 42, полезете в datasheet и обнаружите, что это - ответ на главный вопрос жизни, вселенной и всего такого. Хотя позавчера вы всего-то хотели USART настроить.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 07:48 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
akatenev писал(а):
И только после этого можно переходить к таким "важным" для обучения вещам, как не выстрелить себе в ногу, устанавливая регистры тактирования на специфической архитектуре типа STM32.

Стм32 по умолчанию тактируется от внутреннего генератора и для всего что вы описали точно также можно ничего не делать с тактированием.
Точно также можно сразу же работать с аналоговыми сигналами на простейших настройках АЦП и по простейшему алгоритму.
Операционники имхо лучше жечь все таки внешние, в дип-корпусах :)


Последний раз редактировалось Black Warrior 24 янв 2016, 13:41, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 07:55 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
vt340 писал(а):
И вместо этого гадать что за слова USART_CR1_TCIE | USART_CR1_RWU )

Нет, ну гадать тут особо не надо, но на мой взгляд, такие длинные названия битов только ухудшают восприятие программы.
В AVR это было бы просто TCIE, коротко, ясно, хотя и немного не безопасно :)
Хотя возможно для разных уартов эти биты стоят на разных местах, но тогда это вообще уже издевательство какое то.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 12:01 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
Black Warrior писал(а):
Зато если не подключать множество объемных файлов хидеров, то компиляция идет шустрее на слабом компьютере.
тогда лучше на асме писать, процесс его компиляции еще менее затратен. смешно блин.
Black Warrior писал(а):
В AVR это было бы просто TCIE, коротко, ясно, хотя и немного не безопасно :)
кому ясно? тому, кто всю жизнь задротит на авр? возможно. а обычному человеку не ясно. это то же, если ты в своей программе все переменные называешь произвольной одной буквой - ты всё понимаешь, тебе так быстрее писать, все ок вроде бы. только другой, кто это будет читать и разбираться, проклянет тебя. вот и всё. поэтому USART_CR1_TCIE выглядит адекватнее, а проблемы с написанием многобукф решаются нормальной IDE, которая сама подскажет и подставит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 14:15 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
А какие IDE умеют подсказывать названия битов? Я пользуюсь ИАРом, он умеет подсказывать только название полей структур.

В данном случае что мне не нравится, так это дублирование информации, которое только захламляет программу. Т.е. установка бита будет выглядеть так:
USART_CR1 |= USART_CR1_TCIE;
А когда их надо много разных установить, получается довольно некрасиво и нечитабельно.
Более того, в подобных записях одинаковые длинные участки могут повторяться и три раза (насчет 4-х не уверен :) )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 14:33 
Заглядывает иногда

Зарегистрирован: 15 ноя 2015, 12:11
Сообщения: 172
Pingvin писал(а):
А по сути - какая разница, какой камень

Тем более что они как в калейдоскопе меняются, и что там лет через надцать будет "фетишировать" к моменту вхождения нынешних "учеников" в полный сок, никакая бабка нам не предскажет. Учить, ИМХО, надо фундаментальным понятиям, и вкладывать в голову нужно целостную систему инженерных знаний - чему муторное копание в специфике конкретной платформы будет отвлечением от сути и тратой времени. Что удивляет - пинаем болонскую систему за формализацию и удушение самостоятельности мышления - и тут-же гоним молодняк в стойло эмпирического познания чужих достижений. Какое может быть развитие в познании чужого ширпотреба? Чтобы выигрывать - нужно не следовать чужим правилам и трендам - нужно их задавать самим и вести за собой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 15:28 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4113
Откуда: Кемеровская область, Киселевск
В реальности все будет определяться от поставленной задачи и знаний специалистов которые эту задачу будут решать.
Имею задачу, но не имею возможность.
Имею возможность, но не имею задачи.
Выпьем за то, чтобы они нашли друг друга.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 24 янв 2016, 23:10 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
Black Warrior писал(а):
А какие IDE умеют подсказывать названия битов?
понятия не имею:) но автодополнение есть у многих, хотя бы по имеющимся в проекте словам (это есть даже в просто редакторах текста). т.о., пишешь ты usa и из короткого списка выбираешь что нужно.
Black Warrior писал(а):
В данном случае что мне не нравится, так это дублирование информации, которое только захламляет программу. Т.е. установка бита будет выглядеть так:
USART_CR1 |= USART_CR1_TCIE;
А когда их надо много разных установить, получается довольно некрасиво и нечитабельно.
это дублирование помогает защититься от ошибки, хотя бы визуально. а как лучше? USART_CR1 |= TCIE ? вот это TCIE к чему относится? если ты давно работаешь с камнем, ты поймешь и даже проконтролируешь правильность в уме. а если нет? а если ты ошибся и написал TCIF (допустим, был бы такой, но в другом регистре - с флагами прерываний), компилятор ничего тебе не скажет. кроме того, есть TCIE и у i2c и у кого-то еще.

т.е., я мог бы понять, что это неудобно - много писать, но такой проблемы ведь нет, если писать в чем-то лучше notepad.exe.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 25 янв 2016, 00:15 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1373
Ink писал(а):
т.е., я мог бы понять, что это неудобно - много писать, но такой проблемы ведь нет, если писать в чем-то лучше notepad.exe.

Ink, так дело не в том, что много писать, а в том, что писать много лишнего
А это уже дело принципа - Don't Repeat Yourself )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 25 янв 2016, 00:38 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2601
Откуда: Санкт-Петербург
Лучше - когда есть типы данных, а не только пачка #define (задание констант в препроцессоре - это уродливый ужас из 60-х годов). Это и защита от ошибок (нельзя передать номер порта вместо маски бита), и короткий список автокомплита с первой буквы (нет смысла предлагать то, что по типу не подойдёт).
Но, боюсь, нам пока это не светит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 25 янв 2016, 01:03 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1373
Вот ещё моё любимое на эту тему - lurkmore.to/Индусский код )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 25 янв 2016, 10:48 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3518
Из всего написанного понимаю только междометия. Всякие аббревиатуры я знал наизусть 15 лет назад, а сейчас они никому не нужны, как и вам не будут нужны те, которыми напичкана эта ветка, ибо чип будет слушаться прикосновения пальца, движения зрачка, а некоторые даже - шевеления мысли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 25 янв 2016, 12:42 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
vt340 писал(а):
А это уже дело принципа - Don't Repeat Yourself )
везде нужны разумные пределы, потому что утрированный случай "Don't Repeat Yourself" подхода - write only код. короткий, но хрен что поймешь. если же планируется хоть какая-либо поддержка кода, нужен компромисс. одно дело копипаст целых кусков кода, и другое - чуть больше букв для читаемости.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 26 янв 2016, 18:42 
Заглядывает иногда

Зарегистрирован: 28 мар 2013, 11:01
Сообщения: 86
Цитата:
В данном случае что мне не нравится, так это дублирование информации, которое только захламляет программу. Т.е. установка бита будет выглядеть так:
USART_CR1 |= USART_CR1_TCIE;
А когда их надо много разных установить, получается довольно некрасиво и нечитабельно.


Почему некрасиво? Вполне нормально:
Код:
SPIA_SPICCR |=
        SPIA_SPICCR_CHAR0  |
        SPIA_SPICCR_CHAR1  |
        SPIA_SPICCR_CHAR2  |
        SPIA_SPICCR_SWRESET;


Если нравиться, то можно использовать битовые поля, но это будет чуть менее эффективно с точки зрения производительности (зато автодополнение в нормальном редакторе будет):
Код:
SPIA.SPICCR.CHAR    = 7;
SPIA.SPICCR.SWRESET = 1;


Какие еще альтернативы? Посокращать имена до трех букв - не совсем альтернатива, да и, как уже сказали, будут путаться с другими битами других регистров.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Впечатления новичка от начала использования STM32.
СообщениеДобавлено: 30 янв 2016, 00:50 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2015, 18:12
Сообщения: 26
Black Warrior писал(а):
А какие IDE умеют подсказывать названия битов? Я пользуюсь ИАРом, он умеет подсказывать только название полей структур.

Keil умеет, там нормальное автодополнение.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB