Отговори на тема  [ 18 мнения ]  Отиди на страница 1, 2  Следваща
бъгчета в STM библиотечките 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение бъгчета в STM библиотечките
често забелязвам разни бъгчета и обикновено ги подминавам, ама ще взема да ги събирам в тая тема...

файл: stm32f2xx_ll_usb.c
функция: HAL_StatusTypeDef USB_FlushTxFifo (USB_OTG_GlobalTypeDef *USBx, uint32_t num )

Код:
USBx->GRSTCTL = ( USB_OTG_GRSTCTL_TXFFLSH |(uint32_t)( num << 5 ));
трабва да е:
USBx->GRSTCTL = ( USB_OTG_GRSTCTL_TXFFLSH |(uint32_t)( num << 6 ));


Пон Юли 14, 2014 2:50 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Май 11, 2005 3:47 pm
Мнения: 534
Мнение Re: бъгчета в STM библиотечките
Евала!


Пон Юли 14, 2014 4:48 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Фев 13, 2013 3:35 pm
Мнения: 1803
Мнение Re: бъгчета в STM библиотечките
В коя среда за програмирване. За кой проц- ако има значение?
И ако има някакво решение- в случая си го писал де. :)


Пон Юли 14, 2014 8:28 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: бъгчета в STM библиотечките
bobihot написа:
В коя среда за програмирване. За кой проц- ако има значение?
И ако има някакво решение- в случая си го писал де. :)


В случая тоя бъг касае всички арм на ST и всички среди. То по принцип библеотечката на ST е обща.
Специализиране са само хедърите на фамилиите.... и там съм мяркал доста "печатни" и copy-paste грешки :D
Нищо сериозно и аз правя подобни грешки... просто като сравнявам моя код с техния и се виждат разликите. А като мине известно време забравям и хайде пак сравнявай с дейташит... Та затова в тая тема ще почна да си водя записки :D


Пон Юли 14, 2014 8:59 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: бъгчета в STM библиотечките
Добра идея. Аз също го правя. :rolleyes:


Пон Юли 14, 2014 10:17 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: бъгчета в STM библиотечките
Извинявам се за офф-топика, ама нека на обобщаваме толкова генерално - тук говорите за StdPeripheral libraries на STM.
Има още няколко подобни по функционалност (хардуерна абстракция за ST) библиотеки, за които това може би не се отнася (например - libopencm3)


Вто Юли 15, 2014 9:09 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: бъгчета в STM библиотечките
Е какъв е проблема, кой каквито бъгове в файловете намира да пише, пък дали ST са го проспали или някой "свободен", какво значение има?

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Вто Юли 15, 2014 9:40 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: бъгчета в STM библиотечките
gicho написа:
тук говорите за StdPeripheral libraries на STM.


ъхъ, което сега го прекръстиха на "STM32Cube Firmware Package"

Цитат:
Има още няколко подобни по функционалност (хардуерна абстракция за ST) библиотеки, за които това може би не се отнася (например - libopencm3)

Не бях чувал за libopencm3... някой ден ще ги разгледам по-подробно... и да това с USB-то не се отнася за тях, най-малкото не виждам да имат USB стек ;-)


Вто Юли 15, 2014 9:53 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: бъгчета в STM библиотечките
То те като цяло нямат почти нищо завършено. Много в начална фаза са нещата, да видим дали ще го добутат до някъде. За добро или лошо, на тоя етап само ST дават пълни библиотеки с цялата условност, че кода им е далеч от перфектния и в много случаи даже е проблемен за ползване.

Относно куба на ST, аз се зарових преди седмица по-дълбоко в комуникационните драйвери (SPI, UART). Лошо. Опитали са се да вдигнат малко нивото на абстракция, опитали са се да прибавят някаква функционалност за вграждане в ОС... ама всичко е един голям турлюгювеч... според мен де. Спрели са някъде в нищото, нито са лоу-левел драйвери, нито истински комуникационни драйвери. Заебах ги засега.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Вто Юли 15, 2014 10:01 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: бъгчета в STM библиотечките
По-завършено и работещо? Примерно HAL-а на чибито има почти всичко, и засега не съм го хващал в издънка.

Цитат:
и да това с USB-то не се отнася за тях, най-малкото не виждам да имат USB стек ;-)

Хм, стек не знам дали имат, но ти си дал бъг в драйвера за работа с USB контролера. Такова си имат, и за мен са много по-добре написани от стм-ските:
"libopencm3\examples\stm32\f4\stm32f4-discovery\usb_cdcacm":
Код:
int main(void)
{
   rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_120MHZ]);

   rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPAEN);
   rcc_peripheral_enable_clock(&RCC_AHB2ENR, RCC_AHB2ENR_OTGFSEN);

   gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE,
         GPIO9 | GPIO11 | GPIO12);
   gpio_set_af(GPIOA, GPIO_AF10, GPIO9 | GPIO11 | GPIO12);

   usbd_init(&otgfs_usb_driver, &dev, &config, usb_strings);
   usbd_register_set_config_callback(cdcacm_set_config);

   while (1)
      usbd_poll();
}


Вто Юли 15, 2014 11:21 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: бъгчета в STM библиотечките
поредната гадинка:

файл: stm32f2xx_ll_usb.c

функция: HAL_StatusTypeDef USB_HC_Halt(USB_OTG_GlobalTypeDef *USBx , uint8_t hc_num)

Код:
  /* Check for space in the request queue to issue the halt. */
  if (((USBx_HC(hc_num)->HCCHAR) & (HCCHAR_CTRL << 18)) || ((USBx_HC(hc_num)->HCCHAR) & (HCCHAR_BULK << 18)))

Тоя if трябва да проверява дали ендпоинта е control или bulk (непериодичен) и ако е така се гледа дали има място в непериодичното фифо, иначе периодичното.... Само че който е писал кода го е написал с оная си работа.
Всъщност не е само тоя if... цялата функция е пълна боза и не отговаря на написаното в чаршафите...

Цитат:
Before disabling a channel, the application must ensure that there is at least one free space
available in the nonperiodic request queue (when disabling a nonperiodic channel) or the
periodic request queue (when disabling a periodic channel).The application can simply
flush the posted requests when the Request queue is full (before disabling the channel), by
programming the OTG_HS_HCCHARx register with the CHDIS bit set to 1, and the CHENA
bit cleared to 0.


Тъй де... те така или иначе гледат грешно фифо, кво значение има дали го гледат "преди" или "след" ;-)


Сря Юли 16, 2014 3:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: бъгчета в STM библиотечките
Ами имам чувството, че всички УСБ стекове са така. Написали нещо, то светнало в контрол панела на бозата и аре пускай на юзера да се мъчи.

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

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Юли 16, 2014 4:15 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: бъгчета в STM библиотечките
мани, тия просто са си го изсмукали от пръстите...
как може в една функция да има 100 бъга. Първо пускат заявка без да знаят дали фифото не е пълно, то и чаршафа е леко подведжащ щото заявка се пуска с вдигане на едно битче когато канала е разрешен, а се флъшва с вдигане на същото битче при забранен канал. Та тия тия са си решили първо да вдигнат битчето без да мислят какво ще стане. После като проверяват кое фифо да гледат бъркат проверката за типа на ендпоинта. И не стига че ще гледат регистри от грешно фифо, ами във варианта с непериодично вземат и грешни битове на регъстъра. Изобщо бозата се лее отвсялъде...
Да не говорим на колко места имат фикснати регистри, а пък чеповете имат по 2 usb-та и се предполага че драйвера трябва уж да работи и с 2-та. То и тва да го нямаше на сума си места имат слийп по 200ms с while(); Aз не знам как ще работи устройството ако някой драйвер си позволява да блокира по 200ms.
Просто ужас, то не случайно повечето изобщо не се занимават с USB особено пък хост... Сега погледнах сорсовете дето имам на чиби-то, на нут-а.. няма, или моите копия са стари? Някой сеща ли се за host на STM32 освен тяхната боза?


Сря Юли 16, 2014 4:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: бъгчета в STM библиотечките
Нута уж има HOST съпорт за STM. Или поне това пише в документацията.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Юли 16, 2014 5:33 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: бъгчета в STM библиотечките
верно бе!
мамка му, хем преди да почна проверявах и видях на главната им страница че споменават само LPC17xx като USB host и реших че няма смисъл да дърпам сорсове :evil:


Сря Юли 16, 2014 5:53 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 18 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни