ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
10 марта
1575204 Топик полностью
VladislavS. (Сегодня, 12:36, просмотров: 23) ответил Nikolay_Po на RISC-V QingKe-V4C. Как воспользоваться инструкциями атомарного доступа? Нужно взвести/сбросить бит в регистре периферии, при этом, сброс/взведение бита в обычном случае - это R-M-W, которые могут быть прерваны другим процессом, чего хотелось бы избежать без блокировки прерываний.
Глобально запретить прерывания в QingKe-V4C через CSR достаточно быстро должно быть. 

В одну ассемблерную команду, на сколько помню, должно транслироваться.

// Enable Global Interrupt

static inline void __enable_irq()

{

riscv::CSR<QingKeV4::CSR_REGS::gintenr>::set_bits<0x08>();

}

// Disable Global Interrupt

static inline void __disable_irq()

{

riscv::CSR<QingKeV4::CSR_REGS::gintenr>::clear_bits<0x08>();

}