Easyelectronics.ru

Электроника для всех
Текущее время: 27 сен 2020, 06:43

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



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

Начать новую тему Ответить на тему  [ Сообщений: 407 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15, 16, 17  След.
Автор Сообщение
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 00:03 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5883
Все что дают эти ваши потуги на плюсах это бравурное выпячивание , ни читаемости ни экономии оно не даёт.
Очередная попытка натянуть сову на глобус...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 00:08 
Только пришел

Зарегистрирован: 03 сен 2017, 22:47
Сообщения: 27
своё мнение по поводу С++ я высказал здесь (с примерами)
https://ru.files.fm/u/cf4jjthd#/list/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 00:17 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 2077
Практика переноса принципов программирования GHz/GB в MHz/KB не очень себя оправдывает.
Так же как и погоня за эфимерной универсальностью дерганья ногами.
Да и в большинстве случаев управление железом занимает максимум 10% от всего остального (моё личное мнение) и делается один раз. А когда еще переключаешься stm32/emf32/nRF5x/cc25xx - тут уж никакая типизация с шаблонизацией не помогут.

Мнение личное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 00:42 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
дискуссия о выборе языка завершилась несколько страниц назад
пожалуйста, без оффтопиков
сейчас здесь актуально обсуждение применения современного с++
все остальное оффтопик


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 08:03 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
x893 писал(а):
Такое чувство, что дальше описания ног и моргания лампочкой шаблоны не идут.
Ещё вот UART попался.
А где I2C/ADC/DAC/SPI/I2S c/без IRQ/DMA/Polling.

http://xpcc.io/api/modules.html Там, возможно, не все из списка, но бОльшая часть есть.
x893 писал(а):
Какие процессоры поддерживаются в прекрасном мире шаблонизации ?

https://github.com/roboterclubaachen/xpcc там есть список платформ/серий/чипов.
x893 писал(а):
но что-то на github народ по старинке строчит, и не сильно рвется в мир типизации/шаблонизации для управления железом.

Проблема в том, что правильно писать шаблоны куда сложнее, чем битики переставлять. Досиковщина тут не катит и надо очень сильно думать верхней головой. Да и знать слегка (в несколько раз) больше, чем содержится в RM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 08:10 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
x893 писал(а):
Практика переноса принципов программирования GHz/GB в MHz/KB не очень себя оправдывает.

Кто бы еще рассказал, что же входит в эти пресловутые принципы.
x893 писал(а):
Да и в большинстве случаев управление железом занимает максимум 10% от всего остального (моё личное мнение) и делается один раз. А когда еще переключаешься stm32/emf32/nRF5x/cc25xx - тут уж никакая типизация с шаблонизацией не помогут.

Поддержка достаточно разных платформ хоть и сложная задача, но вполне реализуемая.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 09:48 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
Вчера на пробу писал драйвер для tim16 stm32f0
По настройке фактически один в один копипаст с stm8s
Но вот не разобрался как в keil хандлер по вектору описать
Достаточно ли описать функцию void A(void) где A - правильное название функции вектора?
В примерах ничего не нашел кроме этого. Не понятно как компилятор должен понять, что это обработчик для определенного вектора

И с настройкой вопрос - достаточно этого?
- включить тактирование таймера в RCC
- настроить счет таймера и активировать нужное прерывание в CR1 и CR2 таймера
- разрешить глобальные прерывания

В NVIC ничего не нашел, для F0 что то надо разрешать для TIM16?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 11:20 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1949
evsi писал(а):
http://xpcc.io

Посмотрел
Очередная гора родила очередную мышь
Мёртвую

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 11:34 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1272
axill писал(а):
В примерах ничего не нашел кроме этого. Не понятно как компилятор должен понять, что это обработчик для определенного вектора

А компилятору не нужно знать, это не AVR где приходится сохранять и восстанавливать регистры, на ARM часть регистров сохраняется сама, например, R0-R3, а в них по соглашению передаются аргументы функций и когда их нет именно они будут использоваться в качестве временных.

Цитата:
В NVIC ничего не нашел, для F0 что то надо разрешать для TIM16?

Как не нашел, а NVIC_EnableIRQ? NVIC_SetPriority, если нужно.


Последний раз редактировалось Reflector 04 окт 2017, 11:54, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 11:53 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
vt340 писал(а):
Очередная гора родила очередную мышь

О какой мифической горе идет речь?
vt340 писал(а):
Мёртвую

Судя по количеству контрибуторов на гитхабе, графику активности и возрасту проекта, "мертвая", скорее относится к вашему пониманию проекта, а вовсе не к самому проекту.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 12:07 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
В RM360 в разделе NVIC не нашел никаких регистров для настройки
Вы привели имена функций?
Попробую

Кажется разобрался почему у меня хандлер не линковался - надо было обьявить его как extern "C"
Но механизм не понятен
В avr gcc и iar stm8 хандлеры обозначены атрибутами и pragma
Именно это заставляет линковщик их не выбросить и связать с векторами

А здесь все, что нужно - полное соответствие имени?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 12:13 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5883
axill писал(а):
В RM360 в разделе NVIC не нашел никаких регистров для настройки

NVIC это ядро а ядро от ARM со всеми вытекающими.
А все необходимое есть в хэдерах CMSIS.
axill писал(а):
Кажется разобрался почему у меня хандлер не линковался - надо было обьявить его как extern "C"
Но механизм не понятен

Странно что вы не в курсе. Обрамлять хэндлеры при плюсах обычное дело .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 12:20 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
dosikus_2 писал(а):
Странно что вы не в курсе. Обрамлять хэндлеры при плюсах обычное дело .

ошибаетесь
в приведенных в пример выше IAR и gcc это не нужно

С++ отличается от С наименованием объектов для линковки и наличием скрытых аргументов при вызове методов
больше ничем
когда функция помечена как обработчик линковщику без разницы использовано Си-шное именование или С++-сное


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 12:22 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
dosikus_2 писал(а):
NVIC это ядро а ядро от ARM со всеми вытекающими.
А все необходимое есть в хэдерах CMSIS.

понял, спасибо, буду знать где искать
но разве RM360 не должен сожержать в себе 100% всего, что нужно знать для управления F0?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 12:25 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5883
Но RM же описывает периферию.
Скачайте STM32F0xxx Cortex-M0 programming manual
http://www.st.com/content/ccc/resource/ ... 051352.pdf

Там есть многое но не все полный мануал на сайте ARM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 12:31 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1127
Откуда: Германия
axill писал(а):
ошибаетесь
в приведенных в пример выше IAR и gcc это не нужно

С++ отличается от С наименованием объектов для линковки и наличием скрытых аргументов при вызове методов
больше ничем
когда функция помечена как обработчик линковщику без разницы использовано Си-шное именование или С++-сное

Как бы нет.
Не только аргументами. Calling conventions, кажется, это назвается. Они у С и у С++ разные. И в объектники генерятся разные имена функций, потому и не линкуеся.
И не важно какой компилятор, если нет extern "C" вокруг Сишных функций, С++ ный мир эти функции не будет видеть. Внезависимости от компилятора.

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 12:38 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
MasterAlexei писал(а):
Calling conventions, кажется, это назвается. Они у С и у С++ разные. И в объектники генерятся разные имена функций, потому и не линкуеся.

Calling convention у С и С++ одинаковый (обычно параметры пихаются в стек в порядке обратном их объявлению, такая схема используется для поддержки функций с переменным числом параметров). Вот имена - да, разные. В имени, которое генерирует С++, зашита информация о сигнатуре функции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 13:49 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
MasterAlexei писал(а):
[
Как бы нет.
Не только аргументами. Calling conventions, кажется, это назвается. Они у С и у С++ разные. И в объектники генерятся разные имена функций, потому и не линкуеся.
И не важно какой компилятор, если нет extern "C" вокруг Сишных функций, С++ ный мир эти функции не будет видеть. Внезависимости от компилятора.

naming convention это договоренность между тем как имена выглядят в исходном коде и как их видет линковщик
это имеет значения для хандрелов не всегда, в IAR и gcc значения не имеет, можно хандлерами сделать даже статичные методы класса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 14:06 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
для прерываний от TIM16 достаточно указать NVIC_EnableIRQ(TIM16_IRQn) или еще и __enable_irq ()?

и может быть кто то подскажен как убрать красные крестики слева в редакторе keil о мнимых ошибках
она в редакторе многие строки помечает якобы ошибками хотя на самом деле компиляция без ошибок
не возможно различить настоящие ошибки от мнимых
например так метит строки с uint8_t


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 14:31 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1272
axill писал(а):
для прерываний от TIM16 достаточно указать NVIC_EnableIRQ(TIM16_IRQn) или еще и __enable_irq ()?

__enable_irq() нужен только если ты сам предварительно прерывания запрещал.

Цитата:
и может быть кто то подскажен как убрать красные крестики слева в редакторе keil о мнимых ошибках
она в редакторе многие строки помечает якобы ошибками хотя на самом деле компиляция без ошибок
не возможно различить настоящие ошибки от мнимых
например так метит строки с uint8_t

Можно к IDE, или даже к блокноту, прикрутить компилятор с поддержкой С++17, но в самой IDE свой парсер который не понимает и С++11, тут ничего не поделаешь. Естественно дело не только в красных крестах, там весь IntelliSense поломан и во многих случаях не работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 14:47 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
нашел где отключить красные крестики
я так понял, что исправить логику их работы не получится?
фишка полезная, если конечно она верноработает


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 15:03 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5883
"красные крестики" сами исчезнут если ошибки уберете .
В случае с uint8_t скорей всего не подключен stdint.h
И не стоит забывать что что сия проверка не всегда сразу, иногда срабатывает от перекомпиляции иногда при перезапуске проекта.
Чегой-то там не допилино.
Вот как-то так "зеленая стрелочка" ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 16:18 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
насчет крестиков
если бы какой то файл не был подключен то компиляция бы не проходила без ошибок, не так ли?
увы, все компилирцется, но ни сборка ни перегрузка не убирает тучу крестиков на не правильных местах
ругается на многое из того, что внутри проекта описано не в редактируемом файле, а в соседнем
в том числе на мои классы описанные в соседних файлах


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 16:21 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5883
Хоть он и недопилен но всяко лучше клипсины которую по любому каждому придется допиливать под себя.
Не работать, а изучать "функционал" совместно с ритуальными танцами .
Так что не надо ля-ля ...

axill, на крестик наведите, какая там ошибка?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Унифицированная кросс-платформенная библиотека Си
СообщениеДобавлено: 04 окт 2017, 18:33 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5358
dosikus_2 писал(а):
axill, на крестик наведите, какая там ошибка?

для примера на uint8_t - unknown type name
на TIM16 - use of undeclared identifier


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 407 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15, 16, 17  След.


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


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

Сейчас этот форум просматривают: Loco


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

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

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