Hi All,
Has anyone encountered the following problem? Could this be a bug?
An exception occurs in RingIO_Open() due to invalid address passing into status = MPCS_enter (ringIoState->mpcsObj) ;. From the code, ringIoState comes from extern RingIO_Object RingIO_State [MAX_DSPS] ;. But the following code in RingIO_Open() shows that RingIO_State is trying to access an invalid element:
// MAX_DSPS = 1, MAX_PROCESSORS = 2
for (procId = 0 ; (procId < MAX_PROCESSORS) && (control == NULL) ; procId++) {
ringIoState = &RingIO_State [procId] ; // if procId = 1, ringIoState is invalid?
...
...
status = MPCS_enter (ringIoState->mpcsObj) ; // unexpected value if procId = 1
But the above code does not give exception all the time. I have 2 separate builds to illustrate good and bad cases.
GOOD CASE
From symbol file:
00b24b98 00000002 B DSPLINK_isSignal
00b24b9c 00000300 B POOL_addrConfig
00b24e9c 00000020 B RingIO_State <--- &RingIO_State [0]
00b24ebc 00000020 B MPCS_State <--- &RingIO_State [1]
BAD CASE
From symbol file:
00bc516c 00000020 B RingIO_State <--- &RingIO_State [0]
00bc518c 00000002 B DSPLINK_isSignal <--- &RingIO_State [1]
00bc5190 00000020 B MPCS_State
Regards,
PJ