|
RL-ARM USB Device, Проблемы конфигурации |
|
|
|
May 30 2012, 04:15
|
Участник

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

|
Добрый день, коллеги!
Мучаю пример от Keil конфигурации ОСРВ RL-ARM для USB Device класса HID на отладочной плате MCB1700. Как только добавляю еще один процесс в ОСРВ, она сразу же перестает работать. А конкретнее, только разкомментирую строчки, где создается task KEYREAD и само описание KEYREAD, на дисплее даже надписи не высвечиваются, а также компьютер не видит USB устройство. Подскажите, с чем это может быть связано?
/*---------------------------------------------------------------------------- * RL-ARM - USB *---------------------------------------------------------------------------- * Name: USBD_Demo.c * Purpose: USB Device Demonstration * Rev.: V4.20 *---------------------------------------------------------------------------- * This code is part of the RealView Run-Time Library. * Copyright © 2004-2011 KEIL - An ARM Company. All rights reserved. *---------------------------------------------------------------------------*/
#include <RTL.h> #include <rl_usb.h> #include "GLCD.h" #include <LPC17xx.h> #include "KBD.h" #include "stdio.h"
OS_TID t_keyread; /* assigned task id of task: keyread */
__task void keyread (void);
/*---------------------------------------------------------------------------- * Task 1 'init': Initialize *---------------------------------------------------------------------------*/
__task void init (void) { GLCD_Init (); GLCD_Clear (Blue); GLCD_SetBackColor (Blue); GLCD_SetTextColor (White); GLCD_DisplayString (4, 0, 1, " USB HID "); GLCD_DisplayString (5, 0, 1, " DRM Manage "); KBD_Init ();
os_tsk_prio_self(100); usbd_init(); /* USB Device Initialization */ usbd_connect(__TRUE); /* USB Device Connect */ // t_keyread = os_tsk_create (keyread,0); /* start keyread task */
os_tsk_delete_self(); /* Terminate Task */ }
int main (void) {
os_sys_init(init); /* Init RTX and start 'init' */ }
///*---------------------------------------------------------------------------- // * Task 6 'keyread' // *---------------------------------------------------------------------------*/ __task void keyread (void) { uint32_t kbd_val; short AD_value; kbd_val = (LPC_GPIO1->FIOPIN >> 20) & KBD_MASK; while (1) { /* endless loop */
if (KBD_Get () !=0x079) { AD_value = kbd_val; printf ("AD value = 0x%03x\n\r",AD_value); } // os_dly_wait (5); /* wait for timeout: 5 ticks */ } }
|
|
|
|
|
 |
Ответов
|
Jun 4 2012, 08:47
|
Участник

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

|
Разносторонние ответы... Ладно, спасибо, буду дальше разбираться
|
|
|
|
|
Jun 4 2012, 09:08
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(ViKo @ Jun 4 2012, 13:04)  Флаги сама ОС сбрасывает после того, как задача их дождалась. Поэтому сбрасывать их нужно в какой-то особой ситуации, если почему-то уже стали не нужны. здесь может возникнуть ситуация, когда одна задача постоянно генерит эти флаги, а вторая ловит но, наверное, проще в генерящей задаче проверять, ждет ли кто-то флаг, и если да, то выставлять его
|
|
|
|
|
Jun 4 2012, 09:31
|
Участник

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

|
Цитата(toweroff @ Jun 4 2012, 16:08)  здесь может возникнуть ситуация, когда одна задача постоянно генерит эти флаги, а вторая ловит но, наверное, проще в генерящей задаче проверять, ждет ли кто-то флаг, и если да, то выставлять его А как проверить в генерящей задаче ждет ли кто то флаг?
|
|
|
|
Сообщений в этой теме
cinema_effect RL-ARM USB Device May 30 2012, 04:15 cinema_effect И еще один вопрос, знаете ли Вы программы-аналоги ... May 30 2012, 06:03 toweroff Цитата(cinema_effect @ May 30 2012, 10:03... May 30 2012, 06:28  cinema_effect Цитата(toweroff @ May 30 2012, 13:28) на ... May 30 2012, 06:48   toweroff Цитата(cinema_effect @ May 30 2012, 10:48... May 30 2012, 07:15    cinema_effect Цитата(toweroff @ May 30 2012, 14:15) rut... May 30 2012, 08:46 Shein Какие приоритеты у остальных задач, созданных в си... May 30 2012, 18:30 cinema_effect ЦитатаЧто значит ничего не работает? До какого мес... May 31 2012, 04:23 Shein Цитата(cinema_effect @ May 31 2012, 07:23... Jun 1 2012, 07:00 cinema_effect Вроде разобрался тут с RTX, переписал task'и и... Jun 1 2012, 10:09 toweroff а fputc реализован для uart? Jun 1 2012, 16:11 Shein Как уже написали выше, для работы printf нужно опр... Jun 2 2012, 11:18  cinema_effect Цитата(Shein @ Jun 2 2012, 18:18) Как уже... Jun 4 2012, 07:12   toweroff Цитата(cinema_effect @ Jun 4 2012, 11:12)... Jun 4 2012, 07:44   ViKo Цитата(cinema_effect @ Jun 4 2012, 10:12)... Jun 4 2012, 08:11   ViKo Цитата(toweroff @ Jun 4 2012, 12:08) здес... Jun 4 2012, 09:24    toweroff Цитата(cinema_effect @ Jun 4 2012, 13:31)... Jun 4 2012, 10:05     cinema_effect Цитата(toweroff @ Jun 4 2012, 17:05) можн... Jun 4 2012, 10:07 ViKo Для синхронизации двух задач можно (нужно) использ... Jun 4 2012, 10:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|