From 0de438dc52844c7b89ccf518a7fac851eead5ef3 Mon Sep 17 00:00:00 2001 From: Stanislaw Kaushanski Date: Mon, 2 May 2022 09:51:05 +0200 Subject: [PATCH] avoid interrupts while printing --- raven_spn/raven_spn | Bin 123804 -> 123836 bytes raven_spn/src/raven_spn.cpp | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/raven_spn/raven_spn b/raven_spn/raven_spn index 33efa25ad85e18513ff279ac8de8a7daee101b65..cb16d4025f47529a349cd2cee2493d69e15db3c7 100755 GIT binary patch delta 6130 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 Gh5r*1k<23i delta 5998 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 diff --git a/raven_spn/src/raven_spn.cpp b/raven_spn/src/raven_spn.cpp index a9891a7..e23b5ab 100644 --- a/raven_spn/src/raven_spn.cpp +++ b/raven_spn/src/raven_spn.cpp @@ -14,8 +14,10 @@ void run_xspn1(int in_addr, int out_addr, int num_samples, int in_beats, int out spn_1::output_addr_reg() = out_addr; spn_1::num_of_in_beats_reg() = in_beats; // Number of AXI4 burst beats needed to load all input data spn_1::num_of_out_beats_reg() = out_beats; // Number of AXI4 burst beats needed to store all result data - spn_1::start_reg() = 1; + asm volatile ("csrrc x0, mie, %0; nop; nop" : : "r"(MIP_MEIP)); // Disable interrupts printf("Starting first XSPN instance\n"); + asm volatile ("csrrs x0, mie, %0; nop" : : "r"(MIP_MEIP)); // Enable interrupts + spn_1::start_reg() = 1; } void run_xspn2(int in_addr, int out_addr, int num_samples, int in_beats, int out_beats) { @@ -25,7 +27,9 @@ void run_xspn2(int in_addr, int out_addr, int num_samples, int in_beats, int out spn_2::output_addr_reg() = out_addr; spn_2::num_of_in_beats_reg() = in_beats; // Number of AXI4 burst beats needed to load all input data spn_2::num_of_out_beats_reg() = out_beats; // Number of AXI4 burst beats needed to store all result data + asm volatile ("csrrc x0, mie, %0; nop; nop" : : "r"(MIP_MEIP)); // Disable interrupts printf("Starting second XSPN instance\n"); + asm volatile ("csrrs x0, mie, %0; nop" : : "r"(MIP_MEIP)); // Enable interrupts spn_2::start_reg() = 1; }