Обновить
0

Пользователь

Отправить сообщение

Понятно. Я думал стандартным расширением ISA делали. Но смысл такой же.

Это абсолютно стандрартный подход для Performance Counters, в RISC-V найти аппаратную защелку для даннго типа инструкций практически нереально. Подобное поведение описано спецификацией.

Только запрет прерываний для этой комманды не поможет. Нужно использовать специальную обертку:

```

static uint64_t __riscv_get_cycle64(void)

{

#if __riscv_xlen == 64

    uint64_t val;

    asm volatile(

        "rdcycle    %0"

        : "=r"(val));

    return val;

#else

    uint32_t hi1, hi2, low;

    do

    {

        asm volatile(

            "rdcycleh   %0\n"

            "rdcycle    %1\n"

            "rdcycleh   %2"

            : "=r"(hi1), "=r"(low), "=r"(hi2));

    } while (hi1 != hi2);

    return ((uint64_t)hi1 << 32) | low;

#endif

}
```

1) Порт отладки, пины RX & TX от какого интерфейса?
2) Какие расширения ISA у процессора? количество ядер и тактовая частота не показатель.

Информация

В рейтинге
5 839-й
Зарегистрирован
Активность