AnsweredAssumed Answered

_primIO() which (by convention) is interpreted as an I/O failure?

Question asked by jelly on Aug 8, 2010
Latest reply on Aug 10, 2010 by CraigG

Hello,

 

Some info about our project as below,

 

IDE: VisualDSP++ 5.0 Update 6
Processor: ADSP BF548 Silicon Revision 0.1 or 0.2
Board: private, not EZ-KIT
SD CARD: SanDisk SD 2GB class 2, Kingston SD 2GB

 

I modified and built your example code from below location.
C:\Program Files\Analog Devices\VisualDSP 5.0\Blackfin\Examples\ADSP-BF548
EZ-KIT Lite\Services\File System\HardDisk\HardDiskAccess

 

I call the TestFunction( ), and
Step 1: create a new sub directory named “Directory 1”

 

Step 2: move to the sub directory

 

Step 3: create one thousand files in the sub directory. Each file size is
800*600*3bytes(about 1.4MB)

 

Step 4: delete all files

 

Step 5: remove the sub directory

 

Step 6: jump to step 1

 

Q1:
I don't know why my program will be blocked(sometimes about run step1 to step6
about several hundred times, sometimes 10+ times). I traced the code and found the variable _Godot is not NULL, so the program will always wait for Godot.
Does anyone has experienced the same problems ?

 

Thanks for any idea !

 

...code snippet from xprim.c
void _primIO(void)
{
    /* If the debugger is present, it will put a breakpoint on this
       label, and none of this code will execute. 

 

       If the DLK is being used, then it will tell us by resetting
       _lone_SHARC, and we'll interact through the _Godot pointer.

 

       If we're all alone, we'll just return without doing anything,
       which (by convention) is interpreted as an I/O failure.
    */

 

    if (!_lone_SHARC)
    {
        _Godot = &PrimIOCB;
        while (_Godot != NULL)    /* Waiting for Godot */
        ;
    }
}

Attachments

Outcomes