При отладке в режиме симулятора (CCS v3.1.0.) элементарного примера на камне F2812 с использованием средств DSP/BIOS возникает ошибка (Trouble running Target CPU: Can't read from data memory 0xFFFE, check memory config). Та же программа исполняется без проблем на других (!) камнях (у них нет такой жуткой разбивки памяти). Как я понял прблемы растут где-то из MEM-менеджера или из линкера. Память конфигурить как только не пробовал.
1) #include <std.h> #include <log.h> #include <tsk.h> #include "Testcfg.h" class Test { private: int id; LOG_Obj* Log; public: Test(){ Log = &trace; LOG_printf(Log, "Object created\n"); }
Test(int ID, LOG_Obj &newLog){ id = ID; Log = &newLog; LOG_printf(Log, "Object created (ID=%d", id,")\n");
}
void run() { LOG_printf(Log, "ID=%d", id,": run()\n"); }
};
Test tst1(1, trace); Test tst2(2, trace);
extern "C" { void runTest(Test test) { test.run(); } }
int main() { LOG_printf(&trace, "Test program started!\n"); return 0; } Одна задача вызывается в PRD0 (function: _runTest, arg0: _tst1), а другая - как TSK0 (function: _runTest, arg0: _tst2).
Настроки ставил такие: 2) sim2812.gel (запускаю в режиме симулятора), 3) память - Large, 4) подключил rts2800_ml.lib. 5) В линкере Output module - Abs Exec. 6) Также, в модуле MEM (DSP/BIOS Config) General-> malloc()/free()-L0SARAM. 7) Поскольку отладка в симуляторе, то в модуле Input/Output->RTDX->Mode - Simulator (иначе, когда JTAG, - ошибка по записи в память по адресу 0x000806).
Не мог бы кто-нибудь из зубров запустить у себя этот код.
|