soc/runtime: raise underflow exception for replace and DDS FUD operations

This commit is contained in:
Sebastien Bourdeauducq 2014-09-26 17:24:45 +08:00
parent af0cd902d3
commit e263b63527
2 changed files with 5 additions and 0 deletions

View File

@ -2,6 +2,7 @@
#include <hw/common.h> #include <hw/common.h>
#include <stdio.h> #include <stdio.h>
#include "exceptions.h"
#include "dds.h" #include "dds.h"
#define DDS_FTW0 0x0a #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_timestamp_write(fud_time+3*8);
rtio_o_value_write(0); rtio_o_value_write(0);
rtio_o_we_write(1); rtio_o_we_write(1);
if(rtio_o_error_read())
exception_raise(EID_RTIO_UNDERFLOW);
if(r) { if(r) {
fud_sync(); fud_sync();

View File

@ -32,6 +32,8 @@ void rtio_replace(long long int timestamp, int channel, int value)
rtio_o_timestamp_write(timestamp); rtio_o_timestamp_write(timestamp);
rtio_o_value_write(value); rtio_o_value_write(value);
rtio_o_replace_write(1); rtio_o_replace_write(1);
if(rtio_o_error_read())
exception_raise(EID_RTIO_UNDERFLOW);
} }
void rtio_sync(int channel) void rtio_sync(int channel)