Создание LVSRAM с одним главным портом и несколькими подчиненными портами в GEM 5C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Создание LVSRAM с одним главным портом и несколькими подчиненными портами в GEM 5

Сообщение Anonymous »

Я пытаюсь изменить LVSRAM.cc и LVSRAM.hh, чтобы создать порты связи главный/подчиненный для LVSARM в gem5. Я уже добавил один главный и один подчиненный порт, но теперь у меня возникли проблемы с расширением подчиненного порта в массив, содержащий несколько подчиненных портов.
ниже приведено определение в .hh файл:

Код: Выделить всё

CPUSidePort dmaCpuPort;
CPUSidePort vlsuCpuPort;
CPUSidePort tcCpuPort;
CPUSidePort vcCpuPort;
MemSidePort m0CpuPort;
CPUSidePortLink s0CpuPort;
MemSidePort s0CpuPorts[num_row];
и вот конструктор, который я пишу:

Код: Выделить всё

LVSRAM::LVSRAM(const LVSRAMParams &params) :
ClockedObject(params),
addrRange(params.addr_range),
latency(params.latency),
size(params.size),
version(params.version),
dmaCpuPort(name() + ".dma_port", 0, this, params.dma_acc_align),
vlsuCpuPort(name() + ".vlsu_port", 0, this, params.vlsu_acc_align),
tcCpuPort(name() + ".tc_port", 0, this, params.tc_acc_align),
vcCpuPort(name() + ".vc_port", 0, this, params.vc_acc_align),
//m0CpuPort(params.name + ".m0_port", this, params.bus_acc_align),
m0CpuPort(name() + ".m0_port", this),
s0CpuPorts(new MemSidePort[num_row]),
s0CpuPort(name() + ".s0_port", 0, this, params.slave_acc_align),
id(params.id)
{
Addr start = addrRange.start();
Addr end = addrRange.end();

warn_if(size != end - start, "LVSRAM size(%#x) is inconsistent with the addr_range[%#x,%#x].\n",
size, start, end);

ramCell = (uint8_t *) new uint64_t[params.size / 8]; // align with 8 bytes

// initial ramCell for test
for (int i = 0; i < params.size; i++) {
ramCell[i] = i & 0xff;
}

for (int i = 0; i < num_row; i++) {
std::string port_name = name() + ".s0_port_" + std::to_string(i);
s0CpuPorts[i] = MemSidePort(port_name, this);
}

}
У меня возникла ошибка, сообщающая, что конструктор по умолчанию не существует для класса "gem5::LVSRAM::MemSidePort"
для s0CpuPorts(new MemSidePort[num_row] ),
и на функцию «gem5::LVSRAM::MemSidePort::operator=(const gem5::LVSRAM::MemSidePort &)» (объявленную неявно) нельзя ссылаться — это удаленная функцияC< /em> в последнем цикле for, где я хочу создать порты для каждого элемента массива.
Кто-нибудь знает, как мне правильно создать массив?

Подробнее здесь: https://stackoverflow.com/questions/787 ... s-in-gem-5
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Java android с несколькими последовательными портами
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Java android с несколькими последовательными портами
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • RMI через SSL с одним портом на сервере
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как подключить две камеры Gig-E к Manux Machine с одним портом Ethernet
    Anonymous » » в форуме Linux
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • FCM Gem, значок настройки
    Anonymous » » в форуме Android
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»