This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

migration to SYS/BIOS

Other Parts Discussed in Thread: SYSBIOS

Thanks in advance for the help !!

I have 2 questions:

1) All of the code I am migrating include the file XXXcfg.h because is (used to) contain the declarations of all the specific Project objects created from the XXX.tcf file (SEM_foo1, LCK_foo2, etc). Now that I have converted my TCF file to a CFG file and created a platform, those declarations are gone. Yes, the new XXXcfg.h file does #include <xdc/cfg/global.h> but that only gives me the declarations for the BIOS Object Types and functions. Did I miss something in the conversion ? What is supposed to take the place of the original XXXcfg.h, that contains declarations for the PROJECT defined Objects ??

2) When running the XGCONF tool on my new XXX.cfg file (project test1) I get this error:

Description  Resource  Path  Location  Type
java.lang.ArrayIndexOutOfBoundsException: 6   SYS1.cfg   /test1   Configuration Validation   XDCTools Configuration Marker

and if I try to build the new XXX.cfg file I get this additional error:

Description Resource Path Location Type
gmake: *** No rule to make target `SYS1.opt'. Stop. test1 Unknown C/C++ Problem

Can you help me track this issue down ? The error messages are not very specific !!

  • Hi Richard,

    Can you tell me which version of DSP/BIOS your old app used, and which version of SYS/BIOS you are trying to update to?

    Richard Dobbis said:
    Now that I have converted my TCF file to a CFG file and created a platform, those declarations are gone.

    I think what you are looking for might be in a generated C file.  This file can be found in your project, for example, at <your project directory>Debug\configPkg\package\cfg\<your project name>_p<target>.c


    This file contains all of the C code that's generated from the settings of your *.cfg file.

    Also, can you attach your *.tcf file to this thread? (along with any *.tci files that may be included by the tcf)?

    Steve

  • Steve, thanks.

    The former DSP/Bios was: dsp_bios_5_31_09_16
    The SYS/BIOS I am trying to use is: bios_6_35_04_50

    Yes, what I am looking for is the generated 'C' file. It used to be generated into '<proj>cfg.h". Are you saying that I need to change my source code to point to the location that you specified - or is this somehow added to the build by the *.cfg code parser ?

    Here is the contents of my (one and only) TCF file - It seems to go through 'configuro' without error ...

    utils.loadPlatform("ti.platforms.dsk6455");

    /*
    * Enable common BIOS features used by all examples
    */

    bios.enableRealTimeAnalysis(prog);
    bios.enableMemoryHeaps(prog);
    bios.enableRtdx(prog);
    bios.enableTskManager(prog);

    bios.MEM.instance("DDR2").destroy();
    bios.MEM.STACKSIZE = 0x2000;

    /** Idle Task **/

    bios.IDL.create("IDL_sleepIdle");
    bios.IDL.instance("IDL_sleepIdle").fxn = prog.extern("IDL_addToBios");
    bios.IDL.instance("IDL_sleepIdle").comment = "additional Idle functions";

    /** Globals **/

    /*
    * The following statements will enable the MAR bits for MAR 224 to MAR 239
    * This will make the external memory range (0xE0000000-0xEFFFFFFF) cacheable.
    */

    bios.GBL.CLKOUT = 1000.0000;
    bios.GBL.SPECIFYRTSLIB = 0;
    bios.GBL.CALLUSERINITFXN = 1;
    bios.GBL.USERINITFXN = prog.extern("InitBSS");
    bios.GBL.CALLUSERINITFXN = 0;
    bios.GBL.C64PLUSCONFIGURE = 1;
    bios.GBL.C64PLUSL1PCFG = "32k";
    bios.GBL.C64PLUSL1DCFG = "32k";
    bios.GBL.CLKIN = 40000;
    bios.GBL.C64PLUSMAR224to255 = 0x0000fffd;
    bios.GBL.C64PLUSL2CFG = "32k";

    /** Interrupts **/

    bios.HWI.instance("HWI_INT4").useDispatcher = 1;
    bios.HWI.instance("HWI_INT4").interruptSelectNumber = 55;
    bios.HWI.instance("HWI_INT4").fxn = prog.extern("HWI_vsyncInt");

    bios.HWI.instance("HWI_INT5").useDispatcher = 1;
    bios.HWI.instance("HWI_INT5").fxn = prog.extern("HWI_EOG_EndGate");
    bios.HWI.instance("HWI_INT5").interruptSelectNumber = 56;

    bios.HWI.instance("HWI_INT6").useDispatcher = 1;
    bios.HWI.instance("HWI_INT6").interruptSelectNumber = 57;
    bios.HWI.instance("HWI_INT6").fxn = prog.extern("HWI_UART_cisr");

    bios.HWI.instance("HWI_INT7").useDispatcher = 1;
    bios.HWI.instance("HWI_INT7").interruptSelectNumber = 58;
    bios.HWI.instance("HWI_INT7").fxn = prog.extern("HWI_VME_cisr");

    bios.HWI.instance("HWI_INT8").useDispatcher = 1;
    bios.HWI.instance("HWI_INT8").interruptSelectNumber = 17;
    bios.HWI.instance("HWI_INT8").fxn = prog.extern("HWI_unused", "asm");

    bios.HWI.instance("HWI_INT9").useDispatcher = 1;
    bios.HWI.instance("HWI_INT9").interruptSelectNumber = 54;
    bios.HWI.instance("HWI_INT9").fxn = prog.extern("CRP_HWI_cisr");

    bios.HWI.instance("HWI_INT10").useDispatcher = 1;
    bios.HWI.instance("HWI_INT10").interruptSelectNumber = 24;
    bios.HWI.instance("HWI_INT10").fxn = prog.extern("HWI_unused", "asm");

    bios.HWI.instance("HWI_INT13").useDispatcher = 1;
    bios.HWI.instance("HWI_INT13").interruptSelectNumber = 62;
    bios.HWI.instance("HWI_INT13").fxn = prog.extern("CORR_HWI_cisr");

    bios.HWI.instance("HWI_INT15").useDispatcher = 1;
    bios.HWI.instance("HWI_INT15").interruptSelectNumber = 20;
    bios.HWI.instance("HWI_INT15").fxn = prog.extern("HWI_srioInt");

    /** LOCKS **/

    bios.LCK.create("LCK_PerformBIT");

    bios.LCK.create("LCK_OverlayBuf");
    bios.LCK.create("LCK_OverlayVSync");
    bios.LCK.create("LCK_OverlaySramCtrl");

    bios.LCK.create("LCK_EMIF_Ready");
    bios.LCK.instance("LCK_EMIF_Ready").comment = "EMIF operations";

    bios.LCK.create("LCK_LSU0_Ready");
    bios.LCK.instance("LCK_LSU0_Ready").comment = "SRIO maintWrite, fpgaFlashWrite, writeWord and writeBlock";
    bios.LCK.create("LCK_LSU1_Ready");
    bios.LCK.instance("LCK_LSU1_Ready").comment = "SRIO maintRead, fpgaFlashRead, and readWord";
    bios.LCK.create("LCK_LSU2_Ready");
    bios.LCK.instance("LCK_LSU2_Ready").comment = "SRIO setBits(r) and setBits(w)";
    bios.LCK.create("LCK_LSU3_Ready");
    bios.LCK.instance("LCK_LSU3_Ready").comment = "SRIO readBlock";

    bios.LCK.create("LCK_VidSwitch");
    bios.LCK.create("LCK_InterDspCom");
    bios.LCK.create("LCK_TcpTx");
    bios.LCK.create("LCK_VmeQueryQueue");
    bios.LCK.create("LCK_sendBusStatusMessage");
    bios.LCK.create("LCK_setEthernetData");
    bios.LCK.create("LCK_mountGoto");
    bios.LCK.create("LCK_ProcessError");
    bios.LCK.create("LCK_I2C");
    bios.LCK.create("LCK_Annotate");
    bios.LCK.create("LCK_UartRx");
    bios.LCK.create("LCK_UartTx");
    bios.LCK.create("LCK_EvpuQueue");
    bios.LCK.create("LCK_EvpuServerTx");
    bios.LCK.create("LCK_EvpuStreamRx");
    bios.LCK.create("LCK_EvpuStreamTx");
    bios.LCK.create("LCK_ThreshData0");
    bios.LCK.create("LCK_ThreshData1");
    bios.LCK.create("LCK_ThreshData2");
    bios.LCK.create("LCK_VideoLUT");
    bios.LCK.create("LCK_SimLrf");
    bios.LCK.create("LCK_MultiTargetTags");
    bios.LCK.create("LCK_HistogramEnable");
    bios.LCK.create("LCK_StatusMsg");
    bios.LCK.create("LCK_DigitalVideoSwitch");

    /** Mailboxes **/

    bios.MBX.create("MBX_InPacket");
    bios.MBX.instance("MBX_InPacket").comment = "Std msg packet MBX";
    bios.MBX.instance("MBX_InPacket").messageSize = 8;
    bios.MBX.instance("MBX_InPacket").length = 512;

    bios.MBX.create("MBX_IdspTx");
    bios.MBX.instance("MBX_IdspTx").comment = "Idsp Tx mailbox";
    bios.MBX.instance("MBX_IdspTx").messageSize = 4;
    bios.MBX.instance("MBX_IdspTx").length = 64;

    bios.MBX.create("MBX_dlPacket");
    bios.MBX.instance("MBX_dlPacket").comment = "DSP or FPGA download packet";
    bios.MBX.instance("MBX_dlPacket").messageSize = 4;

    /** Memory **/

    /** Semaphores **/

    bios.SEM.create("SEM_InitFinished");
    bios.SEM.create("SEM_SplashFinished");
    bios.SEM.create("SEM_FXN_2Hz");

    bios.SEM.create("SEM_udpTransmit");
    bios.SEM.create("SEM_startTcpSocket");
    bios.SEM.create("SEM_startUdpSocket");
    bios.SEM.create("SEM_acceptConnection");
    bios.SEM.create("SEM_tcpClientManager");
    bios.SEM.create("SEM_tcpClientTx");

    bios.SEM.create("SEM_RunOncePerField");
    bios.SEM.create("SEM_RunAtVertical");
    bios.SEM.create("SEM_ProcessVsync");

    bios.SEM.create("SEM_PerformBIT");

    bios.SEM.create("SEM_RxRdy");
    bios.SEM.create("SEM_RxUart0");
    bios.SEM.create("SEM_RxUart1");
    bios.SEM.create("SEM_RxUart2");
    bios.SEM.create("SEM_RxUart3");
    bios.SEM.create("SEM_RxUart4");
    bios.SEM.create("SEM_RxUart5");
    bios.SEM.create("SEM_RxUart6");
    bios.SEM.create("SEM_RxUart7");
    bios.SEM.create("SEM_UartIsr");
    bios.SEM.create("SEM_TxFifoEmpty");
    bios.SEM.create("SEM_UartDataToSend");

    bios.SEM.create("SEM_OverlayMsg");
    bios.SEM.create("SEM_OverlayVSync");

    bios.SEM.create("SEM_TargSimOn");
    bios.SEM.create("SEM_VidSwitch");
    bios.SEM.create("SEM_tcpMsgTx");
    bios.SEM.create("SEM_SendMtData");
    bios.SEM.create("SEM_VmeInterrupt");
    bios.SEM.create("SEM_waitingForBlobs");
    bios.SEM.create("SEM_busFlushQueues");
    bios.SEM.create("SEM_ProcessObjects");
    bios.SEM.create("SEM_ProcessEndGate");

    bios.SEM.create("SEM_EndOfGate0");
    bios.SEM.create("SEM_EndOfGate1");
    bios.SEM.create("SEM_EndOfGate2");
    bios.SEM.create("SEM_GateStats0");
    bios.SEM.create("SEM_GateStats1");
    bios.SEM.create("SEM_GateStats2");

    bios.SEM.create("SEM_startCorrelation");
    bios.SEM.create("SEM_CorrReady");
    bios.SEM.create("SEM_CorrDone0");
    bios.SEM.create("SEM_CorrDone1");
    bios.SEM.create("SEM_CorrDone2");

    bios.SEM.create("SEM_HistEog0");
    bios.SEM.create("SEM_HistEog1");
    bios.SEM.create("SEM_HistEog2");
    bios.SEM.create("SEM_HistStart0");
    bios.SEM.create("SEM_HistStart1");
    bios.SEM.create("SEM_HistStart2");
    bios.SEM.create("SEM_HistReady0");
    bios.SEM.create("SEM_HistReady1");
    bios.SEM.create("SEM_HistReady2");

    bios.SEM.create("SEM_IdspQ");
    bios.SEM.create("SEM_LSU1_Rx");
    bios.SEM.instance("SEM_LSU1_Rx").comment = "SRIO direct IO read completed";
    bios.SEM.create("SEM_LSU2_Rx");
    bios.SEM.instance("SEM_LSU2_Rx").comment = "LSU2 SRIO read completed";
    bios.SEM.create("SEM_LSU3_Rx");
    bios.SEM.instance("SEM_LSU3_Rx").comment = "Received data on LSU3";

    // bios.SEM.create("SEM_StartPhaseCorrelation");
    // bios.SEM.create("SEM_VSyncPhaseCorrelation");

    /** Tasks (common) **/

    bios.TSK.CALLSWITCHFXN = 1;
    bios.TSK.SWITCHFXN = prog.extern("mainDoTaskSwitch");

    bios.TSK.instance("TSK_idle").order = 1;

    bios.TSK.create("TSK_ProcessVsync");
    bios.TSK.instance("TSK_ProcessVsync").order = 24;
    bios.TSK.instance("TSK_ProcessVsync").priority = 14;
    bios.TSK.instance("TSK_ProcessVsync").stackSize = 2048;
    bios.TSK.instance("TSK_ProcessVsync").fxn = prog.extern("TSK_processVsync");

    bios.TSK.create("TSK_RunAtVertical");
    bios.TSK.instance("TSK_RunAtVertical").order = 9;
    bios.TSK.instance("TSK_RunAtVertical").priority = 10;
    bios.TSK.instance("TSK_RunAtVertical").stackSize = 4096;
    bios.TSK.instance("TSK_RunAtVertical").fxn = prog.extern("TSK_runAtVertical");

    bios.TSK.create("TSK_RunOncePerField");
    bios.TSK.instance("TSK_RunOncePerField").order = 10;
    bios.TSK.instance("TSK_RunOncePerField").priority = 3;
    bios.TSK.instance("TSK_RunOncePerField").stackSize = 4096;
    bios.TSK.instance("TSK_RunOncePerField").fxn = prog.extern("TSK_runOncePerField");

    bios.TSK.create("TSK_VideoOverlay");
    bios.TSK.instance("TSK_VideoOverlay").order = 32;
    bios.TSK.instance("TSK_VideoOverlay").priority = 1;
    bios.TSK.instance("TSK_VideoOverlay").stackSize = 2048;
    bios.TSK.instance("TSK_VideoOverlay").fxn = prog.extern("TSK_videoOverlay");
    bios.TSK.instance("TSK_VideoOverlay").comment = "Video Overlay Drawing Task";

    bios.TSK.create("TSK_IdspRx");
    bios.TSK.instance("TSK_IdspRx").order = 22;
    bios.TSK.instance("TSK_IdspRx").priority = 13;
    bios.TSK.instance("TSK_IdspRx").stackSize = 2048;
    bios.TSK.instance("TSK_IdspRx").fxn = prog.extern("IDSP_TSK_Rx");

    bios.TSK.create("TSK_IdspTx");
    bios.TSK.instance("TSK_IdspTx").order = 23;
    bios.TSK.instance("TSK_IdspTx").priority = 14;
    bios.TSK.instance("TSK_IdspTx").stackSize = 4096;
    bios.TSK.instance("TSK_IdspTx").fxn = prog.extern("IDSP_TSK_Tx");

    /** Tasks (DSP1) **/

    bios.TSK.create("TSK_MainInit");
    bios.TSK.instance("TSK_MainInit").order = 11;
    bios.TSK.instance("TSK_MainInit").priority = 6;
    bios.TSK.instance("TSK_MainInit").stackSize = 2048;
    bios.TSK.instance("TSK_MainInit").fxn = prog.extern("TSK_mainInit");

    bios.TSK.create("TSK_PerformBIT");
    bios.TSK.instance("TSK_PerformBIT").order = 35;
    bios.TSK.instance("TSK_PerformBIT").priority = 3;
    bios.TSK.instance("TSK_PerformBIT").stackSize = 4096;
    bios.TSK.instance("TSK_PerformBIT").fxn = prog.extern("TSK_performBIT");

    bios.TSK.create("TSK_AlwaysCheck");
    bios.TSK.instance("TSK_AlwaysCheck").fxn = prog.extern("FXN_AlwaysCheck");
    bios.TSK.instance("TSK_AlwaysCheck").stackSize = 4096;
    bios.TSK.instance("TSK_AlwaysCheck").priority = 1;
    bios.TSK.instance("TSK_AlwaysCheck").order = 2;

    bios.TSK.create("TSK_IncomingCtrlBox");
    bios.TSK.instance("TSK_IncomingCtrlBox").priority = 5;
    bios.TSK.instance("TSK_IncomingCtrlBox").stackSize = 2048;
    bios.TSK.instance("TSK_IncomingCtrlBox").fxn = prog.extern("STDMSG_TSK_ProcessIncoming");
    bios.TSK.instance("TSK_IncomingCtrlBox").arg0 = 1;
    bios.TSK.instance("TSK_IncomingCtrlBox").order = 5;

    bios.TSK.create("TSK_IncomingGui");
    bios.TSK.instance("TSK_IncomingGui").stackSize = 2048;
    bios.TSK.instance("TSK_IncomingGui").priority = 5;
    bios.TSK.instance("TSK_IncomingGui").fxn = prog.extern("STDMSG_TSK_ProcessIncoming");
    bios.TSK.instance("TSK_IncomingGui").order = 6;

    bios.TSK.create("TSK_IncomingVme");
    bios.TSK.instance("TSK_IncomingVme").stackSize = 2048;
    bios.TSK.instance("TSK_IncomingVme").priority = 5;
    bios.TSK.instance("TSK_IncomingVme").fxn = prog.extern("VME_TSK_GetPacket");
    bios.TSK.instance("TSK_IncomingVme").order = 7;

    bios.TSK.create("TSK_ProcessStdPacket");
    bios.TSK.instance("TSK_ProcessStdPacket").fxn = prog.extern("STDMSG_TSK_ProcessStdPacket");
    bios.TSK.instance("TSK_ProcessStdPacket").stackSize = 8192;
    bios.TSK.instance("TSK_ProcessStdPacket").order = 8;
    bios.TSK.instance("TSK_ProcessStdPacket").priority = 4;

    bios.TSK.create("TSK_busFlushQueues");
    bios.TSK.instance("TSK_busFlushQueues").stackSize = 2048;
    bios.TSK.instance("TSK_busFlushQueues").fxn = prog.extern("busFlushQueuesTask");
    bios.TSK.instance("TSK_busFlushQueues").priority = 9;
    bios.TSK.instance("TSK_busFlushQueues").order = 13;

    bios.TSK.create("TSK_VidSwitch");
    bios.TSK.instance("TSK_VidSwitch").stackSize = 2048;
    bios.TSK.instance("TSK_VidSwitch").priority = 4;
    bios.TSK.instance("TSK_VidSwitch").fxn = prog.extern("VID_TSK_SwitchSrc");
    bios.TSK.instance("TSK_VidSwitch").order = 14;

    bios.TSK.create("TSK_ProcessObjects");
    bios.TSK.instance("TSK_ProcessObjects").comment = "Blob processing task";
    bios.TSK.instance("TSK_ProcessObjects").priority = 12;
    bios.TSK.instance("TSK_ProcessObjects").fxn = prog.extern("CRP_TSK_ProcessObjects");
    bios.TSK.instance("TSK_ProcessObjects").order = 17;
    bios.TSK.instance("TSK_ProcessObjects").stackSize = 4096;

    bios.TSK.create("TSK_FXN_2Hz");
    bios.TSK.instance("TSK_FXN_2Hz").fxn = prog.extern("TSK_Process_2Hz");
    bios.TSK.instance("TSK_FXN_2Hz").stackSize = 4096;
    bios.TSK.instance("TSK_FXN_2Hz").order = 26;

    bios.TSK.create("TSK_Download");
    bios.TSK.instance("TSK_Download").stackSize = 2048;
    bios.TSK.instance("TSK_Download").fxn = prog.extern("STDMSG_TSK_CodeReceiveMsg");
    bios.TSK.instance("TSK_Download").order = 29;

    /** Tasks (uarts) **/

    bios.TSK.create("TSK_UartTx");
    bios.TSK.instance("TSK_UartTx").stackSize = 2048;
    bios.TSK.instance("TSK_UartTx").order = 27;
    bios.TSK.instance("TSK_UartTx").fxn = prog.extern("TSK_UartTxHdlr");
    bios.TSK.instance("TSK_UartTx").priority = 11;

    bios.TSK.create("TSK_UartRx");
    bios.TSK.instance("TSK_UartRx").priority = 14;
    bios.TSK.instance("TSK_UartRx").stackSize = 2048;
    bios.TSK.instance("TSK_UartRx").fxn = prog.extern("TSK_UartRxHdlr");
    bios.TSK.instance("TSK_UartRx").order = 28;

    /** Tasks (ethernet) **/

    bios.TSK.create("TSK_TcpClientManager");
    bios.TSK.instance("TSK_TcpClientManager").order = 31;
    bios.TSK.instance("TSK_TcpClientManager").priority = 5;
    bios.TSK.instance("TSK_TcpClientManager").stackSize = 2048;
    bios.TSK.instance("TSK_TcpClientManager").fxn = prog.extern("tcp_client_manager");
    bios.TSK.instance("TSK_TcpClientManager").comment = "TCP Client Manager";

    bios.TSK.create("TSK_IpStack");
    bios.TSK.instance("TSK_IpStack").order = 15;
    bios.TSK.instance("TSK_IpStack").priority = 1;
    bios.TSK.instance("TSK_IpStack").stackSize = 4096;
    bios.TSK.instance("TSK_IpStack").fxn = prog.extern("TSK_ipStack");
    bios.TSK.instance("TSK_IpStack").comment = "Task for IP and ethernet functionality";

    bios.TSK.create("TSK_TcpServerManager");
    bios.TSK.instance("TSK_TcpServerManager").order = 16;
    bios.TSK.instance("TSK_TcpServerManager").priority = 5;
    bios.TSK.instance("TSK_TcpServerManager").stackSize = 2048;
    bios.TSK.instance("TSK_TcpServerManager").fxn = prog.extern("TSK_tcpServerManager");
    bios.TSK.instance("TSK_TcpServerManager").comment = "TCP Server Manager";

    // deprecated ??
    bios.TSK.create("TSK_UdpSocket");
    bios.TSK.instance("TSK_UdpSocket").order = 30;
    bios.TSK.instance("TSK_UdpSocket").priority = 1;
    bios.TSK.instance("TSK_UdpSocket").stackSize = 2048;
    bios.TSK.instance("TSK_UdpSocket").fxn = prog.extern("TSK_udpSocket");
    bios.TSK.instance("TSK_UdpSocket").comment = "was used for BLOB data transfer";


    /** Tasks (gate, histogram, correlation) **/

    bios.TSK.create("TSK_EndOfGate");
    bios.TSK.instance("TSK_EndOfGate").fxn = prog.extern("TSK_processEndGate");
    bios.TSK.instance("TSK_EndOfGate").priority = 14;
    bios.TSK.instance("TSK_EndOfGate").stackSize = 2048;
    bios.TSK.instance("TSK_EndOfGate").order = 25;

    bios.TSK.create("TSK_EndOfGate0");
    bios.TSK.instance("TSK_EndOfGate0").comment = "End Of Gate 0 processing task";
    bios.TSK.instance("TSK_EndOfGate0").arg0 = 0;
    bios.TSK.instance("TSK_EndOfGate0").fxn = prog.extern("TSK_EOG_EndOfGate");
    bios.TSK.instance("TSK_EndOfGate0").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfGate0").priority = 13;
    bios.TSK.instance("TSK_EndOfGate0").order = 3;

    bios.TSK.create("TSK_EndOfGate1");
    bios.TSK.instance("TSK_EndOfGate1").comment = "End of Gate 1 processing task";
    bios.TSK.instance("TSK_EndOfGate1").arg0 = 1;
    bios.TSK.instance("TSK_EndOfGate1").fxn = prog.extern("TSK_EOG_EndOfGate");
    bios.TSK.instance("TSK_EndOfGate1").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfGate1").priority = 13;
    bios.TSK.instance("TSK_EndOfGate1").order = 4;

    bios.TSK.create("TSK_EndOfGate2");
    bios.TSK.instance("TSK_EndOfGate2").comment = "End of Gate 2 processing task";
    bios.TSK.instance("TSK_EndOfGate2").arg0 = 2;
    bios.TSK.instance("TSK_EndOfGate2").fxn = prog.extern("TSK_EOG_EndOfGate");
    bios.TSK.instance("TSK_EndOfGate2").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfGate2").priority = 13;

    bios.TSK.create("TSK_histogramGate0");
    bios.TSK.instance("TSK_histogramGate0").stackSize = 2048;
    bios.TSK.instance("TSK_histogramGate0").fxn = prog.extern("TSK_processHistogram");
    bios.TSK.instance("TSK_histogramGate0").order = 19;
    bios.TSK.instance("TSK_histogramGate0").priority = 2;

    bios.TSK.create("TSK_histogramGate1");
    bios.TSK.instance("TSK_histogramGate1").stackSize = 2048;
    bios.TSK.instance("TSK_histogramGate1").arg0 = 1;
    bios.TSK.instance("TSK_histogramGate1").fxn = prog.extern("TSK_processHistogram");
    bios.TSK.instance("TSK_histogramGate1").order = 20;
    bios.TSK.instance("TSK_histogramGate1").priority = 2;

    bios.TSK.create("TSK_histogramGate2");
    bios.TSK.instance("TSK_histogramGate2").stackSize = 2048;
    bios.TSK.instance("TSK_histogramGate2").arg0 = 2;
    bios.TSK.instance("TSK_histogramGate2").fxn = prog.extern("TSK_processHistogram");
    bios.TSK.instance("TSK_histogramGate2").priority = 2;

    bios.TSK.create("TSK_handleCorrelation");
    bios.TSK.instance("TSK_handleCorrelation").stackSize = 2048;
    bios.TSK.instance("TSK_handleCorrelation").fxn = prog.extern("TSK_correlationHdlr");
    bios.TSK.instance("TSK_handleCorrelation").priority = 14;
    bios.TSK.instance("TSK_handleCorrelation").order = 18;

    bios.TSK.create("TSK_EndOfCorr0");
    bios.TSK.instance("TSK_EndOfCorr0").comment = "End of correlation engine 0 task";
    bios.TSK.instance("TSK_EndOfCorr0").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfCorr0").fxn = prog.extern("TSK_EOG_EndOfCorrelation");
    bios.TSK.instance("TSK_EndOfCorr0").arg0 = 0;
    bios.TSK.instance("TSK_EndOfCorr0").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr0").order = 21;

    bios.TSK.create("TSK_EndOfCorr1");
    bios.TSK.instance("TSK_EndOfCorr1").order = 33;
    bios.TSK.instance("TSK_EndOfCorr1").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfCorr1").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr1").fxn = prog.extern("TSK_EOG_EndOfCorrelation");
    bios.TSK.instance("TSK_EndOfCorr1").arg0 = 1;
    bios.TSK.instance("TSK_EndOfCorr1").comment = "End of correlation engine 1 task";

    bios.TSK.create("TSK_EndOfCorr2");
    bios.TSK.instance("TSK_EndOfCorr2").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfCorr2").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr2").fxn = prog.extern("TSK_EOG_EndOfCorrelation");
    bios.TSK.instance("TSK_EndOfCorr2").arg0 = 2;
    bios.TSK.instance("TSK_EndOfCorr2").comment = "End of correlation engine 2 task";

    // bios.TSK.create("TSK_PhaseCorrelation");
    // bios.TSK.instance("TSK_PhaseCorrelation").order = 34;
    // bios.TSK.instance("TSK_PhaseCorrelation").stackSize = 4096;
    // bios.TSK.instance("TSK_EndOfCorr1").priority = 1;
    // bios.TSK.instance("TSK_PhaseCorrelation").comment = "Phase Correlation Processing Task";
    // bios.TSK.instance("TSK_PhaseCorrelation").fxn = prog.extern("TSK_PhaseCorrelationTask");



    // TO BE MOVED


    bios.SWI.instance("PRD_swi").order = 1;
    bios.SWI.instance("KNL_swi").order = 2;

    bios.PRD.create("PRD_2Hz");
    bios.PRD.instance("PRD_2Hz").order = 1;
    bios.PRD.instance("PRD_2Hz").period = 500;
    bios.PRD.instance("PRD_2Hz").fxn = prog.extern("FXN_2Hz");

    bios.ECM.ENABLE = 1;
    //bios.ECM.instance("EVENT55").comment = "Vsync event (GPIO4)";
    bios.ECM.instance("EVENT55").unmask = 1;

    bios.ECM.instance("EVENT55").fxn = prog.extern("HWI_EOG_Vsync");

    bios.ECM.ENABLE = 0;
    bios.ECM.ENABLE = 0;

    bios.HWI.ENABLEEXC = 0;
    bios.HWI.ENABLEEXC = 1;
    bios.HWI.ENABLEEXC = 0;

    bios.RTDX.BUFSIZE = 2064;


    bios.CLK.MICROSECONDS = 999.9960;
    bios.CLK.SPECIFYRATE = 1;
    bios.CLK.INPUTCLK = 50.0000;


    bios.HWI.ENABLEEXC = 1;


    bios.CLK.SPECIFYRATE = 0;
    bios.CLK.MICROSECONDS = 999.9960;
    bios.CLK.SPECIFYRATE = 1;
    bios.CLK.INPUTCLK = 1000000.0000;
    bios.CLK.CONFIGURETIMER = 0;
    bios.CLK.ENABLEHTIME = 0;
    bios.CLK.HIRESTIME = 0;
    bios.CLK.HIRESTIME = 1;
    bios.CLK.ENABLEHTIME = 1;
    bios.CLK.INPUTCLK = 1000.0000;

    bios.ECM.ENABLE = 1;
    bios.ECM.instance("EVENT67").fxn = prog.extern("CLK_F_isr");
    bios.ECM.instance("EVENT67").unmask = 1;
    bios.ECM.instance("EVENT67").fxn = prog.extern("CLK_F_isr", "asm");
    bios.ECM.instance("EVENT67").unmask = 0;

    bios.ECM.ENABLE = 0;

    bios.CLK.SPECIFYRATE = 0;

    bios.STS.create("VsyncPeriod");
    bios.STS.instance("VsyncPeriod").unitType = "High resolution time based";
    bios.STS.instance("VsyncPeriod").operation = "Nothing";
    bios.STS.instance("VsyncPeriod").comment = "Vsync period";

    bios.LOG.create("LOG_err");

    bios.HWI.RESETVECTOR = 1;
    bios.HWI.RESETVECTOR = 0;

    bios.MEM.create("INIT");
    bios.MEM.instance("INIT").createHeap = 0;
    bios.MEM.instance("INIT").len = 0x00000300;
    bios.MEM.instance("INIT").base = 0x00820100;
    bios.MEM.instance("INIT").space = "code/data";

    bios.MEM.create("DEADBEEF");
    bios.MEM.instance("DEADBEEF").createHeap = 0;
    bios.MEM.instance("DEADBEEF").len = 0x00000100;
    bios.MEM.instance("DEADBEEF").base = 0x00820000;
    bios.MEM.instance("DEADBEEF").space = "code/data";

    bios.STS.create("idspDpNotRdy");



    bios.STS.create("gateOverrun0");
    bios.STS.create("gateOverrun1");
    bios.STS.create("gateOverrun2");

    bios.STS.create("VsyncOverrun");

    bios.STS.create("eogToErr0");
    bios.STS.instance("eogToErr0").unitType = "High resolution time based";
    bios.STS.instance("eogToErr0").operation = "Nothing";

    bios.STS.create("eogToErr1");
    bios.STS.instance("eogToErr1").unitType = "High resolution time based";
    bios.STS.instance("eogToErr1").operation = "Nothing";

    bios.STS.create("eogToErr2");
    bios.STS.instance("eogToErr2").unitType = "High resolution time based";
    bios.STS.instance("eogToErr2").operation = "Nothing";


    bios.STS.create("mountToSimDelta");
    bios.STS.instance("mountToSimDelta").unitType = "High resolution time based";
    bios.STS.instance("mountToSimDelta").operation = "Nothing";


    bios.MEM.instance("IRAM").len = 0x001cfc00;
    bios.MEM.instance("IRAM").base = 0x00820400;

    // rdobbis FIXX
    bios.IRAM.createHeap = 1;

    bios.MEM.BIOSOBJSEG = prog.get("IRAM");
    bios.MEM.MALLOCSEG = prog.get("IRAM");

    bios.MEM.USERCOMMANDFILE = 1;
    bios.MEM.ENABLELOADADDR = 0;
    bios.MEM.STACKSIZE = 0x2000;

    bios.TSK.STACKSEG = prog.get("IRAM");

    bios.PRD.create("PRD_NDK");
    bios.PRD.instance("PRD_NDK").order = 2;
    bios.PRD.instance("PRD_NDK").period = 100;
    bios.PRD.instance("PRD_NDK").fxn = prog.extern("llTimerTick");
    bios.PRD.instance("PRD_NDK").mode = "one-shot";
    bios.PRD.instance("PRD_NDK").mode = "continuous";
    bios.PRD.instance("PRD_NDK").period = 500;
    bios.PRD.instance("PRD_NDK").period = 100;

    bios.HOOK.create("HOOK_NDK");
    bios.HOOK.instance("HOOK_NDK").initFxn = prog.extern("NDK_hookInit");
    bios.HOOK.instance("HOOK_NDK").createFxn = prog.extern("NDK_hookCreate");

    bios.PRD.instance("PRD_NDK").mode = "one-shot";
    bios.PRD.instance("PRD_NDK").mode = "continuous";


    bios.IDL.instance("LNK_dataPump").order = 1;
    bios.IDL.instance("RTA_dispatcher").order = 2;
    bios.IDL.instance("IDL_cpuLoad").order = 3;



    bios.IDL.instance("IDL_cpuLoad").order = 1;
    bios.IDL.instance("LNK_dataPump").order = 2;
    bios.IDL.instance("RTA_dispatcher").order = 3;

    // rdobbis FIXX
    //bios.IRAM.createHeap = 1;

    bios.MEM.create("DDR");
    bios.MEM.instance("DDR").space = "data";
    bios.MEM.instance("DDR").len = 0x01000000;
    bios.MEM.instance("DDR").base = 0xe0000000;
    bios.MEM.instance("DDR").heapSize = 0x00020000;

    bios.MEM.NOMEMORYHEAPS = 1;
    bios.MEM.NOMEMORYHEAPS = 0;

    /*
    * Enable heaps in IRAM and define label SEG0 for heap usage.
    */

    bios.MEM.instance("IRAM").createHeap = 0;
    bios.MEM.instance("DDR").createHeap = 1;
    bios.MEM.instance("DDR").heapSize = 0x00020000;
    bios.MEM.instance("DDR").createHeap = 0;
    bios.MEM.instance("IRAM").createHeap = 1;
    bios.MEM.instance("IRAM").enableHeapLabel = 1;
    bios.MEM.instance("IRAM").heapLabel = prog.extern("SEG0");
    bios.MEM.instance("IRAM").heapSize = 0x00020000;

    bios.MEM.BIOSSEG = prog.get("IRAM");
    bios.MEM.ARGSSEG = prog.get("IRAM");
    bios.MEM.STACKSEG = prog.get("IRAM");
    bios.MEM.GBLINITSEG = prog.get("IRAM");
    bios.MEM.TRCDATASEG = prog.get("IRAM");
    bios.MEM.SYSDATASEG = prog.get("IRAM");
    bios.MEM.OBJSEG = prog.get("IRAM");
    bios.MEM.SYSINITSEG = prog.get("IRAM");
    bios.MEM.HWISEG = prog.get("IRAM");
    bios.MEM.HWIVECSEG = prog.get("IRAM");
    bios.MEM.RTDXTEXTSEG = prog.get("IRAM");
    bios.MEM.BIOSOBJSEG = prog.get("IRAM");
    bios.MEM.MALLOCSEG = prog.get("IRAM");

    bios.MEM.create("DDR_UNCACHED");
    bios.MEM.instance("DDR_UNCACHED").comment = "Non cached buffers";
    bios.MEM.instance("DDR_UNCACHED").createHeap = 0;
    bios.MEM.instance("DDR_UNCACHED").len = 0x01000000;
    bios.MEM.instance("DDR_UNCACHED").base = 0xe1000000;

    //
    // ******* Priority brought out for debug (keep at bottom of file) ********
    //

    bios.TSK.instance("TSK_IdspTx").priority = 14;
    bios.TSK.instance("TSK_UartRx").priority = 14;
    bios.TSK.instance("TSK_EndOfGate").priority = 14;
    bios.TSK.instance("TSK_ProcessVsync").priority = 14;
    bios.TSK.instance("TSK_handleCorrelation").priority = 14;

    bios.TSK.instance("TSK_IdspRx").priority = 13;
    bios.TSK.instance("TSK_EndOfGate0").priority = 13;
    bios.TSK.instance("TSK_EndOfGate1").priority = 13;
    bios.TSK.instance("TSK_EndOfGate2").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr0").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr1").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr2").priority = 13;

    bios.TSK.instance("TSK_ProcessObjects").priority = 12;

    bios.TSK.instance("TSK_UartTx").priority = 11;

    bios.TSK.instance("TSK_RunAtVertical").priority = 10;

    bios.TSK.instance("TSK_busFlushQueues").priority = 9;

    bios.TSK.instance("TSK_MainInit").priority = 8;

    bios.TSK.instance("TSK_IncomingGui").priority = 7;
    bios.TSK.instance("TSK_IncomingVme").priority = 7;
    bios.TSK.instance("TSK_IncomingCtrlBox").priority = 7;
    bios.TSK.instance("TSK_TcpServerManager").priority = 7;
    bios.TSK.instance("TSK_TcpClientManager").priority = 7;

    bios.TSK.instance("TSK_VidSwitch").priority = 6;
    bios.TSK.instance("TSK_ProcessStdPacket").priority = 6;

    bios.TSK.instance("TSK_RunOncePerField").priority = 5;

    bios.TSK.instance("TSK_histogramGate0").priority = 4;
    bios.TSK.instance("TSK_histogramGate1").priority = 4;
    bios.TSK.instance("TSK_histogramGate2").priority = 4;

    bios.TSK.instance("TSK_PerformBIT").priority = 3;

    bios.TSK.instance("TSK_IpStack").priority = 2;
    bios.TSK.instance("TSK_UdpSocket").priority = 2;
    bios.TSK.instance("TSK_AlwaysCheck").priority = 2;
    bios.TSK.instance("TSK_VideoOverlay").priority = 2;

    // !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!

    prog.gen();
  • Hi Richard,

    Yes, the generated C code should be built in automatically, during your application build. You shouldn't need to do anything to bring that in.

    Were you able to see the settings you were looking for in that C file?

    Steve

  • Steve

    I could not find the file in question using the convention you indicated (my project is named test1):
    .../cfg/<your project name>_p<target>.c
    But I did find:
    .../cfg/build_p64P.c -and- .../cfg/build_p64P.h
    But neither file contains any information about LCKs and SEMs
    (I'll include a copy the 'c' file contents below)
    Could this be because of the errors I noted when running XGCONF ??

    Thanks

    /*
    * Do not modify this file; it is automatically
    * generated and any modifications will be overwritten.
    *
    * @(#) xdc-z52
    */

    #define __nested__
    #define __config__

    #include <xdc/std.h>

    /*
    * ======== GENERATED SECTIONS ========
    *
    * MODULE INCLUDES
    *
    * <module-name> INTERNALS
    * <module-name> INHERITS
    * <module-name> VTABLE
    * <module-name> PATCH TABLE
    * <module-name> DECLARATIONS
    * <module-name> OBJECT OFFSETS
    * <module-name> TEMPLATES
    * <module-name> INITIALIZERS
    * <module-name> FUNCTION STUBS
    * <module-name> PROXY BODY
    * <module-name> OBJECT DESCRIPTOR
    * <module-name> SYSTEM FUNCTIONS
    * <module-name> PRAGMAS
    *
    * INITIALIZATION ENTRY POINT
    * PROGRAM GLOBALS
    * CLINK DIRECTIVES
    */


    /*
    * ======== MODULE INCLUDES ========
    */



    /*
    * ======== xdc.cfg.Program TEMPLATE ========
    */

    /*
    * ======== __ASM__ ========
    * Define absolute path prefix for this executable's
    * configuration generated files.
    */
    xdc__META(__ASM__, "@(#)__ASM__ = C:/7000/DSP1/Debug/configPkg/package/cfg/build_p64P");

    /*
    * ======== __ISA__ ========
    * Define the ISA of this executable. This symbol is used by platform
    * specific "exec" commands that support more than one ISA; e.g., gdb
    */
    xdc__META(__ISA__, "@(#)__ISA__ = 64P");

    /*
    * ======== __PLAT__ ========
    * Define the name of the platform that can run this executable. This
    * symbol is used by platform independent "exec" commands
    */
    xdc__META(__PLAT__, "@(#)__PLAT__ = SYS1");

    /*
    * ======== __TARG__ ========
    * Define the name of the target used to build this executable.
    */
    xdc__META(__TARG__, "@(#)__TARG__ = ti.targets.C64P");

    /*
    * ======== __TRDR__ ========
    * Define the name of the class that can read/parse this executable.
    */
    xdc__META(__TRDR__, "@(#)__TRDR__ = ti.targets.omf.cof.Coff");


    /*
    * ======== PROGRAM GLOBALS ========
    */


    /*
    * ======== CONSTANTS ========
    */
  • Richard,

    Richard Dobbis said:
    Could this be because of the errors I noted when running XGCONF ??

    Yes. I forgot that part of the original problem you posted was a build error.

    Can you please attach your *.cfg file?  Also, the entire build log that shows the error you posted an excerpt of above?

    Steve

  • Steve

    Here's the build log:

    **** Build of configuration Debug for project test1 ****

    "C:\\ti\\ccsv5\\utils\\bin\\gmake" SYS1.opt
    subdir_rules.mk:220: warning: overriding commands for target `configPkg/linker.cmd'
    subdir_rules.mk:154: warning: ignoring old commands for target `configPkg/linker.cmd'
    'Building file: ../app.cfg'
    'Invoking: XDCtools'
    "C:/ti/xdctools_3_23_04_60/xs" --xdcpath="C:/ti/bios_6_35_04_50/packages;C:/ti/dsplib_c66x_3_1_0_0/packages;C:/ti/ccsv5/ccs_base;C:/7000/platforms;" xdc.tools.configuro -o configPkg -t ti.targets.C64P -p SYS1 -r release -c "C:/ti/ccsv5/tools/compiler/c6000_7.4.4" --compileOptions "-g --optimize_with_debug" "../app.cfg"
    making package.mak (because of package.bld) ...
    configuring app.x64P from package/cfg/app_p64P.cfg ...
    generating custom ti.sysbios library makefile ...
    Starting build of library sources ...
    making C:/7000/DSP1/src/sysbios.a64P ...
    cl64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/BIOS.c ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/c64p/Hwi_disp_always.s64P ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/c64p/Hwi_asm.s62 ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/c64p/Hwi_asm_switch.s62 ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/c64p/Clobber_asm.s62 ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/c64p/Exception_asm.s64P ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/c64p/MemoryProtect_asm.s64P ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/family/c62/TaskSupport_asm.s62 ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/timers/timer64/Timer_asm.s64P ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/timers/gptimer/Timer_asm.s64P ...
    asm64P C:/ti/bios_6_35_04_50/packages/ti/sysbios/timers/dmtimer/Timer_asm.s64P ...
    ar64P BIOS.obj c64p_Hwi_disp_always.obj c64p_Hwi_asm.obj c64p_Hwi_asm_switch.obj c64p_Clobber_asm.obj c64p_Exception_asm.obj c64p_MemoryProtect_asm.obj c62_TaskSupport_asm.obj timer64_Timer_asm.obj gptimer_Timer_asm.obj dmtimer_Timer_asm.obj ...
    Build of libraries done.
    cl64P package/cfg/app_p64P.c ...
    'Finished building: ../app.cfg'
    ' '
    1 file(s) copied.
    subdir_rules.mk:220: warning: overriding commands for target `configPkg/linker.cmd'
    subdir_rules.mk:154: warning: ignoring old commands for target `configPkg/linker.cmd'
    gmake: *** No rule to make target `SYS1.opt'. Stop.

    **** Build Finished ****


    And the CFG file:

    xdc.loadPackage('ti.bios.tconf');

    /*
    * Enable common BIOS features used by all examples
    */

    bios.enableRealTimeAnalysis(prog);
    bios.enableMemoryHeaps(prog);
    bios.enableRtdx(prog);
    bios.enableTskManager(prog);

    bios.MEM.instance("DDR2").destroy();
    bios.MEM.STACKSIZE = 0x2000;

    /** Idle Task **/

    bios.IDL.create("IDL_sleepIdle");
    bios.IDL.instance("IDL_sleepIdle").fxn = "IDL_addToBios";
    bios.IDL.instance("IDL_sleepIdle").comment = "additional Idle functions";

    /** Globals **/

    /*
    * The following statements will enable the MAR bits for MAR 224 to MAR 239
    * This will make the external memory range (0xE0000000-0xEFFFFFFF) cacheable.
    */

    bios.GBL.CLKOUT = 1000.0000;
    bios.GBL.SPECIFYRTSLIB = 0;
    bios.GBL.CALLUSERINITFXN = 1;
    bios.GBL.USERINITFXN = "InitBSS";
    bios.GBL.CALLUSERINITFXN = 0;
    bios.GBL.C64PLUSCONFIGURE = 1;
    bios.GBL.C64PLUSL1PCFG = "32k";
    bios.GBL.C64PLUSL1DCFG = "32k";
    bios.GBL.CLKIN = 40000;
    bios.GBL.C64PLUSMAR224to255 = 0x0000fffd;
    bios.GBL.C64PLUSL2CFG = "32k";

    /** Interrupts **/

    bios.HWI.instance("HWI_INT4").useDispatcher = 1;
    bios.HWI.instance("HWI_INT4").interruptSelectNumber = 55;
    bios.HWI.instance("HWI_INT4").fxn = "HWI_vsyncInt";

    bios.HWI.instance("HWI_INT5").useDispatcher = 1;
    bios.HWI.instance("HWI_INT5").fxn = "HWI_EOG_EndGate";
    bios.HWI.instance("HWI_INT5").interruptSelectNumber = 56;

    bios.HWI.instance("HWI_INT6").useDispatcher = 1;
    bios.HWI.instance("HWI_INT6").interruptSelectNumber = 57;
    bios.HWI.instance("HWI_INT6").fxn = "HWI_UART_cisr";

    bios.HWI.instance("HWI_INT7").useDispatcher = 1;
    bios.HWI.instance("HWI_INT7").interruptSelectNumber = 58;
    bios.HWI.instance("HWI_INT7").fxn = "HWI_VME_cisr";

    bios.HWI.instance("HWI_INT8").useDispatcher = 1;
    bios.HWI.instance("HWI_INT8").interruptSelectNumber = 17;
    bios.HWI.instance("HWI_INT8").fxn = "HWI_unused", "asm";

    bios.HWI.instance("HWI_INT9").useDispatcher = 1;
    bios.HWI.instance("HWI_INT9").interruptSelectNumber = 54;
    bios.HWI.instance("HWI_INT9").fxn = "CRP_HWI_cisr";

    bios.HWI.instance("HWI_INT10").useDispatcher = 1;
    bios.HWI.instance("HWI_INT10").interruptSelectNumber = 24;
    bios.HWI.instance("HWI_INT10").fxn = "HWI_unused", "asm";

    bios.HWI.instance("HWI_INT13").useDispatcher = 1;
    bios.HWI.instance("HWI_INT13").interruptSelectNumber = 62;
    bios.HWI.instance("HWI_INT13").fxn = "CORR_HWI_cisr";

    bios.HWI.instance("HWI_INT15").useDispatcher = 1;
    bios.HWI.instance("HWI_INT15").interruptSelectNumber = 20;
    bios.HWI.instance("HWI_INT15").fxn = "HWI_srioInt";

    /** LOCKS **/

    bios.LCK.create("LCK_PerformBIT");

    bios.LCK.create("LCK_OverlayBuf");
    bios.LCK.create("LCK_OverlayVSync");
    bios.LCK.create("LCK_OverlaySramCtrl");

    bios.LCK.create("LCK_EMIF_Ready");
    bios.LCK.instance("LCK_EMIF_Ready").comment = "EMIF operations";

    bios.LCK.create("LCK_LSU0_Ready");
    bios.LCK.instance("LCK_LSU0_Ready").comment = "SRIO maintWrite, fpgaFlashWrite, writeWord and writeBlock";
    bios.LCK.create("LCK_LSU1_Ready");
    bios.LCK.instance("LCK_LSU1_Ready").comment = "SRIO maintRead, fpgaFlashRead, and readWord";
    bios.LCK.create("LCK_LSU2_Ready");
    bios.LCK.instance("LCK_LSU2_Ready").comment = "SRIO setBits(r) and setBits(w)";
    bios.LCK.create("LCK_LSU3_Ready");
    bios.LCK.instance("LCK_LSU3_Ready").comment = "SRIO readBlock";

    bios.LCK.create("LCK_VidSwitch");
    bios.LCK.create("LCK_InterDspCom");
    bios.LCK.create("LCK_TcpTx");
    bios.LCK.create("LCK_VmeQueryQueue");
    bios.LCK.create("LCK_sendBusStatusMessage");
    bios.LCK.create("LCK_setEthernetData");
    bios.LCK.create("LCK_mountGoto");
    bios.LCK.create("LCK_ProcessError");
    bios.LCK.create("LCK_I2C");
    bios.LCK.create("LCK_Annotate");
    bios.LCK.create("LCK_UartRx");
    bios.LCK.create("LCK_UartTx");
    bios.LCK.create("LCK_EvpuQueue");
    bios.LCK.create("LCK_EvpuServerTx");
    bios.LCK.create("LCK_EvpuStreamRx");
    bios.LCK.create("LCK_EvpuStreamTx");
    bios.LCK.create("LCK_ThreshData0");
    bios.LCK.create("LCK_ThreshData1");
    bios.LCK.create("LCK_ThreshData2");
    bios.LCK.create("LCK_VideoLUT");
    bios.LCK.create("LCK_SimLrf");
    bios.LCK.create("LCK_MultiTargetTags");
    bios.LCK.create("LCK_HistogramEnable");
    bios.LCK.create("LCK_StatusMsg");
    bios.LCK.create("LCK_DigitalVideoSwitch");

    /** Mailboxes **/

    bios.MBX.create("MBX_InPacket");
    bios.MBX.instance("MBX_InPacket").comment = "Std msg packet MBX";
    bios.MBX.instance("MBX_InPacket").messageSize = 8;
    bios.MBX.instance("MBX_InPacket").length = 512;

    bios.MBX.create("MBX_IdspTx");
    bios.MBX.instance("MBX_IdspTx").comment = "Idsp Tx mailbox";
    bios.MBX.instance("MBX_IdspTx").messageSize = 4;
    bios.MBX.instance("MBX_IdspTx").length = 64;

    bios.MBX.create("MBX_dlPacket");
    bios.MBX.instance("MBX_dlPacket").comment = "DSP or FPGA download packet";
    bios.MBX.instance("MBX_dlPacket").messageSize = 4;

    /** Memory **/

    /** Semaphores **/

    bios.SEM.create("SEM_InitFinished");
    bios.SEM.create("SEM_SplashFinished");
    bios.SEM.create("SEM_FXN_2Hz");

    bios.SEM.create("SEM_udpTransmit");
    bios.SEM.create("SEM_startTcpSocket");
    bios.SEM.create("SEM_startUdpSocket");
    bios.SEM.create("SEM_acceptConnection");
    bios.SEM.create("SEM_tcpClientManager");
    bios.SEM.create("SEM_tcpClientTx");

    bios.SEM.create("SEM_RunOncePerField");
    bios.SEM.create("SEM_RunAtVertical");
    bios.SEM.create("SEM_ProcessVsync");

    bios.SEM.create("SEM_PerformBIT");

    bios.SEM.create("SEM_RxRdy");
    bios.SEM.create("SEM_RxUart0");
    bios.SEM.create("SEM_RxUart1");
    bios.SEM.create("SEM_RxUart2");
    bios.SEM.create("SEM_RxUart3");
    bios.SEM.create("SEM_RxUart4");
    bios.SEM.create("SEM_RxUart5");
    bios.SEM.create("SEM_RxUart6");
    bios.SEM.create("SEM_RxUart7");
    bios.SEM.create("SEM_UartIsr");
    bios.SEM.create("SEM_TxFifoEmpty");
    bios.SEM.create("SEM_UartDataToSend");

    bios.SEM.create("SEM_OverlayMsg");
    bios.SEM.create("SEM_OverlayVSync");

    bios.SEM.create("SEM_TargSimOn");
    bios.SEM.create("SEM_VidSwitch");
    bios.SEM.create("SEM_tcpMsgTx");
    bios.SEM.create("SEM_SendMtData");
    bios.SEM.create("SEM_VmeInterrupt");
    bios.SEM.create("SEM_waitingForBlobs");
    bios.SEM.create("SEM_busFlushQueues");
    bios.SEM.create("SEM_ProcessObjects");
    bios.SEM.create("SEM_ProcessEndGate");

    bios.SEM.create("SEM_EndOfGate0");
    bios.SEM.create("SEM_EndOfGate1");
    bios.SEM.create("SEM_EndOfGate2");
    bios.SEM.create("SEM_GateStats0");
    bios.SEM.create("SEM_GateStats1");
    bios.SEM.create("SEM_GateStats2");

    bios.SEM.create("SEM_startCorrelation");
    bios.SEM.create("SEM_CorrReady");
    bios.SEM.create("SEM_CorrDone0");
    bios.SEM.create("SEM_CorrDone1");
    bios.SEM.create("SEM_CorrDone2");

    bios.SEM.create("SEM_HistEog0");
    bios.SEM.create("SEM_HistEog1");
    bios.SEM.create("SEM_HistEog2");
    bios.SEM.create("SEM_HistStart0");
    bios.SEM.create("SEM_HistStart1");
    bios.SEM.create("SEM_HistStart2");
    bios.SEM.create("SEM_HistReady0");
    bios.SEM.create("SEM_HistReady1");
    bios.SEM.create("SEM_HistReady2");

    bios.SEM.create("SEM_IdspQ");
    bios.SEM.create("SEM_LSU1_Rx");
    bios.SEM.instance("SEM_LSU1_Rx").comment = "SRIO direct IO read completed";
    bios.SEM.create("SEM_LSU2_Rx");
    bios.SEM.instance("SEM_LSU2_Rx").comment = "LSU2 SRIO read completed";
    bios.SEM.create("SEM_LSU3_Rx");
    bios.SEM.instance("SEM_LSU3_Rx").comment = "Received data on LSU3";

    // bios.SEM.create("SEM_StartPhaseCorrelation");
    // bios.SEM.create("SEM_VSyncPhaseCorrelation");

    /** Tasks (common) **/

    bios.TSK.CALLSWITCHFXN = 1;
    bios.TSK.SWITCHFXN = "mainDoTaskSwitch";

    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_idle").order = 1;

    bios.TSK.create("TSK_ProcessVsync");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_ProcessVsync").order = 24;
    bios.TSK.instance("TSK_ProcessVsync").priority = 14;
    bios.TSK.instance("TSK_ProcessVsync").stackSize = 2048;
    bios.TSK.instance("TSK_ProcessVsync").fxn = "TSK_processVsync";

    bios.TSK.create("TSK_RunAtVertical");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_RunAtVertical").order = 9;
    bios.TSK.instance("TSK_RunAtVertical").priority = 10;
    bios.TSK.instance("TSK_RunAtVertical").stackSize = 4096;
    bios.TSK.instance("TSK_RunAtVertical").fxn = "TSK_runAtVertical";

    bios.TSK.create("TSK_RunOncePerField");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_RunOncePerField").order = 10;
    bios.TSK.instance("TSK_RunOncePerField").priority = 3;
    bios.TSK.instance("TSK_RunOncePerField").stackSize = 4096;
    bios.TSK.instance("TSK_RunOncePerField").fxn = "TSK_runOncePerField";

    bios.TSK.create("TSK_VideoOverlay");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_VideoOverlay").order = 32;
    bios.TSK.instance("TSK_VideoOverlay").priority = 1;
    bios.TSK.instance("TSK_VideoOverlay").stackSize = 2048;
    bios.TSK.instance("TSK_VideoOverlay").fxn = "TSK_videoOverlay";
    bios.TSK.instance("TSK_VideoOverlay").comment = "Video Overlay Drawing Task";

    bios.TSK.create("TSK_IdspRx");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_IdspRx").order = 22;
    bios.TSK.instance("TSK_IdspRx").priority = 13;
    bios.TSK.instance("TSK_IdspRx").stackSize = 2048;
    bios.TSK.instance("TSK_IdspRx").fxn = "IDSP_TSK_Rx";

    bios.TSK.create("TSK_IdspTx");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_IdspTx").order = 23;
    bios.TSK.instance("TSK_IdspTx").priority = 14;
    bios.TSK.instance("TSK_IdspTx").stackSize = 4096;
    bios.TSK.instance("TSK_IdspTx").fxn = "IDSP_TSK_Tx";

    /** Tasks (DSP1) **/

    bios.TSK.create("TSK_MainInit");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_MainInit").order = 11;
    bios.TSK.instance("TSK_MainInit").priority = 6;
    bios.TSK.instance("TSK_MainInit").stackSize = 2048;
    bios.TSK.instance("TSK_MainInit").fxn = "TSK_mainInit";

    bios.TSK.create("TSK_PerformBIT");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_PerformBIT").order = 35;
    bios.TSK.instance("TSK_PerformBIT").priority = 3;
    bios.TSK.instance("TSK_PerformBIT").stackSize = 4096;
    bios.TSK.instance("TSK_PerformBIT").fxn = "TSK_performBIT";

    bios.TSK.create("TSK_AlwaysCheck");
    bios.TSK.instance("TSK_AlwaysCheck").fxn = "FXN_AlwaysCheck";
    bios.TSK.instance("TSK_AlwaysCheck").stackSize = 4096;
    bios.TSK.instance("TSK_AlwaysCheck").priority = 1;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_AlwaysCheck").order = 2;

    bios.TSK.create("TSK_IncomingCtrlBox");
    bios.TSK.instance("TSK_IncomingCtrlBox").priority = 5;
    bios.TSK.instance("TSK_IncomingCtrlBox").stackSize = 2048;
    bios.TSK.instance("TSK_IncomingCtrlBox").fxn = "STDMSG_TSK_ProcessIncoming";
    bios.TSK.instance("TSK_IncomingCtrlBox").arg0 = 1;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_IncomingCtrlBox").order = 5;

    bios.TSK.create("TSK_IncomingGui");
    bios.TSK.instance("TSK_IncomingGui").stackSize = 2048;
    bios.TSK.instance("TSK_IncomingGui").priority = 5;
    bios.TSK.instance("TSK_IncomingGui").fxn = "STDMSG_TSK_ProcessIncoming";
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_IncomingGui").order = 6;

    bios.TSK.create("TSK_IncomingVme");
    bios.TSK.instance("TSK_IncomingVme").stackSize = 2048;
    bios.TSK.instance("TSK_IncomingVme").priority = 5;
    bios.TSK.instance("TSK_IncomingVme").fxn = "VME_TSK_GetPacket";
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_IncomingVme").order = 7;

    bios.TSK.create("TSK_ProcessStdPacket");
    bios.TSK.instance("TSK_ProcessStdPacket").fxn = "STDMSG_TSK_ProcessStdPacket";
    bios.TSK.instance("TSK_ProcessStdPacket").stackSize = 8192;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_ProcessStdPacket").order = 8;
    bios.TSK.instance("TSK_ProcessStdPacket").priority = 4;

    bios.TSK.create("TSK_busFlushQueues");
    bios.TSK.instance("TSK_busFlushQueues").stackSize = 2048;
    bios.TSK.instance("TSK_busFlushQueues").fxn = "busFlushQueuesTask";
    bios.TSK.instance("TSK_busFlushQueues").priority = 9;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_busFlushQueues").order = 13;

    bios.TSK.create("TSK_VidSwitch");
    bios.TSK.instance("TSK_VidSwitch").stackSize = 2048;
    bios.TSK.instance("TSK_VidSwitch").priority = 4;
    bios.TSK.instance("TSK_VidSwitch").fxn = "VID_TSK_SwitchSrc";
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_VidSwitch").order = 14;

    bios.TSK.create("TSK_ProcessObjects");
    bios.TSK.instance("TSK_ProcessObjects").comment = "Blob processing task";
    bios.TSK.instance("TSK_ProcessObjects").priority = 12;
    bios.TSK.instance("TSK_ProcessObjects").fxn = "CRP_TSK_ProcessObjects";
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_ProcessObjects").order = 17;
    bios.TSK.instance("TSK_ProcessObjects").stackSize = 4096;

    bios.TSK.create("TSK_FXN_2Hz");
    bios.TSK.instance("TSK_FXN_2Hz").fxn = "TSK_Process_2Hz";
    bios.TSK.instance("TSK_FXN_2Hz").stackSize = 4096;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_FXN_2Hz").order = 26;

    bios.TSK.create("TSK_Download");
    bios.TSK.instance("TSK_Download").stackSize = 2048;
    bios.TSK.instance("TSK_Download").fxn = "STDMSG_TSK_CodeReceiveMsg";
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_Download").order = 29;

    /** Tasks (uarts) **/

    bios.TSK.create("TSK_UartTx");
    bios.TSK.instance("TSK_UartTx").stackSize = 2048;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_UartTx").order = 27;
    bios.TSK.instance("TSK_UartTx").fxn = "TSK_UartTxHdlr";
    bios.TSK.instance("TSK_UartTx").priority = 11;

    bios.TSK.create("TSK_UartRx");
    bios.TSK.instance("TSK_UartRx").priority = 14;
    bios.TSK.instance("TSK_UartRx").stackSize = 2048;
    bios.TSK.instance("TSK_UartRx").fxn = "TSK_UartRxHdlr";
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_UartRx").order = 28;

    /** Tasks (ethernet) **/

    bios.TSK.create("TSK_TcpClientManager");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_TcpClientManager").order = 31;
    bios.TSK.instance("TSK_TcpClientManager").priority = 5;
    bios.TSK.instance("TSK_TcpClientManager").stackSize = 2048;
    bios.TSK.instance("TSK_TcpClientManager").fxn = "tcp_client_manager";
    bios.TSK.instance("TSK_TcpClientManager").comment = "TCP Client Manager";

    bios.TSK.create("TSK_IpStack");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_IpStack").order = 15;
    bios.TSK.instance("TSK_IpStack").priority = 1;
    bios.TSK.instance("TSK_IpStack").stackSize = 4096;
    bios.TSK.instance("TSK_IpStack").fxn = "TSK_ipStack";
    bios.TSK.instance("TSK_IpStack").comment = "Task for IP and ethernet functionality";

    bios.TSK.create("TSK_TcpServerManager");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_TcpServerManager").order = 16;
    bios.TSK.instance("TSK_TcpServerManager").priority = 5;
    bios.TSK.instance("TSK_TcpServerManager").stackSize = 2048;
    bios.TSK.instance("TSK_TcpServerManager").fxn = "TSK_tcpServerManager";
    bios.TSK.instance("TSK_TcpServerManager").comment = "TCP Server Manager";

    // deprecated ??
    bios.TSK.create("TSK_UdpSocket");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_UdpSocket").order = 30;
    bios.TSK.instance("TSK_UdpSocket").priority = 1;
    bios.TSK.instance("TSK_UdpSocket").stackSize = 2048;
    bios.TSK.instance("TSK_UdpSocket").fxn = "TSK_udpSocket";
    bios.TSK.instance("TSK_UdpSocket").comment = "was used for BLOB data transfer";


    /** Tasks (gate, histogram, correlation) **/

    bios.TSK.create("TSK_EndOfGate");
    bios.TSK.instance("TSK_EndOfGate").fxn = "TSK_processEndGate";
    bios.TSK.instance("TSK_EndOfGate").priority = 14;
    bios.TSK.instance("TSK_EndOfGate").stackSize = 2048;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_EndOfGate").order = 25;

    bios.TSK.create("TSK_EndOfGate0");
    bios.TSK.instance("TSK_EndOfGate0").comment = "End Of Gate 0 processing task";
    bios.TSK.instance("TSK_EndOfGate0").arg0 = 0;
    bios.TSK.instance("TSK_EndOfGate0").fxn = "TSK_EOG_EndOfGate";
    bios.TSK.instance("TSK_EndOfGate0").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfGate0").priority = 13;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_EndOfGate0").order = 3;

    bios.TSK.create("TSK_EndOfGate1");
    bios.TSK.instance("TSK_EndOfGate1").comment = "End of Gate 1 processing task";
    bios.TSK.instance("TSK_EndOfGate1").arg0 = 1;
    bios.TSK.instance("TSK_EndOfGate1").fxn = "TSK_EOG_EndOfGate";
    bios.TSK.instance("TSK_EndOfGate1").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfGate1").priority = 13;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_EndOfGate1").order = 4;

    bios.TSK.create("TSK_EndOfGate2");
    bios.TSK.instance("TSK_EndOfGate2").comment = "End of Gate 2 processing task";
    bios.TSK.instance("TSK_EndOfGate2").arg0 = 2;
    bios.TSK.instance("TSK_EndOfGate2").fxn = "TSK_EOG_EndOfGate";
    bios.TSK.instance("TSK_EndOfGate2").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfGate2").priority = 13;

    bios.TSK.create("TSK_histogramGate0");
    bios.TSK.instance("TSK_histogramGate0").stackSize = 2048;
    bios.TSK.instance("TSK_histogramGate0").fxn = "TSK_processHistogram";
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_histogramGate0").order = 19;
    bios.TSK.instance("TSK_histogramGate0").priority = 2;

    bios.TSK.create("TSK_histogramGate1");
    bios.TSK.instance("TSK_histogramGate1").stackSize = 2048;
    bios.TSK.instance("TSK_histogramGate1").arg0 = 1;
    bios.TSK.instance("TSK_histogramGate1").fxn = "TSK_processHistogram";
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_histogramGate1").order = 20;
    bios.TSK.instance("TSK_histogramGate1").priority = 2;

    bios.TSK.create("TSK_histogramGate2");
    bios.TSK.instance("TSK_histogramGate2").stackSize = 2048;
    bios.TSK.instance("TSK_histogramGate2").arg0 = 2;
    bios.TSK.instance("TSK_histogramGate2").fxn = "TSK_processHistogram";
    bios.TSK.instance("TSK_histogramGate2").priority = 2;

    bios.TSK.create("TSK_handleCorrelation");
    bios.TSK.instance("TSK_handleCorrelation").stackSize = 2048;
    bios.TSK.instance("TSK_handleCorrelation").fxn = "TSK_correlationHdlr";
    bios.TSK.instance("TSK_handleCorrelation").priority = 14;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_handleCorrelation").order = 18;

    bios.TSK.create("TSK_EndOfCorr0");
    bios.TSK.instance("TSK_EndOfCorr0").comment = "End of correlation engine 0 task";
    bios.TSK.instance("TSK_EndOfCorr0").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfCorr0").fxn = "TSK_EOG_EndOfCorrelation";
    bios.TSK.instance("TSK_EndOfCorr0").arg0 = 0;
    bios.TSK.instance("TSK_EndOfCorr0").priority = 13;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_EndOfCorr0").order = 21;

    bios.TSK.create("TSK_EndOfCorr1");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.TSK.instance("TSK_EndOfCorr1").order = 33;
    bios.TSK.instance("TSK_EndOfCorr1").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfCorr1").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr1").fxn = "TSK_EOG_EndOfCorrelation";
    bios.TSK.instance("TSK_EndOfCorr1").arg0 = 1;
    bios.TSK.instance("TSK_EndOfCorr1").comment = "End of correlation engine 1 task";

    bios.TSK.create("TSK_EndOfCorr2");
    bios.TSK.instance("TSK_EndOfCorr2").stackSize = 4096;
    bios.TSK.instance("TSK_EndOfCorr2").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr2").fxn = "TSK_EOG_EndOfCorrelation";
    bios.TSK.instance("TSK_EndOfCorr2").arg0 = 2;
    bios.TSK.instance("TSK_EndOfCorr2").comment = "End of correlation engine 2 task";

    // bios.TSK.create("TSK_PhaseCorrelation");
    // WARNING: 'order' property is not supported in BIOS 6.
    // bios.TSK.instance("TSK_PhaseCorrelation").order = 34;
    // bios.TSK.instance("TSK_PhaseCorrelation").stackSize = 4096;
    // bios.TSK.instance("TSK_EndOfCorr1").priority = 1;
    // bios.TSK.instance("TSK_PhaseCorrelation").comment = "Phase Correlation Processing Task";
    // bios.TSK.instance("TSK_PhaseCorrelation").fxn = "TSK_PhaseCorrelationTask";



    // TO BE MOVED


    // WARNING: 'order' property is not supported in BIOS 6.
    bios.SWI.instance("PRD_swi").order = 1;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.SWI.instance("KNL_swi").order = 2;

    bios.PRD.create("PRD_2Hz");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.PRD.instance("PRD_2Hz").order = 1;
    bios.PRD.instance("PRD_2Hz").period = 500;
    bios.PRD.instance("PRD_2Hz").fxn = "FXN_2Hz";

    bios.ECM.ENABLE = 1;
    //bios.ECM.instance("EVENT55").comment = "Vsync event (GPIO4)";
    bios.ECM.instance("EVENT55").unmask = 1;

    bios.ECM.instance("EVENT55").fxn = "HWI_EOG_Vsync";

    bios.ECM.ENABLE = 0;
    bios.ECM.ENABLE = 0;

    bios.HWI.ENABLEEXC = 0;
    bios.HWI.ENABLEEXC = 1;
    bios.HWI.ENABLEEXC = 0;

    // WARNING: RTDX module is not supported in BIOS 6.
    bios.RTDX.BUFSIZE = 2064;


    bios.CLK.MICROSECONDS = 999.9960;
    bios.CLK.SPECIFYRATE = 1;
    bios.CLK.INPUTCLK = 50.0000;


    bios.HWI.ENABLEEXC = 1;


    bios.CLK.SPECIFYRATE = 0;
    bios.CLK.MICROSECONDS = 999.9960;
    bios.CLK.SPECIFYRATE = 1;
    bios.CLK.INPUTCLK = 1000000.0000;
    bios.CLK.CONFIGURETIMER = 0;
    bios.CLK.ENABLEHTIME = 0;
    bios.CLK.HIRESTIME = 0;
    bios.CLK.HIRESTIME = 1;
    bios.CLK.ENABLEHTIME = 1;
    bios.CLK.INPUTCLK = 1000.0000;

    bios.ECM.ENABLE = 1;
    bios.ECM.instance("EVENT67").fxn = "CLK_F_isr";
    bios.ECM.instance("EVENT67").unmask = 1;
    bios.ECM.instance("EVENT67").fxn = "CLK_F_isr", "asm";
    bios.ECM.instance("EVENT67").unmask = 0;

    bios.ECM.ENABLE = 0;

    bios.CLK.SPECIFYRATE = 0;

    bios.STS.create("VsyncPeriod");
    bios.STS.instance("VsyncPeriod").unitType = "High resolution time based";
    bios.STS.instance("VsyncPeriod").operation = "Nothing";
    bios.STS.instance("VsyncPeriod").comment = "Vsync period";

    bios.LOG.create("LOG_err");

    bios.HWI.RESETVECTOR = 1;
    bios.HWI.RESETVECTOR = 0;

    bios.MEM.create("INIT");
    bios.MEM.instance("INIT").createHeap = 0;
    bios.MEM.instance("INIT").len = 0x00000300;
    bios.MEM.instance("INIT").base = 0x00820100;
    bios.MEM.instance("INIT").space = "code/data";

    bios.MEM.create("DEADBEEF");
    bios.MEM.instance("DEADBEEF").createHeap = 0;
    bios.MEM.instance("DEADBEEF").len = 0x00000100;
    bios.MEM.instance("DEADBEEF").base = 0x00820000;
    bios.MEM.instance("DEADBEEF").space = "code/data";

    bios.STS.create("idspDpNotRdy");



    bios.STS.create("gateOverrun0");
    bios.STS.create("gateOverrun1");
    bios.STS.create("gateOverrun2");

    bios.STS.create("VsyncOverrun");

    bios.STS.create("eogToErr0");
    bios.STS.instance("eogToErr0").unitType = "High resolution time based";
    bios.STS.instance("eogToErr0").operation = "Nothing";

    bios.STS.create("eogToErr1");
    bios.STS.instance("eogToErr1").unitType = "High resolution time based";
    bios.STS.instance("eogToErr1").operation = "Nothing";

    bios.STS.create("eogToErr2");
    bios.STS.instance("eogToErr2").unitType = "High resolution time based";
    bios.STS.instance("eogToErr2").operation = "Nothing";


    bios.STS.create("mountToSimDelta");
    bios.STS.instance("mountToSimDelta").unitType = "High resolution time based";
    bios.STS.instance("mountToSimDelta").operation = "Nothing";


    bios.MEM.instance("IRAM").len = 0x001cfc00;
    bios.MEM.instance("IRAM").base = 0x00820400;

    // rdobbis FIXX
    bios.IRAM.createHeap = 1;

    bios.MEM.MALLOCSEG = prog.get("IRAM");

    // WARNING: MEM.USERCOMMANDFILE property is not supported in BIOS 6.
    bios.MEM.USERCOMMANDFILE = 1;
    bios.MEM.STACKSIZE = 0x2000;


    bios.PRD.create("PRD_NDK");
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.PRD.instance("PRD_NDK").order = 2;
    bios.PRD.instance("PRD_NDK").period = 100;
    bios.PRD.instance("PRD_NDK").fxn = "llTimerTick";
    bios.PRD.instance("PRD_NDK").mode = "one-shot";
    bios.PRD.instance("PRD_NDK").mode = "continuous";
    bios.PRD.instance("PRD_NDK").period = 500;
    bios.PRD.instance("PRD_NDK").period = 100;

    bios.HOOK.create("HOOK_NDK");
    bios.HOOK.instance("HOOK_NDK").initFxn = "NDK_hookInit";
    bios.HOOK.instance("HOOK_NDK").createFxn = "NDK_hookCreate";

    bios.PRD.instance("PRD_NDK").mode = "one-shot";
    bios.PRD.instance("PRD_NDK").mode = "continuous";


    // WARNING: 'order' property is not supported in BIOS 6.
    bios.IDL.instance("LNK_dataPump").order = 1;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.IDL.instance("RTA_dispatcher").order = 2;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.IDL.instance("IDL_cpuLoad").order = 3;



    // WARNING: 'order' property is not supported in BIOS 6.
    bios.IDL.instance("IDL_cpuLoad").order = 1;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.IDL.instance("LNK_dataPump").order = 2;
    // WARNING: 'order' property is not supported in BIOS 6.
    bios.IDL.instance("RTA_dispatcher").order = 3;

    // rdobbis FIXX
    //bios.IRAM.createHeap = 1;

    bios.MEM.create("DDR");
    bios.MEM.instance("DDR").space = "data";
    bios.MEM.instance("DDR").len = 0x01000000;
    bios.MEM.instance("DDR").base = 0xe0000000;
    bios.MEM.instance("DDR").heapSize = 0x00020000;

    bios.MEM.NOMEMORYHEAPS = 1;
    bios.MEM.NOMEMORYHEAPS = 0;

    /*
    * Enable heaps in IRAM and define label SEG0 for heap usage.
    */

    bios.MEM.instance("IRAM").createHeap = 0;
    bios.MEM.instance("DDR").createHeap = 1;
    bios.MEM.instance("DDR").heapSize = 0x00020000;
    bios.MEM.instance("DDR").createHeap = 0;
    bios.MEM.instance("IRAM").createHeap = 1;
    bios.MEM.instance("IRAM").enableHeapLabel = 1;
    bios.MEM.instance("IRAM").heapLabel = "SEG0";
    bios.MEM.instance("IRAM").heapSize = 0x00020000;

    bios.MEM.HWIVECSEG = prog.get("IRAM");
    bios.MEM.MALLOCSEG = prog.get("IRAM");

    bios.MEM.create("DDR_UNCACHED");
    bios.MEM.instance("DDR_UNCACHED").comment = "Non cached buffers";
    bios.MEM.instance("DDR_UNCACHED").createHeap = 0;
    bios.MEM.instance("DDR_UNCACHED").len = 0x01000000;
    bios.MEM.instance("DDR_UNCACHED").base = 0xe1000000;

    //
    // ******* Priority brought out for debug (keep at bottom of file) ********
    //

    bios.TSK.instance("TSK_IdspTx").priority = 14;
    bios.TSK.instance("TSK_UartRx").priority = 14;
    bios.TSK.instance("TSK_EndOfGate").priority = 14;
    bios.TSK.instance("TSK_ProcessVsync").priority = 14;
    bios.TSK.instance("TSK_handleCorrelation").priority = 14;

    bios.TSK.instance("TSK_IdspRx").priority = 13;
    bios.TSK.instance("TSK_EndOfGate0").priority = 13;
    bios.TSK.instance("TSK_EndOfGate1").priority = 13;
    bios.TSK.instance("TSK_EndOfGate2").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr0").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr1").priority = 13;
    bios.TSK.instance("TSK_EndOfCorr2").priority = 13;

    bios.TSK.instance("TSK_ProcessObjects").priority = 12;

    bios.TSK.instance("TSK_UartTx").priority = 11;

    bios.TSK.instance("TSK_RunAtVertical").priority = 10;

    bios.TSK.instance("TSK_busFlushQueues").priority = 9;

    bios.TSK.instance("TSK_MainInit").priority = 8;

    bios.TSK.instance("TSK_IncomingGui").priority = 7;
    bios.TSK.instance("TSK_IncomingVme").priority = 7;
    bios.TSK.instance("TSK_IncomingCtrlBox").priority = 7;
    bios.TSK.instance("TSK_TcpServerManager").priority = 7;
    bios.TSK.instance("TSK_TcpClientManager").priority = 7;

    bios.TSK.instance("TSK_VidSwitch").priority = 6;
    bios.TSK.instance("TSK_ProcessStdPacket").priority = 6;

    bios.TSK.instance("TSK_RunOncePerField").priority = 5;

    bios.TSK.instance("TSK_histogramGate0").priority = 4;
    bios.TSK.instance("TSK_histogramGate1").priority = 4;
    bios.TSK.instance("TSK_histogramGate2").priority = 4;

    bios.TSK.instance("TSK_PerformBIT").priority = 3;

    bios.TSK.instance("TSK_IpStack").priority = 2;
    bios.TSK.instance("TSK_UdpSocket").priority = 2;
    bios.TSK.instance("TSK_AlwaysCheck").priority = 2;
    bios.TSK.instance("TSK_VideoOverlay").priority = 2;

    // !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!


    Program.sectMap[".stack"] = new Program.SectionSpec()
    Program.sectMap[".stack"] = "IRAM";
    Program.sectMap[".args"] = new Program.SectionSpec()
    Program.sectMap[".args"] = "IRAM";
    prog = xdc.module('xdc.cfg.Program');

    Thanks
  • What is that SYS1.opt file?

    I was expecting the build command to say "gmake -k all".  Are you building in CCS (as a project)?

    Steve

  • I don't know where the reference to SYS1.opt comes from - that's why I posted here. "SYS1.cfg" is the name of my converted TCF file but I don't know why the extension "opt" is in the build tree.

    Richard
  • Richard,

    Did you get past this? I saw in your other post that you say you were able to get the cfg part of the build complete, and are now working on linker errors.

    Steve
  • Steve

    Yes and no. Just to get past the config stage, I started commenting out lines from my original TCF file until the errors went away. I did not spend any time looking at WHY those lines had to be commented out but need to do so eventually. So I guess the issue is on hold.

    Also, I still can't run XGCONF against the created CFG file and I don't know why that is but figuring that out will have to wait as well.
    Thanks
    Richard
  • Well Richard, the more I think about this, the more I'm starting to think it may be easier to bypass the legacy support layer altogether.

    This would mean manually converting the above *.cfg code (which is using legacy support layer modules) to directly use the SYS/BIOS *.cfg code and modules directly.

    Have you been following the "BIOS Legacy App Note" that's in the SYS/BIOS docs directory? I believe this guide covers how to do this (with a translation table of the legacy modules to the SYS/BIOS modules, e.g. TSK -> Task, etc).

    Steve
  • Steve

    I still can't view and modify the <proj>.cfg file using XGCONF. In the 'User Configuration' Outline, all I see is a red-ball followed by the word 'Program' (and there are two of these). I don't see any breakdown of the CFG file. Then, when I switch to 'Configuration Results' Outline, I do see much of the outline but many specifics are missing - for example I have 34 Instances of 'TSK' (under ti->sysbios->knl->Task) but when clicking on (any) one, all the fields in the edit box are showing "N/A".

    Thanks
  • Richard,

    I'm afraid that our BIOS migration experts are all out of the office until after Thanksgiving.

    Apart from not being able to view the configuration with XGCONF, are you able to build and run the converted application?

    Alan
  • Alan,

    I am close but not there yet. I have worked through a lot of issues and learned a lot about both the old and new tools. I still want to eventually remove all the work-arounds and figure out why the new tools have issue with my code/config but in the mean time will only post the issues that I feel I have to solve now - like the XGCONF issue.

    Thanks
    Richard
  • Richard,
    you are seeing ti.sysbios.knl.Task instances generated from your TSK instances. However, you can't really edit any of these because they don't really show up anywhere in the CFG script so XGCONF cannot show them. The actual TSK instances are not showing up anywhere in Outline, and after trying to debug it I found this thread:
    e2e.ti.com/.../367179
    We might have had a support for displaying instances of legacy modules, but it most likely didn't work so we removed it. If you need to further configure instances of legacy modules, you'll have to do in textual mode.

    I am guessing you'll eventually replace the legacy instances with SYS/BIOS 6 instances, and these will show up in XGCONF.