Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
кто работал с USBhid Bootloader есть странная непонятка (+)
Отправлено
Digital (212.110.150.22) 03 ноября 2011, г. 10:54
В куске кода (с32):
------------------
case GET_DATA:
{
if(!USBHandleBusy(USBInHandle))
{
PacketToPC.Command = GET_DATA;
PacketToPC.Address = PacketFromPC.Address;
PacketToPC.Size = PacketFromPC.Size;
for(i = 0; i < 56; i++)
{
DWORD* p;
DWORD data;
p = ((DWORD*)((PacketFromPC.Address+(i*4))|0x80000000));
data = *p;
data=PacketFromPC.Address;
PacketToPC.Data[i] = data;
}
USBInHandle = USBTxOnePacket(HID_EP,(BYTE*)&PacketToPC.Contents[0],64);
BootState = IdleState;
}
}
------------------
строка "data=PacketFromPC.Address;" введена для проверки связи, каторая 32 бит адрес от PC передает на PC в виде 32 бит данных. В таком виде все работает, однако если строку убрать (как в исходнике), при попытке чтения некоторых адресов, отваливается USB device(виснет) и USB host driver, востановить связь можно перезагрузкой PC проги и ресетом девйса.
Составить ответ | Вернуться на конференцию
Ответы