Easyelectronics.ru

Электроника для всех
Текущее время: 23 сен 2020, 13:58

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 00:05 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Ну что, попробовал я создать проект в IAR, подключил к нему скачанную с сайта STMicroelectronics либу I2C, предварительно поместив файлы stm8l15x_i2c.c и stm8l15x_i2c.h в папку проекта. Попробовал скомпилировать и тут же получил ошибку - не найден файл "stm8l15x.h". Нашел такой файл в папках с примерами в IAR, добавил его в директорию проекта, приинклудил в файле main.c. Получил ошибку Fatal Error[Pe035]: #error directive: "Please select first the target STM8L device used in your application (in stm8l15x.h file)" C:\STM8\IAR\I2Clib\stm8l15x.h 53. Даже интересно стало, чего же дальше будет? Либа в либе, а в ней, возможно еще, и еще. И в каждой что-то править и подключать??? Через час забывши что и где делал, и не будучи в полной уверенности что сделал правильно... Фигасе, простота! Где тут смайлик с вытаращенными глазами?


Последний раз редактировалось Microlightavr 27 май 2020, 00:08, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 00:08 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Вот, и правда: еррату я забыл. В STM8 с I2C не очень хорошо. В STM32F103 чуть получше, но все-таки надежней взять более свежие чипы, где баги исправлены.
Цитата:
Что же не оформили свой труд в виде отдельной библиотеки?

Потому что это - совершенно бесполезно! Все равно придется много чего дописывать и переделывать под каждую конкретную задачу. Не вижу смысла.
Кроме того, использование библиотеки подразумевает, что ее сначала соберут и установят... Тут абдурино-way не прокатит!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 00:11 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Заранее извиняюсь за скоропалительные выводы, но мне уже кажется, что либа тогда хороша, когда ее автор берет тебя за руку и водит тебя по всем ее закоулкам. Правит чего нужно когда тебе надо, корректирует под твои нужды. Без чего заблудиться в лабиринтах чужого кода раз плюнуть. А такое возможно только за денежку, я так понимаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 00:48 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
В отличие от компьютерного ПО, микроконтроллер просто не имеет таких вычислительных ресурсов! А еще одной проблемой является то, что обычно для МК способы использования периферии очень сильно разнятся.
Поэтому для МК оформлять куски аппаратно зависимого кода в виде библиотек нет смысла: быстрей будет с нуля написать нужный код, пользуясь RM+datasheet+errata и сниппетами! Кроме того, такой код не будет иметь оверхеда, как в случае с библиотекой (скажем, чтобы элементарный USART реализовать как библиотеку, придется намудохать туда уйму левых функций для установки разных параметров, в итоге вместо пары десятков байт функционал раздуется на килобайты, да еще и тормозить будет).

Вот аппаратно-независимые вещи можно было бы оформить как библиотеку. Но тут встает злая реальность и дает автору пинка: никто не использует МК для сложных однообразных расчетов! Скажем, если в квадрокоптере нужно посчитать кватернионы, то вряд ли они где еще понадобятся.
Табулировать же тригонометрию — элементарно. Думаю, у каждого есть свой метод. Скажем, я основываюсь на неравномерной таблице по X (для сохранения точности по Y), а поиск нужного отрезка выполняю дихотомией, после чего тупой линейной интерполяцией вычисляю нужное значение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 02:09 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Однако! А сдается мне, что господа отговаривавшие меня от STM8 были правы. Почитал я эррату на свой STM8L15x в разделе "I2C peripheral limitations", и что-то мне STM32 внезапно стали так симпатичны, так привлекательны... Если, конечно, в их errata не похлеще чего найдется.

Разница в цене между 8L151 и 32F103 невелика. И примеров для последних в интернетах куда больше, чем для STM8. Пойду-ка я 103_й в макетку прилаживать, да.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 02:27 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Не надо 103. Это - первый блин комом!
Лучше начать с STM32F042 или 072 (если на али брать). По баксу штучка, еррата не такая толстая, зато плюшек — вагон!
А потом можно на Cortex-M4 переходить, если понадобится математика. А Cortex-M3 от ST лучше не трогать особо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 02:33 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
У мну сейчас только F103 и F303 есть.

А как у STM32 с совместимостью поколений? Сильно переучиваться нужно при переходе на более свежие МК?

Вот нашел какие-то STM32F042K6T6 32-ногие. https://aliexpress.ru/item/400011815042 ... web201603_ Вполне паябельно, и ног мне пока что достаточно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 02:50 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Ну, по возможности они стараются регистры обзывать одинаково. Сниппеты от STM32F0 с минимальным причесоном подходят под F1. USB немного отличается.
А вот переход на Cortex-M4 — по сути уже как на новые МК...
F042 — классные, я на них кой-каких вещей понаделал уже. Последнее — USB-CAN трансивер (правда, изначально разрабатывался на 072 - они дешевле на алиэкспрессе, но в данном случае вообще разницы нет). Прелесть 0х2 в том, что только у них (возможно, есть и в M4, но я с ними не работал) USB и CAN могут работать одновременно!
Советую, кстати, если нулевку брать, то брать 072 — там повеселей: и флеша больше, и еще кой-какие плюшки есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 02:54 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6946
"I2C .... Разница в цене между 8L151 и 32F103 невелика"
Сейчас начнется ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 27 май 2020, 08:02 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1549
Microlightavr писал(а):
У мну сейчас только F103 и F303 есть.
F303 просто шикарный камень. На нём и начинайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 28 май 2020, 21:55 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
На нем и начал, на F303.

Как думаете, чем я занимался последние 36 часов? Заставлял мигать светодиод в IAR посредством CubeMX и HAL... Мигнул... потратив пару килобайт памяти и кучу нервов. Сцук, в MPLAB с XC8 (но без библиотек, с одним только примитивным конфигуратором инициализации) у меня в этот объем памяти и нервных клеток довольно таки сложные проекты помещались, целиком.

Большую часть прошедших полутора суток потратил на поиск примера "Хуйло Хелло Ворлд" для полных чайников. Примеров в интернетах масса, только подавляющее их число для устаревших IDE, которые даже мордой лица совсем непохожи на текущие версии ПО скачанного мною в последние дни. Подозреваю, там не только интерфейсы, но и пути различаются, и наименования генерируемых файлов, и нехило. Так, что я до самой пенсии буду ковыряться в настройках и в директориях зажигая светодиод.

Но, нашел таки одно, более или менее актуальное руководство. Ну как, руководство... автор пишет: жмете это, потом берете то и копируете отсюда сюда, затем ищете тут и там вам будет щастье (нужная функция, которую будете вызывать из майна). Почему брать именно оттуда и вставлять туда, аффтар не поясняет. Как понять, в какие именно файлы и зачем нужно лезть, тоже не пишет. Подозреваю, он сам с трудом понимает что и зачем.

Но, худо-бедно, проект я все же создал, скомпилировал, и светодиод у меня замигал. Не успев получить удовольствие от содеянного, я развернул все (или почти все) файлы в меню проекта и при**ел, насчитав их более двух сотен. Чтобы найти дефайны, которыми я в Кубе обозвал порт и вывод МК, нужно скушать кучку дерьма в файле main.h в виде вереницы пустых комментов созданных Кубом. Файл stm32f3xx_hal_gpio.c еще хлеще, столько хлама я у себя на монтажном столе в жизни не видел, (а его там просто немеряно, отвертку можно неделю искать). Чтобы в этой горе мусора найти что-то нужное, это сколько же портянок текста через свои органы зрения нужно пропустить? Зато теперь я понимаю, почему молодые программеры носят очки с линзами толщиной в палец...

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

Вот, значит, пойду-ка я курить RM и DS на F3. Убедился, что выбранная мною ранее стратегия написания своих функций и часто используемых кусков кода для используемых МК была правильной.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 28 май 2020, 23:11 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6946
Ну что, значит вопрос закрыт?
"Как писать программы с использованием библиотек?"
Никак.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 29 май 2020, 00:18 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
u37 писал(а):
Ну что, значит вопрос закрыт?

Не совсем. Совершенно случайно нажал в IAR кнопочку CMSIS, и вылезло то, что я видел раньше в Кейл. И даже чего-то там настраивал. Гугл мне сказал, что CMSIS хорошая весьч, которая совсем не похожа на SPL, Куб и т.п., хотя на первый взгляд стоит с ними в одном ряду. Ну вот я решил ее потыкать, а тут вдруг оказалось, что в ней про STM ни слова ни полслова. В той CMSIS которая уже прикручена к IAR ARM. Я не растерялся, пошел на сайт STMElectronix, и скачал оттуда en.stm32cubef3.zip который после распаковки стал вот этим STM32Cube_FW_F3_V1.11.0, в котором все есть за STM32. Осталось только придумать, как заменить этим то, что уже вкорячено в IAR.

P.S. В ходе изысканий инфы по либам я находил ветки на форумах и темы в блогах, где люди описывали свой опыт в десятках версий самых разных библиотек, сред, IDE, редакторов, компиляторов и бог знает чего еще. Я реально не понимаю, когда они успевают что-то кодить. У меня такое чувство, что все их время без остатка уходит на изучение косяков опробованных ими библиотек и программного обеспечения...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 29 май 2020, 02:15 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 2061
Мозг не пропьешь.
Со временем вопросы пропадут и будет просветление.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 29 май 2020, 08:42 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1549
Microlightavr писал(а):
Так, что я до самой пенсии буду ковыряться в настройках и в директориях зажигая светодиод.
Понаписали то, понаписали :) Дарю.

Iar, Keil, VisualGDB и просто make.
Вложение:
F303-LedBlink.7z [159.34 Кб]
Скачиваний: 20


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


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


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

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


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

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

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