ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
8 июля
241407
scorp1969 (03.03.2011 01:36, просмотров: 474)
DMA пересылка и SD карта на LPC3250, Клинит контроллер DMA.Здравствуйте.Есть LPC3250 с подключенной SD картой в 4битном режиме. Всё скопировано с Phytec платы(на ней кстати такая же проблема). Запускаю простую програмку (В RTOS PowerPac с одной задачей и файловой системой как в примере). В бесконечном цикле открываю файл, записываю пару килобайт, закрываю файл. Если программу с данными запустить в IRAM то проблем нет. Если же в SDRAM то через некоторое время код виснет в этой функции:int FS_MMC_HW_X_WriteData(U8 Unit, const void * pBuffer, unsigned NumBytes, unsigned NumBlocks) {int r; U32 * pFifoReg;U32 * p;pFifoReg = (void *)MCI_FIFO_ADDR;NumBytes *= NumBlocks;p = (U32 *)pBuffer;if (((U32)pBuffer & 0x1f) || (NumBytes & 0x1f)) {p = _GetBufferAddr(); FS_MEMCPY(p, pBuffer, NumBytes);}OS_ARM_DCACHE_CleanRange(p, (NumBytes + 0x1f) & ~0x1f);_DMAStart(pFifoReg, p, NumBytes, MEMORY_TO_PERIPHAL);_WriteControlReg(Unit);r = 0; // No error so farwhile ((GPDMA_RAW_INT_TCSTAT & 0x01) == 0); Виснит тутGPDMA_INT_TCCLR = 1;if (MCI_STATUS & (1