Уважаемые завсегдатаи форума,нужна консультация. Для моего проекта мне надо реализовать хост MSC..Изучаю мануал по этому процессору,сгенерировал в Cube прокет. и возникли вопросы 1) как соотносятся между собой регистры размеров данных - HCCHARx->MPSIZ, почему HAL записыват сюда 0х7ff? - HCTSIZx->XFRSIZ и HCTSIZx->PKTCNT - HNPTXFSIZ->TXfifodepth - данные о размере конечной точки,полученное из ENDPOINT_DESCRIPTOR(bmaxpacketsize) то есть грубо говоря,например,надо записать 8 секторов диска 8*512=4096 байт,какие значения вышеупомянутых регистров должны быть,сколько OUT-транзакций я должен послать и какого размера они должны быть? 2) странно,почему поле HCTSIZх->DPID двухбитное? по идее,должно быть 4 бита,если почитать спецификацию USB куда еще 2 бита пишутся? 3) немного не понял взаимосвязь битов CHENA и CHDIS в регистре HCCHARx. Если CHENA аппаратно сбрасывается хостом,то в каких случаях? 4) в мануале приведена схема (пункт 34.17.4 host programming model->operation model) приведена схема,в принципе понятно,когда какие флаги прерывания устанавливаются.там еще есть алгоритмы обработки этих прерываний и в них есть понятие "de-allocate channel".как это делается?
Сообщение отредактировал romas2010 - Dec 18 2015, 20:33
|