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

https://github.com/libopencm3/libopencm3

 

ИМХО хорошая альтернатива стандартной библиотеке от ST и не только.

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


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

https://github.com/libopencm3/libopencm3

 

ИМХО хорошая альтернатива стандартной библиотеки от ST и не только.

TNX!

Посмотрю потом, но все равно спасибо!

 

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


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

Тут есть пользователи этой библиотеки?

 

Первое впечатление - написано заметно приятнее, чем Cube/SPL. Можно читать и не плеваться каждые 15 секунд.

Склонность, правда, авторов к созданию своих велосипедов (почему бы не использовать родные определения регистров?..) несколько удивляет. Ну да ладно...

 

Собственно, у меня задача - сделать USB-Device.

Что-то как-то работает, однако мне сильно не нравится реализация USB без прерываний, опросом. Попытка запихать usbd_poll() в прерывание с разрешением такового пока к результатам не привела...

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


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

https://github.com/libopencm3/libopencm3

 

ИМХО хорошая альтернатива стандартной библиотеке от ST и не только.

 

Детская поделка.

А остальная половина файлов просто пустые.

Аккуратней надо быть с такими ссылками.

 

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


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

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

Первое впечатление - написано заметно приятнее, чем Cube/SPL. Можно читать и не плеваться каждые 15 секунд.

Склонность, правда, авторов к созданию своих велосипедов (почему бы не использовать родные определения регистров?..) несколько удивляет. Ну да ладно...

Абсолютно такое же впечатление и у меня осталось.

 

Детская поделка.

А остальная половина файлов просто пустые.

Аккуратней надо быть с такими ссылками.

Не понял вашего юмора. Да эта либа пока не претендует на полноту. Да есть что пилить. Но уже сейчас глазу гораздо приятнее смотреть на неё нежели на творения ST (SPL).

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


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

голосую за libcm3

Spl еще както было похоже на чтото , со скидкой что первый раз в первый класс.... но куб извините это говнокод. перевожу все проекты на куб а в результате поцесса получается что перевожу на регистры... при попытке воткнуть FreeRTOS обнаружил что куб использует системный таймер - пришлось перекостыливать куб, куда не плюнеш -ПЕРЕКОСТЫЛИВАТЬ.... а че они творят в яко бы дефолтных обработчиках прерываний... за каждый if else не по делу растреливать нада. куб это либа для школоты. единственное что понравилост - включение выключение переферии, макрос через регисты rcc

 

да libcm3 не полная, но... лучше я в этот проект комитить буду то чо недоделано

вобщем каждому по вкусу..

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


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

Собственно, у меня задача - сделать USB-Device.

Что-то как-то работает, однако мне сильно не нравится реализация USB без прерываний, опросом. Попытка запихать usbd_poll() в прерывание с разрешением такового пока к результатам не привела...

у меня та же задача, msc. но поллинг пока устраивает.

уже моск выкипел, определяется стабильно с 3 раза, это секунд 40, затыкается на отдаче scsi готов/неготов... хз как его отловить.

 

Не понял вашего юмора. Да эта либа пока не претендует на полноту. Да есть что пилить. Но уже сейчас глазу гораздо приятнее смотреть на неё нежели на творения ST (SPL).

че там за полнота дожна быть? f3 f4 и хватит. в мелких вообще неясно нахрена эти обертки.

 

голосую за libcm3

 

да libcm3 не полная, но... лучше я в этот проект комитить буду то чо недоделано

вобщем каждому по вкусу..

+100500

там тоже иногда аццки хочется показать, шо так не делают, но в целом нормально.

Только мне непонятно, чего они автогенерированные части, которые инклюдятся, с расширением *.c оставили - это ж бардак..надо каждый файлик перебирать и смотреть что включать в проект а что нет.

куда не плюнеш -ПЕРЕКОСТЫЛИВАТЬ

меняю клок инит через куб на регистры - минимум 2 кб кода уходит. Мама миа!

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

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


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

у меня та же задача, msc. но поллинг пока устраивает.

уже моск выкипел, определяется стабильно с 3 раза

 

Определяется стабильно.

Прерывание тоже нормально работает вот с таким нехитрым кодом:

extern "C"
void OTG_FS_IRQHandler (void)
{
    usbd_poll(usbd_dev);
}

Почему не взлетело сразу, я так и не понял...

 

Сейчас борюсь с граблей - некорректно работает прием по control endpoint.

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


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

голосую за libcm3

Spl еще както было похоже на чтото , со скидкой что первый раз в первый класс.... но куб извините это говнокод. перевожу все проекты на куб а в результате поцесса получается что перевожу на регистры... при попытке воткнуть FreeRTOS обнаружил что куб использует системный таймер - пришлось перекостыливать куб, куда не плюнеш -ПЕРЕКОСТЫЛИВАТЬ.... а че они творят в яко бы дефолтных обработчиках прерываний... за каждый if else не по делу растреливать нада. куб это либа для школоты. единственное что понравилост - включение выключение переферии, макрос через регисты rcc

 

да libcm3 не полная, но... лучше я в этот проект комитить буду то чо недоделано

вобщем каждому по вкусу..

Запускаю свой первый проект на HAL через CubeMX, не соглашусь, что это говнокод. Косяков, конечно, еще довольно много, но в целом все это собирается более менее небольшими усилиями и с FreeRTOS состыкуется хорошо, прерывания с обработкой всех флагов - if else меня не сильно напугали, понятно, что за универсальность приходится платить. На SPL код был оптимальнее, на какую то долю % быстрее и на какие то единицы % копактнее, но делал я его на порядок дольше, а памяти и мегагерцев и так некуда девать.

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


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

Запускаю свой первый проект на HAL через CubeMX, не соглашусь, что это говнокод. Косяков, конечно, еще довольно много, но в целом все это собирается более менее небольшими усилиями и с FreeRTOS состыкуется хорошо, прерывания с обработкой всех флагов - if else меня не сильно напугали, понятно, что за универсальность приходится платить. На SPL код был оптимальнее, на какую то долю % быстрее и на какие то единицы % копактнее, но делал я его на порядок дольше, а памяти и мегагерцев и так некуда девать.

В этом HALе куда ни плюнь while (какой-то бит); то есть затачивать реально подо РТОС они это будут ещё как минимум очень долго.

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


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

А какая связь наличие или отсутствия while (бит) и долготы затачивания под РТОС?

 

В обычном супер лупе - это 100% зло которое заблокирует всю программу. Под РТОС еще есть шансы что задачу вытеснит более приоритетная, если конечно семафор никакой не заткнут. Но с другой стороны если этот бит должен появиться и не появляется - это же нарушение работы железа, с которым может и благо повиснуть и по вочдогу вылететь?

 

Но это мои рассуждения, а что вы хотели сказать? я без стеба, мне интересно.

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


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

А какая связь наличие или отсутствия while (бит) и долготы затачивания под РТОС?

Под Винду вы тоже пишете с while (bit) ?

 

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


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

строго говоря я не под что не пишу while(условие). У меня все ожидания с таймаутами.

 

Но пока я все равно не понял. Хотите сказать что при while(bit) не будет переключаться задачи?

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


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

строго говоря я не под что не пишу while(условие). У меня все ожидания с таймаутами.

 

Но пока я все равно не понял. Хотите сказать что при while(bit) не будет переключаться задачи?

Я хотел сказать ровно то, что сказал. Считать такой стиль годным для РТОС так же странно, как и годным для Винды. Если никто не пишет так даже под Винду, то странно писать так подо РТОС.

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


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

строго говоря я не под что не пишу while(условие). У меня все ожидания с таймаутами.

 

Но пока я все равно не понял. Хотите сказать что при while(bit) не будет переключаться задачи?

 

Да, не будут.

Но к вашему случаю с двумя задачами это не относится.

 

Реальная проблема возникнет когда будет несколько десятков задач и вы перестанете всех их помнить. Хотя думаю и семи хватит.

Тогда while приведут к полному краху всей системы приоритезации.

Скажем во всех задачах есть диагностика. Она пишет лог. А тот лог в свою очередь пишет в файл. А в драйвере файловой системы стоит while да хоть и с таймаутом.

И все, кранты вашей риалтаймности.

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


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

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

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

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

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

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

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

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

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

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