skyfoxss 0 10 февраля, 2016 Опубликовано 10 февраля, 2016 · Жалоба Есть ли возможность перекидывать данные из UPP в DDR по DMA напрямую? Читал спеку на UPP, ограничений на буфера DMA кроме выравнивания на 128 не нашел. Исходники UPP драйвера взял отсюда: http://processors.wiki.ti.com/images/b/bd/...Install_v10.zip Оно в принципе работает только когда данные из UPP перекидываются в IRAM. Как только указываю windowAddr в область DDR данные не идут. TCF файл следующий: /* Configuration script for UPP mini driver test */ utils.loadPlatform("ti.platforms.evmOMAPL138"); /* The following DSP/BIOS Features are enabled. */ bios.enableRealTimeAnalysis(prog); bios.enableRtdx(prog); bios.enableTskManager(prog); bios.MEM.NOMEMORYHEAPS = 0; bios.MEM.instance("IRAM").createHeap = 1; bios.MEM.BIOSOBJSEG = prog.get("IRAM"); bios.MEM.MALLOCSEG = prog.get("IRAM"); bios.TSK.STACKSEG = prog.get("IRAM"); bios.UDEV.create("UPP"); bios.UDEV.instance("UPP").fxnTableType = "IOM_Fxns"; bios.UDEV.instance("UPP").comment = "uPP IOM mini driver"; bios.UDEV.instance("UPP").initFxn = prog.extern("UPP_INIT"); bios.UDEV.instance("UPP").fxnTable = prog.extern("UPP_FXN_TABLE"); bios.UDEV.instance("UPP").params = prog.extern("UPP_DEV_CONFIG"); bios.LOG.create("trace"); bios.LOG.instance("trace").bufLen = 1024; bios.ECM.ENABLE = 1; bios.HWI.instance("HWI_INT7").interruptSelectNumber = 2; bios.MEM.ARGSSIZE = 0x0032; bios.MEM.BIOSOBJSEG = prog.get("IRAM"); bios.MEM.ARGSSEG = prog.get("IRAM"); bios.MEM.ARGSSIZE = 0x0032; bios.MEM.create("RESET_VECTOR"); bios.MEM.instance("RESET_VECTOR").comment = "RESET VECTOR"; bios.MEM.instance("RESET_VECTOR").base = 0xc3000000; bios.MEM.instance("RESET_VECTOR").len = 0x00000080; bios.MEM.instance("RESET_VECTOR").createHeap = 0; bios.MEM.instance("RESET_VECTOR").space = "code/data"; bios.MEM.instance("DDR").base = 0xc3000080; bios.MEM.instance("DDR").len = 0x00efff80; bios.MEM.instance("DDR").createHeap = 1; bios.MEM.instance("DDR").heapSize = 0x00010000; bios.MEM.instance("DDR").comment = "DDR"; bios.POOL.ENABLEPOOL = 1; bios.MEM.create("DSPLINKMEM"); bios.MEM.instance("DSPLINKMEM").comment = "DSPLINKMEM"; bios.MEM.instance("DSPLINKMEM").base = 0xc3f00000; bios.MEM.instance("DSPLINKMEM").len = 0x00030000; bios.MEM.instance("DSPLINKMEM").createHeap = 0; bios.MEM.STACKSIZE = 0x1000; bios.MEM.instance("RESET_VECTOR").comment = "RESET_VECTOR"; bios.POOL.ENABLEPOOL = 0; // !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT! prog.gen(); На DSP работает Bios 5_42_01_09. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 10 февраля, 2016 Опубликовано 10 февраля, 2016 · Жалоба Есть ли возможность перекидывать данные из UPP в DDR по DMA напрямую? Есть. Как только указываю windowAddr в область DDR данные не идут. А вот тут надо бы подробнее - что значит "не идут"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться