|
| View previous topic :: View next topic |
| Author |
Message |
jhenderson Site Admin
Joined: 07 Mar 2006 Posts: 2267 Location: So. Cal. USA
|
Posted: Wed Jun 07, 2006 5:49 am Post subject: Detecting integrity errors |
|
|
There are two types of integrity violations in Caliente. The most benign failure mode is tripped whenever the Chico needs to bus master data and all eight BM sub-regions are depleted. This indicates that data loss is forthcoming - so it is more an warning than an error.
These warnings can be detected by installing handlers for these events within the board object.
In MSVC
| Code: | Board.SetEventByName2("OnMyReadIntegrityError", this, &CModulesDlg::OnReadIntegrityError);
Board.SetEventByName2("OnMyWriteIntegrityError", this, &CModulesDlg::OnWriteIntegrityError); |
In Borland
| Code: | Board->OnReadIntegrityError = OnMyReadIntegrityError;
Board->OnWriteIntegrityError = OnMyWriteIntegrityError; |
The other type is a non-recoverable error. This occurs whenever data is overrun or underrun at the module, and only occurs after all buffering within the system, including any on-module FIFO, is depleted. This can only be detected by polling the appropriate module error bit periodically.
Under MSVC, the module can be queried for buffer overflow/underflow using two properties located in the internals structure.
| Code: | bool Overrun = Module.Properties[ "Internals.Overrun" ];
bool Underrun = Module.Properties[ "Internals.Underun" ]; |
Under BCB
| Code: | bool Overrun = Module->Overrun;
bool Underun = Module->Underun; |
I it is convenient to place these checks into the OnBlockDataReady and/or OnBlockDataRequested handlers, since these are called periodically during streaming anyway. Alternately, they can be placed in a timer. _________________ phpbb1 |
|
| Back to top |
|
 |
mikem
Joined: 27 Nov 2007 Posts: 5
|
Posted: Wed Nov 28, 2007 8:28 am Post subject: Resetting overrun error bit |
|
|
Jim,
You said that we the second type of overrun checking was not recoverable. Is there a way to reset the module once that flag is set? I would like to poll the error bit and flag an overrun in my application, but I don't want the user to have to restart the application once it is true. Will restarting my application reset that flag, or is that in the hardware?
Thanks,
Mike
| Quote: | | The other type is a non-recoverable error. This occurs whenever data is overrun or underrun at the module, and only occurs after all buffering within the system, including any on-module FIFO, is depleted. This can only be detected by polling the appropriate module error bit periodically. |
|
|
| Back to top |
|
 |
jhenderson Site Admin
Joined: 07 Mar 2006 Posts: 2267 Location: So. Cal. USA
|
Posted: Wed Nov 28, 2007 8:51 am Post subject: Integrity error reset |
|
|
The integrity error bit maintained within the module is automatically reset when streaming commences. So, restarting the stream is sufficient - it is not necessary to restart the entire application. _________________ phpbb1 |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You cannot download files in this forum
|
|
© Copyright 2006-2012 Innovative Integration
Powered by phpBB © 2001, 2002 phpBB Group
Based on iCGstation v1.0 Template By Ray © 2003, 2004 iOptional
|
|
|