diff --git a/soc/runtime/dds.c b/soc/runtime/dds.c index f148df869..ae9bcab57 100644 --- a/soc/runtime/dds.c +++ b/soc/runtime/dds.c @@ -2,6 +2,7 @@ #include #include +#include "exceptions.h" #include "dds.h" #define DDS_FTW0 0x0a @@ -42,6 +43,8 @@ static void fud(long long int fud_time) rtio_o_timestamp_write(fud_time+3*8); rtio_o_value_write(0); rtio_o_we_write(1); + if(rtio_o_error_read()) + exception_raise(EID_RTIO_UNDERFLOW); if(r) { fud_sync(); diff --git a/soc/runtime/rtio.c b/soc/runtime/rtio.c index 6f38b9419..d6cb77ba7 100644 --- a/soc/runtime/rtio.c +++ b/soc/runtime/rtio.c @@ -32,6 +32,8 @@ void rtio_replace(long long int timestamp, int channel, int value) rtio_o_timestamp_write(timestamp); rtio_o_value_write(value); rtio_o_replace_write(1); + if(rtio_o_error_read()) + exception_raise(EID_RTIO_UNDERFLOW); } void rtio_sync(int channel)