stepper88 0 6 сентября, 2013 Опубликовано 6 сентября, 2013 · Жалоба Здравствуйте, господа! Недавно сделали плату с микроконтроллером STM32F103, подключив к нему USB и несколько светодиодов. Попробовал на нем запустить немного видоизмененный пример HID от Keil MCBSTM32 - убрал работу с LCD, изменил выводы подключения светодиодов и вывод, к которому подключен транзистор, подтягивающий D+ к плюсу питания. Пример нормально заработал. Захотелось запустить его под RTX. Код, работающий без RTX: int main (void) { /* configure Push Buttons */ RCC->APB2ENR |= ((1 << 2)); /* enable GPIOA clock */ GPIOA->CRL &= ~0x000000F0; /* PA1 clear */ GPIOA->CRL |= 0x00000080; /* PA1 is Floating Input */ GPIOA->ODR |= 0x02; /* PA1 pull-up */ /* configure LEDs */ RCC->APB2ENR |= (1 << 4); /* enable clock for GPIOC */ GPIOC->CRH &= ~0x000FF000; /* PC11, PC12 clear */ GPIOC->CRH |= 0x00033000; /* PC11, PC12 is output */ USB_Init(); /* USB Initialization */ USB_Connect(__TRUE); /* USB Connect */ while (1); /* Loop forever */ } Код с использованием RTX: void init_task (void) { /* configure Push Buttons */ RCC->APB2ENR |= ((1UL << 2) | (1UL << 4)); /* enable GPIOA, GPIOC clock*/ GPIOA->CRL &= ~0x000000F0; /* PA.1 clear */ GPIOA->CRL |= 0x00000040; /* PA.1 is Floating Input */ /* configure LEDs */ RCC->APB2ENR |= (1 << 4); /* enable clock for GPIOC */ GPIOC->CRH &= ~0x000FF000; /* PC11, PC12 clear */ GPIOC->CRH |= 0x00033000; /* PC11, PC12 is output */ USB_Init(); /* USB Initialization */ USB_Connect(__TRUE); /* USB Connect */ while(1); } /*---------------------------------------------------------------------------- MAIN function *----------------------------------------------------------------------------*/ int main (void) { os_sys_init(init_task); } После перевода примера на RTX при настройке прерывания USB контроллера, программа вываливает в HardFault. Увеличение объема стека задачи или heap не помогло. Кто-нибудь решал такую проблему или проще просто использовать RL-USB? Заранее благодарен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 6 сентября, 2013 Опубликовано 6 сентября, 2013 · Жалоба У вас случаем не это происходит? Также это почитайте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stepper88 0 8 сентября, 2013 Опубликовано 8 сентября, 2013 · Жалоба У вас случаем не это происходит? Очень похоже, но проверить советы смогу только в понедельник. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stepper88 0 10 сентября, 2013 Опубликовано 10 сентября, 2013 · Жалоба Спасибо! Получилось запустить обоими способами - оставил включение прерываний чере SVC - показалось, что более корректно, хотя не знаю. Но пока будет так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 10 сентября, 2013 Опубликовано 10 сентября, 2013 · Жалоба Спасибо!Всегда пожалуйста))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться