Перейти к содержанию
    

Вопрос по UPP для L138 (в DSPBios 5)

Есть ли возможность перекидывать данные из 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли возможность перекидывать данные из UPP в DDR по DMA напрямую?

Есть.

 

Как только указываю windowAddr в область DDR данные не идут.

А вот тут надо бы подробнее - что значит "не идут"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...