Blackfin Runtime Error -2200 from Exceeding Semaphore Allotment
Primary Software: LabVIEW Modules>>Embedded Module for Blackfin Processors
Primary Software Version: 1.0
Primary Software Fixed Version: N/A
Secondary Software: N/A
Problem: I have a Blackfin application with timed loops, FIFO's, and/or occurrences, and I experience runtime error -2200 on FIFO Init or on an occurrence creation. Unit testing of my code did not show this behavior - what does this error mean and why does it occur?
Solution: Timed loops, FIFO's and occurrences all require semaphores to be acquired from the VDK operating system running on the Blackfin processor to synchronize their operations. There are only a limited amount of semaphores available, however, and exceeding the allotted amount will cause errors of type -2200. One solution is to minimize your usage of these constructs to reduce your semaphore consumption. Another method is to reconfigure the VDK operating system to increase the semaphore allotment:
- In Windows Explorer, rename the following files
- In
C:\Program Files\National Instruments\LabVIEW 7.1 Embedded\resource\LabVIEW Targets\Embedded\vdk\bf537\build\lv_vdk
- Rename VDK.cpp to VDKold.cpp
- Rename VKD.h to VDKold.h
- Change the file properties on
C:\Program Files\National Instruments\LabVIEW 7.1 Embedded\resource\LabVIEW Targets\Embedded\vdk\bf537\build\lv_vdk\lv_vdk_bf537.dpj so that it is not Read Only
- From VisualDSP++, open
C:\Program Files\National Instruments\LabVIEW 7.1 Embedded\resource\LabVIEW Targets\Embedded\vdk\bf537\build\lv_vdk\lv_vdk_bf537.dpj
- After opening the project, rename the following files in Windows Explorer:
- In
C:\Program Files\National Instruments\LabVIEW 7.1 Embedded\resource\LabVIEW Targets\Embedded\vdk\bf537\lib\0.0
- Rename lv_vdk.dlb to lv_vdkold.dlb
- Rename lv_vdkd.dlb to lv_vdkdold.dlb
- Click the Kernel tab in VDSP, and increase the number of semaphores to 50. Go back to the Project tab.
- Right-click on the Project Name in VDSP and select Build Project. When the build is complete, toggle the release mode from debug to release (or release to debug), then click Build again. This will create new lv_vdk.dlb and lv_vdkd.dlb library files in
\resource\LabVIEW Targets\Embedded\vdk\bf537\lib\0.0
- Copy the two new library files from the 0.0 directory to the 0.2 directory to back up the existing libraries.
Related Links:
Attachments:
Report Date: 09/28/2006
Last Updated: 11/15/2007
Document ID: 41RDQ6PZ