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

 
 
> RL-ARM USB Device, Проблемы конфигурации
cinema_effect
сообщение May 30 2012, 04:15
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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 */
}
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
cinema_effect
сообщение Jun 4 2012, 08:47
Сообщение #2


Участник
*

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



Разносторонние ответы... Ладно, спасибо, буду дальше разбираться
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 4 2012, 09:04
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(cinema_effect @ Jun 4 2012, 11:47) *
Разносторонние ответы... Ладно, спасибо, буду дальше разбираться

Флаги сама ОС сбрасывает после того, как задача их дождалась.
Поэтому сбрасывать их нужно в какой-то особой ситуации, если почему-то уже стали не нужны.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 4 2012, 09:08
Сообщение #4


Гуру
******

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



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

здесь может возникнуть ситуация, когда одна задача постоянно генерит эти флаги, а вторая ловит
но, наверное, проще в генерящей задаче проверять, ждет ли кто-то флаг, и если да, то выставлять его
Go to the top of the page
 
+Quote Post
cinema_effect
сообщение Jun 4 2012, 09:31
Сообщение #5


Участник
*

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



Цитата(toweroff @ Jun 4 2012, 16:08) *
здесь может возникнуть ситуация, когда одна задача постоянно генерит эти флаги, а вторая ловит
но, наверное, проще в генерящей задаче проверять, ждет ли кто-то флаг, и если да, то выставлять его

А как проверить в генерящей задаче ждет ли кто то флаг?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 30th June 2025 - 11:37
Рейтинг@Mail.ru


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