Цитата(prottoss @ Sep 19 2011, 20:48)

ОК. Подождем, когда код заточится, но на AMD работать не будет

в моем случае я так понимаю нет никакого SAM-BA, я же прошиваю через IAR...
aaarrrОгромное спасибо!!!
Хотя всё опять же по моей вине не так как надо... реально там другой код ))) я опять таки взял не от той версии BasicUSB... я уже запутался в них...
при том тот же файл cdc_enumerate.с в каждой новой версии такие радикальный изменения переживает... не сиделось им прям...
фактически как обернуть я понял, могу применить и к этому...
только в той версии что у меня сейчас - нет разбиения на эти inline... все процедуры уже такие массивные, вот пример одной из записей:
Код
static uint AT91F_UDP_Write(AT91PS_CDC pCdc, const char *pData, uint length)
{
AT91PS_UDP pUdp = pCdc->pUdp;
uint cpt = 0;
// Send the first packet
cpt = MIN(length, AT91C_EP_IN_SIZE);
length -= cpt;
while (cpt--) pUdp->UDP_FDR[AT91C_EP_IN] = *pData++;
pUdp->UDP_CSR[AT91C_EP_IN] |= AT91C_UDP_TXPKTRDY;
while (length) {
// Fill the second bank
cpt = MIN(length, AT91C_EP_IN_SIZE);
length -= cpt;
while (cpt--) pUdp->UDP_FDR[AT91C_EP_IN] = *pData++;
// Wait for the the first bank to be sent
while ( !(pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP) )
if ( !AT91F_UDP_IsConfigured(pCdc) ) return length;
pUdp->UDP_CSR[AT91C_EP_IN] &= ~(AT91C_UDP_TXCOMP);
while (pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP);
pUdp->UDP_CSR[AT91C_EP_IN] |= AT91C_UDP_TXPKTRDY;
}
// Wait for the end of transfer
while ( !(pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP) )
if ( !AT91F_UDP_IsConfigured(pCdc) ) return length;
pUdp->UDP_CSR[AT91C_EP_IN] &= ~(AT91C_UDP_TXCOMP);
while (pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP);
return length;
}
возникает вопрос можно ли просто в тупую добавить store_int и disable_int в начале всей этой функции и set_interrupt_statу в конец, опоясов всю эту функцию, решив тем самым обе проблемы сразу? аналогично повесить на остальные функции - записи управляющей endpoint, конфигурирования.... или городить таки у каждого изменения CSR?
извиняюсь заранее, потому что понимаю что вопрос глупый и даже подозреваю на него ответ и даже проверить просто...
но... вот проверить мне тут неначем - результаты только завтра узнаем (
Сообщение отредактировал abit - Sep 19 2011, 19:10