Перейти к содержанию
    

kuzulis

Новичок
  • Постов

    3
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Заработало! Почему-то надо дефайнить структуры дескрипторов в xdata области памяти, а не в code.. Я хз почему с иаром так.
  2. > то означает "в связке" ? В качестве чего ? означает, что использовать компилятор от IAR 8051. > Побайтно сравните содержимое таблицы где прописаны данные по VID-PID там какая-то хрень с обработкой ф-ции: static BOOL ep0_std_descriptor_proc(void) { BYTE XDATA *pdesc = (BYTE XDATA *)hid_ep0_std_desc_get(); if (pdesc) { SUDPTRH = usb_word_msb_get(pdesc); SUDPTRL = usb_word_lsb_get(pdesc); return TRUE; } return FALSE; } Суть в том, что этот чип имеет некую хардварную фичу, которая упрощает энумерацию USB у-ва. Т.е. не нужно передавать а ЕР0 размер запрашиваемого USB дескриптора, а достаточно только передать в регистры SUDPTRH и SUDPTRL адрес где этот дескриптор начинается, и чип сам передаст его хосту. Я отлаживая светодиодиком вижу, что код заходит сюда, но почему-то хост принимает "пустой" дескриптор... Я пробовал менять реализацию макросов usb_word_{msb|lsb}_get() (типа менять big-endian/little/endian).. Но результат тот же.
  3. Всем привет. Кто-нибудь работал с чипом CY7C68013A (FX2) в связке с IAR EW? Суть в том, что я делаю (по приколу) USB HID Game Pads эмулятор для 10-ти кнопочных джойстиков для NES (от старых добрых 8-битных дендей). Там уже все работает при использовании компиляторов KEIL C51 и SDCC. Но вот, с IAR какая то засада: ОС не может проенумеровать USB дескрипторы устройства. Например, при попытке получить «Device Descriptor», ОС получает какой то мусор: все поля заполнены нулями (вместо содержимого этого дескриптора). Я уже вырвал на себе все волосы, но так и не понял что за ерунда. Может сталкивался кто или знает кого-то кто сталкивался с IAR && FX2 чипом? PS: Гугл не выдает ни одного упоминания о связке IAR && FX2 (CY7C68013A) как я ни искал.. Похоже никто вообще этого не делал в природе, что ли.. :(
×
×
  • Создать...