При отладке в режиме симулятора (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).
Не мог бы кто-нибудь из зубров запустить у себя этот код.