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

Kruftin

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о Kruftin

  • Звание
    Частый гость
    Частый гость

Информация

  • Город
    Array
  1. Просто Си компилятор, который соответствовал ассемблеру у нас дописывается и выйдет в конце этого кода. Тогда и соберём coremark. Пока все работы направлены на выпуск нового процессора P2 ну и создаём для него отладочную плату, чтобы к выходу процессора она уже была. Вся фишка в том, что программа у нас автоматически на аппаратном уровне уйдёт по клеткам(пользователю не нужно что-то очень особенное делать для распараллеливания). Ну и результат операций хранится в коммутаторе, а не в регистрах, хотя регистры у нас тоже имеются(т.е. мы ссылаемся с помощью значка @ на результат операции). Клетки могут выполнять каждая свою задачу или объединяться по две клетки(например) на одну задачу, остальные две каждая на свои задачи и всё это без перезагрузки процессора(это и есть реконфигурация). Приведу простой пример кода на ассемблере (хотя Си89 у нас тоже есть, правда не оптимальный): paragraph: getl 1 ;положим в коммутатор число 1 getl 2 ;положим в коммутатор число 2 getl 3 ;положим в коммутатор число 3 getl 4 ;положим в коммутатор число 4 addl @4, @3;выполним операцию 1 + 2 (сложим команду идущую 4 позиции назад с командой из 3-й позиции относительно текущей операции) addl @3, @2 ;выполним операцию 3 + 4 (сложим команду идущую 3 позиции назад с командой из 2-й позиции относительно текущей операции) wrl @2, 0x40000; сохраним результат в памяти по адресу 0x40000 wrl @2, 0x40004; сохраним результат в памяти по адресу 0x40004 complete paragraph: getl 1 ;уйдёт в клетку 0 getl 2 ;уйдёт в клетку 1 getl 3 ;уйдёт в клетку 2 getl 4 ;уйдёт в клетку 3 addl @4, @3;уйдёт в клетку 0 addl @3, @2;уйдёт в клетку 1 wrl @2, 0x40000;уйдёт в клетку 2 wrl @2, 0x40004;уйдёт в клетку 3 complete Более подробно тут http://multiclet.com/community/projects/ex...%83%D1%80%D1%8B
  2. Т.е. получил я от хоста 00 00 80 06 00 01 00 00 40 этим хост запрашивает GET_DESCRIPTOR_DEVICE и указывает что хост хочет увидеть 0x40, т.е. 64 байта дескриптора. Дескриптор устройства + Дескриптор Конфигурации + Дескриптор строки не дадут 64 байта, хотя может это максимальный размер. Ну т.е по логике после запроса хоста я просто сразу же кидаю ему все дескрипторы и после этого анализирую завершение транзакции и всё жду когда он определит моё устройство как флешку. Аппаратный анализатор наверно дорого стоит.
  3. Я Агурова итак читаю. В процессоре имеется регистр передачи конечной точки, который вмещает один байт и глубиной 64 байта. Т.е. под пакетом как я понимаю и подразумевается посылка одного байта. Все данные передаются через нулевую конечную точку. И ещё вопрос должен ли USB сниффер ловить все передачи с устройства? Распишу подробнее алгоритм: 1)включил usb контроллер 2)выставил в каждой конечной точке включение и готовность конечной точки к ответу на запрос 3)глобально разрешил работы конечных точек, задал скорость 1,5 Мбит/с 4)дождался выставления бита завершения транзакции, считал последовательно байты от хоста после каждого чтения дожидаясь выставления бита завершения транзакции. 5)после получения запроса - конфигурационного пакета начинаю посылать данные к хосту, пробовал послать и по 1 байту и несколько - безрезультатно. Подскажите кто пользовался процессорами с USB какой там порядок посылки ответного дескриптора.
  4. Здравствуйте! Не подскажете как должно происходить подтверждение данных отправленных device устройством на хост. Т.е. хост прислал запрос на дескриптор устройства, далее необходимо послать этот дескриптор. Так вот вопрос: хост отвечает ACK на каждый байт принятый от устройства или только на весь дескриптор? Т.е. получил я от хоста 00 00 80 06 00 01 00 00 40, что по байтам мне ему послать, т.е. сразу начать посылку элементов дескриптора?
  5. НПОА? ЛС у вас переполнено похоже
  6. А посылать данные на девайс, подключенный к ПК посредством USB снифферов нельзя?
  7. Добрый день! Подскажите пожалуйста что нужно сделать, чтобы при вводе в браузере определённого ip адреса с процессора приходила страничка с текстом. Т.е. если посылать в цикле ethernet frame с ethernet-type IPv4 и в заголовке TCP (внутри данных IP пакета) указать порт 80. Кадр с мак адресом ПК и IP. Т.е. заголовки TCP посылаются в поле данных пакета IPv4? Если есть возможность опишите механизм действий подробнее, чтобы по запросу в браузере сделать страничку данных с процессора с Ethernet. Без использования реализации TCP\IP стека такой простой тест можно сделать?
  8. Ещё вопрос по многоблочному чтению: после посылки команды CMD12 на завершение чтения приходит ответ 0х00, а затем на линии держится высокий уровень, т.е. нет ожидания в один байт и сигнала busy, но всё считалось и верно. Может кто сталкивался с этим?
  9. Вопрос в следующем: при записи по SPI я пишу несколько мегабайт и на пути могут встретиться бэд кластеры, то они будут проигнорированы(заменены контроллером внутри микроСД на рабочие) или просто запись в них не пройдёт и надо для всех данных включить CRC?
  10. Карточка на 2Гб почему-то совсем не откликается на CMD0 ( Всё работает :yeah: была ошибка в коде...
  11. Я делаю следующее: 1)Послал команду CMD24( в качестве ответа получил нули см пункты 2-3) 2)Послал 0xFF 2 раза 3)Послал token 0xFE 5)Затем передаю данные пакета циклом по 32 бита за посылку for(i=0;i<128;i++) Первые 20 байт - это принятые данные после посылок(посылаю всегда 0xABCDEF12 ), остальное то, что принято после посылки token(т.е. во время посылки нули) и каждой посылки данных + CRC(и вопрос ещё как я понял по умолчанию СRC отключён?) Ещё раз всё поправил ка надо и в итоге после посылки token 0xFE на 5-ом принятом байте(в это время посылаются данные на запись) вижу значение 0x09, которое говорит об ошибки token - out of range. token.txt
  12. Инициализация прошла, а вот запись что-то не проходит. Послал Data Token как для команды 24, на следующей посылке получил ответ нули (вопрос на какой посылке надо считать ответ token? ) и затем получаю всякие разные данные при отправке моих посылок всего 512 байт это нормально? после отправки СRC в ответе все FF. Карточка на 1Гб, карточка на 2Гб вообще отказалась сброситься.
  13. А адрес блока для команд 17,18, 24 как формируется, если блок по 512 байт? Т.е. посылаю команду и указываю для первого блока адрес 1, а для второго 2 или 1, а затем 513?
  14. А точно, что-то я про это забыл. Всё теперь понятно, буду пробовать что-то записать и считать пока в одноблочном режиме.
  15. Дак тогда ошибки будут возможны, поскольку как microSD отличит CRC от данных(интересуют случаи когда контроль отключён и включён)?
×
×
  • Создать...