Уважаемые завсегдатаи форума,нужна консультация. Для моего проекта мне надо реализовать хост 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".как это делается?