utils.loadPlatform("myplatforms.controlF28M35x"); // Code flash size // len= 0x18000 (96K) bios.MEM.instance("FLASH").base = 0x108000; bios.MEM.instance("FLASH").len = 0x18000; bios.MEM.instance("FLASH").comment = "96K X 16 Flash memory (bank H, I, J)"; bios.MEM.NOMEMORYHEAPS = 0; /* The following DSP/BIOS Features are enabled. */ bios.enableTskManager(prog); //bios.enableRealTimeAnalysis(prog); //bios.enableRtdx(prog); // disable to save memory bios.GBL.INSTRUMENTED = 0; bios.SYS.TRACESIZE = 2; bios.LOG_system.bufLen = 0; bios.GBL.MODIFYPLLCR2 = 0; // disable PLL setup, as it is done in M3 /* * create new segments */ /* page 0 */ bios.MEM.instance("MSARAM").base = 0x008000; bios.MEM.instance("MSARAM").len = 0x1000; /* page 1 */ bios.MEM.create("M01SARAM"); bios.MEM.instance("M01SARAM").base = 0x000050; bios.MEM.instance("M01SARAM").len = 0x0007B0; bios.MEM.create("L23S03SARAM"); bios.MEM.instance("L23S03SARAM").base = 0x009000; bios.MEM.instance("L23S03SARAM").len = 0x007000; bios.MEM.instance("L23S03SARAM").createHeap = 0; bios.MEM.create("S47SARAM"); bios.MEM.instance("S47SARAM").base = 0x010000; bios.MEM.instance("S47SARAM").len = 0x004000; bios.MEM.instance("S47SARAM").createHeap = 0; /* * move everything to L23S03SARAM so we can delete L47SARAM and L03SARAM */ bios.BUF.OBJMEMSEG = prog.get("M01SARAM"); bios.SYS.TRACESEG = prog.get("M01SARAM"); bios.LOG.OBJMEMSEG = prog.get("M01SARAM"); bios.STS.OBJMEMSEG = prog.get("M01SARAM"); bios.CLK.OBJMEMSEG = prog.get("M01SARAM"); bios.PRD.OBJMEMSEG = prog.get("M01SARAM"); bios.SWI.OBJMEMSEG = prog.get("M01SARAM"); bios.MEM.BIOSOBJSEG = prog.get("M01SARAM"); bios.MEM.MALLOCSEG = prog.get("M01SARAM"); bios.TSK.STACKSEG = prog.get("M01SARAM"); bios.BUF.OBJMEMSEG = prog.get("L23S03SARAM"); bios.SYS.TRACESEG = prog.get("L23S03SARAM"); bios.LOG.OBJMEMSEG = prog.get("L23S03SARAM"); bios.STS.OBJMEMSEG = prog.get("L23S03SARAM"); bios.CLK.OBJMEMSEG = prog.get("L23S03SARAM"); bios.PRD.OBJMEMSEG = prog.get("L23S03SARAM"); bios.SWI.OBJMEMSEG = prog.get("L23S03SARAM"); bios.TSK.OBJMEMSEG = prog.get("M01SARAM"); bios.IDL.OBJMEMSEG = prog.get("L23S03SARAM"); bios.SEM.OBJMEMSEG = prog.get("L23S03SARAM"); bios.MBX.OBJMEMSEG = prog.get("S47SARAM"); bios.QUE.OBJMEMSEG = prog.get("S47SARAM"); bios.LCK.OBJMEMSEG = prog.get("S47SARAM"); bios.RTDX.RTDXDATASEG = prog.get("S47SARAM"); bios.HST.OBJMEMSEG = prog.get("S47SARAM"); bios.HST.instance("RTA_fromHost").bufSeg = prog.get("S47SARAM"); bios.HST.instance("RTA_toHost").bufSeg = prog.get("S47SARAM"); bios.PIP.OBJMEMSEG = prog.get("S47SARAM"); bios.SIO.OBJMEMSEG = prog.get("S47SARAM"); bios.DHL.OBJMEMSEG = prog.get("S47SARAM"); bios.DIO.OBJMEMSEG = prog.get("S47SARAM"); bios.LOG.instance("LOG_system").bufSeg = prog.get("S47SARAM"); bios.MEM.ARGSSEG = prog.get("L23S03SARAM"); bios.MEM.GBLINITSEG = prog.get("L23S03SARAM"); bios.MEM.TRCDATASEG = prog.get("L23S03SARAM"); bios.MEM.SYSDATASEG = prog.get("L23S03SARAM"); bios.MEM.SYSINITSEG = prog.get("L23S03SARAM"); bios.MEM.HWISEG = prog.get("L23S03SARAM"); bios.MEM.RTDXTEXTSEG = prog.get("L23S03SARAM"); bios.MEM.TEXTSEG = prog.get("L23S03SARAM"); bios.MEM.SWITCHSEG = prog.get("L23S03SARAM"); bios.MEM.BSSSEG = prog.get("L23S03SARAM"); bios.MEM.EBSSSEG = prog.get("L23S03SARAM"); bios.MEM.CINITSEG = prog.get("L23S03SARAM"); bios.MEM.PINITSEG = prog.get("L23S03SARAM"); bios.MEM.ECONSTSEG = prog.get("L23S03SARAM"); bios.MEM.CONSTSEG = prog.get("L23S03SARAM"); bios.MEM.DATASEG = prog.get("L23S03SARAM"); bios.MEM.CIOSEG = prog.get("L23S03SARAM"); bios.MEM.OBJSEG = prog.get("L23S03SARAM"); bios.MEM.BIOSSEG = prog.get("L23S03SARAM"); bios.MEM.ENABLELOADADDR = 1; bios.MEM.LOADBIOSSEG = prog.get("L23S03SARAM"); bios.MEM.LOADSYSINITSEG = prog.get("L23S03SARAM"); bios.MEM.LOADGBLINITSEG = prog.get("L23S03SARAM"); bios.MEM.LOADTRCDATASEG = prog.get("L23S03SARAM"); bios.MEM.LOADTEXTSEG = prog.get("L23S03SARAM"); bios.MEM.LOADSWITCHSEG = prog.get("L23S03SARAM"); bios.MEM.LOADCINITSEG = prog.get("L23S03SARAM"); bios.MEM.LOADPINITSEG = prog.get("L23S03SARAM"); bios.MEM.LOADECONSTSEG = prog.get("L23S03SARAM"); bios.MEM.LOADCONSTSEG = prog.get("L23S03SARAM"); bios.MEM.LOADDATASEG = prog.get("L23S03SARAM"); bios.MEM.LOADHWISEG = prog.get("L23S03SARAM"); bios.MEM.LOADHWIVECSEG = prog.get("L23S03SARAM"); bios.MEM.LOADRTDXTEXTSEG = prog.get("L23S03SARAM"); bios.MEM.ENABLELOADADDR = 0; /* The following DSP/BIOS Features are enabled. */ bios.enableTskManager(prog); /* * finally, we can delete L03SARAM and L47SARAM */ bios.MEM.instance("L03SARAM").destroy(); bios.MEM.instance("L47SARAM").destroy(); /* The following DSP/BIOS Features are enabled. */ bios.enableTskManager(prog); bios.GBL.CALLUSERINITFXN = 1; bios.GBL.USERINITFXN = prog.extern("UserInit"); bios.GBL.CLKOUT = 150.0000; bios.GBL.ENABLEALLTRC = 0; //R.Liang //bios.MEM.instance("FLASH").len = 0x1ff80; bios.MEM.instance("FLASH").len = 0x20000; // don't change this bios.MEM.ENABLELOADADDR = 1; bios.MEM.LOADBIOSSEG = prog.get("FLASH"); bios.MEM.LOADSYSINITSEG = prog.get("FLASH"); bios.MEM.LOADGBLINITSEG = prog.get("FLASH"); bios.MEM.LOADTRCDATASEG = prog.get("FLASH"); bios.MEM.LOADTEXTSEG = prog.get("FLASH"); bios.MEM.LOADSWITCHSEG = prog.get("FLASH"); bios.MEM.LOADCINITSEG = prog.get("FLASH"); bios.MEM.LOADPINITSEG = prog.get("OTP"); bios.MEM.LOADECONSTSEG = prog.get("FLASH"); bios.MEM.LOADCONSTSEG = prog.get("FLASH"); bios.MEM.LOADDATASEG = prog.get("FLASH"); bios.MEM.LOADHWISEG = prog.get("FLASH"); bios.MEM.LOADHWIVECSEG = prog.get("FLASH"); //bios.MEM.LOADRTDXTEXTSEG = prog.get("FLASH"); bios.MEM.TEXTSEG = prog.get("FLASH"); bios.MEM.SWITCHSEG = prog.get("FLASH"); bios.MEM.CINITSEG = prog.get("FLASH"); bios.MEM.PINITSEG = prog.get("FLASH"); bios.MEM.ECONSTSEG = prog.get("FLASH"); bios.MEM.CONSTSEG = prog.get("FLASH"); bios.MEM.DATASEG = prog.get("FLASH"); bios.MEM.BIOSSEG = prog.get("FLASH"); bios.MEM.SYSINITSEG = prog.get("FLASH"); bios.MEM.HWISEG = prog.get("FLASH"); //bios.MEM.RTDXTEXTSEG = prog.get("FLASH"); bios.MEM.GBLINITSEG = prog.get("FLASH"); bios.MEM.LOADPINITSEG = prog.get("FLASH"); bios.MEM.CIOSEG = prog.get("S47SARAM"); bios.MEM.ARGSSEG = prog.get("S47SARAM"); bios.MEM.SYSDATASEG = prog.get("S47SARAM"); bios.MEM.OBJSEG = prog.get("S47SARAM"); bios.MEM.TRCDATASEG = prog.get("S47SARAM"); bios.MEM.USERCOMMANDFILE = 0; bios.MEM.SYSDATASEG = prog.get("L23S03SARAM"); bios.MEM.OBJSEG = prog.get("L23S03SARAM"); bios.MEM.BSSSEG = prog.get("L23S03SARAM"); bios.MEM.EBSSSEG = prog.get("L23S03SARAM"); bios.MEM.STACKSIZE = 0x0400; // don't change this bios.MEM.create("BEGIN_FLASH"); bios.MEM.instance("BEGIN_FLASH").comment = "Boot to Flash Entry"; bios.MEM.instance("BEGIN_FLASH").base = 0x13FFF0; bios.MEM.instance("BEGIN_FLASH").len = 0x0002; bios.MEM.instance("BEGIN_FLASH").createHeap = 0; bios.MEM.instance("BEGIN_FLASH").space = "code"; bios.MEM.STACKSIZE = 0x0400; bios.TSK.instance("TSK_idle").order = 1; bios.PRD.create("PRD_GPIO31"); bios.PRD.instance("PRD_GPIO31").order = 1; bios.PRD.instance("PRD_GPIO31").period = 1000; //bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("LED_GPIO31"); //bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("ledBlink_gpio31"); // PHY TX queue contains one message bios.MBX.create("PHY_TX_QUE"); bios.MBX.instance("PHY_TX_QUE").messageSize = 1; bios.MBX.instance("PHY_TX_QUE").length = 2; bios.MBX.instance("PHY_TX_QUE").comment = "PHY TX equest Queue"; bios.TSK.create("PHY_TX_TSK"); bios.TSK.instance("PHY_TX_TSK").priority = 8; bios.TSK.instance("PHY_TX_TSK").fxn = prog.extern("PHY_tx_thread"); bios.TSK.instance("PHY_TX_TSK").order = 8; //bios.TSK.create("PHY_TX_TEST_TSK"); //bios.TSK.instance("PHY_TX_TEST_TSK").fxn = prog.extern("PHY_tx_test_thread"); //bios.TSK.instance("PHY_TX_TEST_TSK").priority = 4; // IPC TX TASK bios.SEM.create("PHY_TX_SEM"); //bios.SEM.instance("PHY_TX_SEM").count=0; bios.SEM.create("PHY_TX_SEM1"); bios.SEM.instance("PHY_TX_SEM1").count=1; bios.TSK.create("IPC_TX_TSK"); bios.TSK.instance("IPC_TX_TSK").priority = 7; bios.TSK.instance("IPC_TX_TSK").fxn = prog.extern("IPC_TX_Task"); bios.TSK.instance("IPC_TX_TSK").order = 8; // IPC RX TASK bios.SEM.create("PHY_RX_SEM"); //bios.SEM.instance("PHY_RX_SEM").count=0; bios.MBX.create("IPC_RxMsgMbx"); bios.MBX.instance("IPC_RxMsgMbx").comment = "IPC RX msg mbx"; bios.MBX.instance("IPC_RxMsgMbx").messageSize = 4; // sizeof(HCT_RX_MSG_s) bios.MBX.instance("IPC_RxMsgMbx").length = 4; bios.TSK.create("IPC_RX_TSK"); bios.TSK.instance("IPC_RX_TSK").priority = 7; bios.TSK.instance("IPC_RX_TSK").fxn = prog.extern("IPC_RX_Task"); bios.TSK.instance("IPC_RX_TSK").order = 8; bios.SEM.create("PHY_TX_TEST_SEM"); bios.PIE.instance("PIE_INT7_2").fxn = prog.extern("PHY_tx_dma_bios_isr"); bios.PIE.instance("PIE_INT7_2").useDispatcher = 1; bios.PIE.instance("PIE_INT7_2").interruptMask0 = "none"; bios.PIE.instance("PIE_INT7_2").interruptMask0 = "self"; bios.MEM.STACKSIZE = 0x0400; bios.SWI.create("PHY_TX_SWI"); bios.SWI.instance("PHY_TX_SWI").order = 1; bios.SWI.instance("PHY_TX_SWI").fxn = prog.extern("PHY_tx_swi_proc"); bios.SWI.instance("PHY_TX_SWI").priority = 10; bios.PIE.instance("PIE_INT7_1").useDispatcher = 1; bios.PIE.instance("PIE_INT7_1").interruptMask0 = "all"; bios.PIE.instance("PIE_INT7_1").fxn = prog.extern("PHY_RX_DMA_BIOS_ISR"); bios.PIE.instance("PIE_INT7_1").monitor = "Nothing"; bios.SWI.create("SWI_PHY_RX"); bios.SWI.instance("SWI_PHY_RX").order = 2; bios.SWI.instance("SWI_PHY_RX").priority = 4; bios.SWI.instance("SWI_PHY_RX").fxn = prog.extern("PHY_RX_SWI"); bios.SWI.instance("SWI_PHY_RX").comment = "PHY Rx Primary"; bios.SWI.create("SWI_PHY_RX2"); bios.SWI.instance("SWI_PHY_RX2").order = 3; bios.SWI.instance("SWI_PHY_RX2").priority = 3; bios.SWI.instance("SWI_PHY_RX2").comment = "PHY RX secondary"; bios.SWI.instance("SWI_PHY_RX2").fxn = prog.extern("PHY_RX2_SWI"); //C28 IPC RX INT interface bios.PIE.instance("PIE_INT11_3").fxn = prog.extern("IPC_RX_ISR"); bios.PIE.instance("PIE_INT11_3").useDispatcher = 1; bios.PIE.instance("PIE_INT11_3").interruptMask0 = "all"; bios.TSK.create("AIO_TASK"); bios.TSK.instance("AIO_TASK").order = 9; bios.TSK.instance("PHY_TX_TSK").order = 2; bios.TSK.instance("IPC_TX_TSK").order = 3; bios.TSK.instance("IPC_RX_TSK").order = 4; bios.TSK.instance("AIO_TASK").destroy(); bios.TSK.create("AIO_TSK"); bios.TSK.instance("AIO_TSK").order = 5; bios.TSK.instance("AIO_TSK").priority = 5; bios.TSK.instance("AIO_TSK").fxn = prog.extern("AIO_task"); bios.MEM.DATASEG = prog.get("L23S03SARAM"); bios.TSK.instance("AIO_TSK").allocateTaskName = 1; bios.TSK.instance("AIO_TSK").allocateTaskName = 0; bios.TSK.instance("AIO_TSK").stackSize = 400; bios.TSK.instance("AIO_TSK").stackSize = 256; bios.TSK.instance("AIO_TSK").destroy(); bios.TSK.create("AIO_TSK"); bios.TSK.instance("AIO_TSK").order = 5; bios.TSK.instance("AIO_TSK").priority = 5; bios.TSK.instance("AIO_TSK").fxn = prog.extern("AIO_task"); bios.TSK.instance("AIO_TSK").destroy(); bios.TSK.create("ADC_TSK"); bios.TSK.instance("ADC_TSK").order = 5; bios.TSK.instance("ADC_TSK").comment = "ADC2_IN"; bios.TSK.instance("ADC_TSK").fxn = prog.extern("AIO_TSK"); bios.TSK.instance("ADC_TSK").fxn = prog.extern("AIO_task"); bios.TSK.instance("IPC_RX_TSK").priority = 8; bios.TSK.instance("IPC_TX_TSK").priority = 8; bios.TSK.instance("IPC_RX_TSK").priority = 7; bios.TSK.instance("IPC_TX_TSK").priority = 7; bios.TSK.instance("ADC_TSK").destroy(); bios.TSK.create("AIO_TSK"); bios.TSK.instance("AIO_TSK").order = 5; bios.TSK.instance("AIO_TSK").comment = "ADC2_IN"; bios.TSK.instance("AIO_TSK").fxn = prog.extern("AIO_task"); bios.SWI.instance("SWI_PHY_RX").priority = 7; bios.SWI.instance("SWI_PHY_RX2").priority = 7; bios.SWI.instance("SWI_PHY_RX").priority = 10; bios.SWI.instance("SWI_PHY_RX2").priority = 10; bios.SWI.instance("SWI_PHY_RX").priority = 4; bios.SWI.instance("SWI_PHY_RX2").priority = 3; bios.TSK.instance("IPC_RX_TSK").priority = 8; bios.TSK.instance("IPC_TX_TSK").priority = 8; bios.TSK.instance("IPC_RX_TSK").priority = 7; bios.TSK.instance("IPC_TX_TSK").priority = 7; bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("ledBlink_gpio31", "asm"); bios.PRD.instance("PRD_GPIO31").comment = "C28 Beacon"; bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("ledBlink_gpio31"); bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("FXN_F_ledBlink_gpio31", "asm"); bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("FXN_F_nop", "asm"); bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("FXN_F_PRD_GPIO31", "asm"); bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("ledBlink_gpio31"); bios.PRD.create("PRD_BEACON"); bios.PRD.instance("PRD_BEACON").order = 2; bios.PRD.instance("PRD_BEACON").period = 1000; bios.PRD.instance("PRD_BEACON").fxn = prog.extern("ledBlink_gpio31"); bios.PRD.instance("PRD_BEACON").destroy(); bios.PRD.instance("PRD_GPIO31").fxn = prog.extern("FXN_F_nop", "asm"); bios.PRD.create("PRD_BEACON"); bios.PRD.instance("PRD_BEACON").order = 2; bios.PRD.instance("PRD_BEACON").fxn = prog.extern("PRD_Beacon", "asm"); bios.PRD.instance("PRD_BEACON").period = 1000; bios.PRD.instance("PRD_BEACON").destroy(); bios.PRD.create("PRD_BEACON"); bios.PRD.instance("PRD_BEACON").order = 2; bios.PRD.instance("PRD_BEACON").period = 1000; bios.PRD.instance("PRD_BEACON").comment = "beacon to cm3"; bios.PRD.instance("PRD_BEACON").fxn = prog.extern("FXN_beacon"); bios.SWI.instance("SWI_PHY_RX").priority = 8; bios.SWI.instance("SWI_PHY_RX2").priority = 8; bios.SWI.instance("SWI_PHY_RX2").priority = 3; bios.SWI.instance("SWI_PHY_RX").priority = 4; bios.PRD.instance("PRD_BEACON").order = 1; bios.PRD.instance("PRD_GPIO31").destroy(); bios.SWI.instance("SWI_PHY_RX").priority = 8; bios.SWI.instance("SWI_PHY_RX2").priority = 7; bios.SWI.instance("SWI_PHY_RX").priority = 7; bios.SWI.instance("SWI_PHY_RX").priority = 10; bios.SWI.instance("SWI_PHY_RX2").priority = 10; bios.TSK.instance("PHY_TX_TSK").priority = 10; bios.TSK.instance("IPC_RX_TSK").priority = 10; bios.TSK.instance("IPC_TX_TSK").priority = 10; bios.SWI.instance("PHY_TX_SWI").priority = 5; bios.SWI.instance("SWI_PHY_RX").priority = 5; bios.SWI.instance("SWI_PHY_RX2").priority = 5; bios.TSK.instance("IPC_RX_TSK").priority = 5; bios.TSK.instance("IPC_TX_TSK").priority = 5; bios.TSK.instance("PHY_TX_TSK").priority = 5; bios.SWI.instance("PHY_TX_SWI").priority = 10; bios.SWI.instance("SWI_PHY_RX").priority = 4; bios.SWI.instance("SWI_PHY_RX2").priority = 3; bios.TSK.instance("AIO_TSK").priority = 3; bios.TSK.instance("IPC_RX_TSK").priority = 7; bios.TSK.instance("IPC_TX_TSK").priority = 7; bios.TSK.instance("PHY_TX_TSK").priority = 8; // !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT! prog.gen();