реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32F103, Keil RTX и USB
stepper88
сообщение Sep 6 2013, 10:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 20-02-09
Пользователь №: 45 138



Здравствуйте, господа!
Недавно сделали плату с микроконтроллером 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?
Заранее благодарен
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 6 2013, 15:23
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



У вас случаем не это происходит?
Также это почитайте.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
stepper88
сообщение Sep 8 2013, 04:27
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 20-02-09
Пользователь №: 45 138



Цитата(demiurg_spb @ Sep 6 2013, 21:23) *
У вас случаем не это происходит?

Очень похоже, но проверить советы смогу только в понедельник.
Go to the top of the page
 
+Quote Post
stepper88
сообщение Sep 10 2013, 06:25
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 20-02-09
Пользователь №: 45 138



Спасибо! Получилось запустить обоими способами - оставил включение прерываний чере SVC - показалось, что более корректно, хотя не знаю. Но пока будет так.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 10 2013, 07:20
Сообщение #5


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(stepper88 @ Sep 10 2013, 10:25) *
Спасибо!
Всегда пожалуйста)))


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016