Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 20.01.2024, 11:25  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

ankirus, а что, руками написать Makefile - не судьба?
Реклама:
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 20.01.2024, 13:13  
ankirus
Частый гость
 
Регистрация: 30.05.2009
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
ankirus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

штук так под тридцать субдиректорий
__________________
"При отрыве шестой ноги таракан теряет слух"
ankirus вне форума  
Непрочитано 20.01.2024, 13:43  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от ankirus Посмотреть сообщение
тридцать субдиректорий
Вот не поверю, что они все используются! Из внешних поддиректорий нужны только CMSIS, стартап и линкер. Ну, кто-то может свои наработки в отдельное дерево выделить. А больше и нечего! Откуда там 30?
Но даже такое можно средствами make провернуть, не переписывая все вручную. Или башем сгенерить ☺
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 20.01.2024, 13:48  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,509
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Если имеете ввиду именно CubeMX, а не CubeIDE, то генератор конфигурации CubeMX генерирует код на языке Си. Но сам С++ запросто переваривает язык Си, ведь это его прямой предок. Поэтому, поместив сгенерированные исходники в проект С++ и подключив их, прописав пути до папок, всё должно получиться.

С другой стороны, неясно, какие сложности вызывает стандартная библиотека шаблонов STL? Одно с другим совсем не связано. Куб генерирует конфигурацию МК, а STL является частью (дополнением) языка С++. И из этого дополнения используются такие инсрументы, как вектор, контейнер, циклы на основе диапазона и прочее тому подобное. Использование этих инструментов требует подключения заголовочных файлов от них самих. Например, если создаете вектор, нужно подключить #include ‹vector›, а так же не забывать, что инструментарий векторов находится в пространстве имен std, значит надо его using namespase std; или же std::vectcor ...
NewWriter вне форума  
Непрочитано 22.01.2024, 20:55  
ankirus
Частый гость
 
Регистрация: 30.05.2009
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
ankirus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 0
Размер:	24.6 Кб
ID:	179701

Спасибо. Коротко, суть проблемы в том, что в сгенерированный CUBERMX сишный код IAR не хочет добавлять С++, несмотря на правильное расширение cpp, hpp и несмотря на опцию "auto" на вклaдке compiller-›Language1 , и независимо, что стоит в выпадaющем меню Library: Libc++ или что-то еще. IAR установлен - 930. Подскажите, у меня одного так? Ничего не нашел в инете на эту тему.
Если начинать новый проект в IARe через меню Project -› create new project, то c c++ все нормально, даже отлично, но тогда инициализацию CUBEMX никак не получается использовать - вылезают разные ошибки компиляции.
ankirus вне форума  
Непрочитано 19.02.2024, 16:39  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,330
Сказал спасибо: 85
Сказали Спасибо 596 раз(а) в 361 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Возник вопрос по передаче данных через IN endpoint.
Если передаю значение меньше или равное размеру EP - все ок (ZLP тоже не забываю, если размер данных равен размеру EP).
Но возникает проблема с IN через EP типа Interrupt, если размер данных более чем размер EP. Хост (Win10) принимает данные не цельным куском, а кусками по размеру EP. Т.е., если размер EP 8 байт, то пакет данных 12 байт принимается как два куска - по 8 и 4 байта.
С EP типа Bulk такой проблемы нет - данные видятся хостом как цельный кусок.
Куда копать?

Или транзакция USB interrupt может состоять только из одного пакета? Прямого указания на это в интернетах не нашел. Нашел только, что максимальный размер пакета для interrupt USB FullSpeed 64 байта.

Последний раз редактировалось pambaru; 19.02.2024 в 17:19.
pambaru вне форума  
Непрочитано 19.02.2024, 18:22  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,330
Сказал спасибо: 85
Сказали Спасибо 596 раз(а) в 361 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Итак, вроде нашел ответ. Если кому интересно:
Источник: "Universal Serial Bus Specification, Revision 2.0".

В главе "5.7.3 Interrupt Transfer Packet Size Constraints" читаем:
Цитата:
An endpoint must always transmit data payloads with a data field less than or equal to the endpoint’s wMaxPacketSize value.
A device can move data via an interrupt pipe that is larger than wMaxPacketSize.
A software client can accept this data via an IRP for the interrupt transfer that requires multiple bus
transactions without requiring an IRP-complete notification per transaction. This can be achieved by specifying a buffer that can hold the desired data size. The size of the buffer is a multiple of wMaxPacketSize with some remainder. The endpoint must transfer each transaction except the last as
wMaxPacketSize and the last transaction is the remainder. The multiple data transactions are moved over
the bus at the period established for the pipe.
When an interrupt transfer involves more data than can fit in one data payload of the currently established
maximum size, all data payloads are required to be maximum-sized except for the last data payload, which
will contain the remaining data. An interrupt transfer is complete when the endpoint does one of the
following:
• Has transferred exactly the amount of data expected
• Transfers a packet with a payload size less than wMaxPacketSize or transfers a zero-length packet
When an interrupt transfer is complete, the Host Controller retires the current IRP and advances to the next IRP.
В главе: "5.8.3 Bulk Transfer Packet Size Constraints" читаем:
Цитата:
An endpoint must always transmit data payloads with a data field less than or equal to the endpoint’s reported wMaxPacketSize value. When a bulk IRP involves more data than can fit in one maximum-sized data payload, all data payloads are required to be maximum size except for the last data payload, which will contain the remaining data. A bulk transfer is complete when the endpoint does one of the following:

• Has transferred exactly the amount of data expected
• Transfers a packet with a payload size less than wMaxPacketSize or transfers a zero-length packet

When a bulk transfer is complete, the Host Controller retires the current IRP and advances to the next IRP.
Т.е., "они оба могут (С)".

Тогда почему же не прокатывало у меня? Отвечаю:

Цитата:
This can be achieved by specifying a buffer that can hold the desired data size. The size of the buffer is a multiple of wMaxPacketSize with some remainder.
Т.е. в запросе должен быть соответствующий размер буфера.
А в моем случае, т.к. софтина сторонняя и я не управляю размером буфера, софт выделял размер буфера размером именно wMaxPacketSize (это отображалось в сниффере, но я не обратил внимания). Поэтому за одну транзакцию считывалось максимум wMaxPacketSize.
Может для кого-то будет полезной инфа.
pambaru вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 01:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot