Hi ,
I'm working with TI-RTOS as Web Server.
TI-RTOS : tirtos_tivac_2_10_01_38
NDK: ndk_2_24_01_18
Microcontroller: TM4C192ENCPDTI34BA72JW
After some time (one hour) gives me the following error:
It seems to be overflow memory, but because reason this occurs?
How can I solve the problem?
A part of app.cfg:
/* * The BIOS module will create the default heap for the system. * Specify the size of this default heap. */ BIOS.heapSize = 150000; /* * Build a custom SYS/BIOS library from sources. */ BIOS.libType = BIOS.LibType_NonInstrumented; /* System stack size (used by ISRs and Swis) */ Program.stack = 8192; //4096 /* Circular buffer size for System_printf() */ SysMin.bufSize = 0x200; /* * Create and install logger for the whole system */ //var loggerBufParams = new LoggerBuf.Params(); //loggerBufParams.numEntries = 16; //var logger0 = LoggerBuf.create(loggerBufParams); //Defaults.common$.logger = logger0; Main.common$.diags_INFO = Diags.ALWAYS_ON; System.SupportProxy = SysMin; var task0Params = new Task.Params(); task0Params.instance.name = "heartBeat"; task0Params.stackSize = 512; task0Params.arg0 = 1000; Program.global.heartBeat = Task.create("&heartBeatFxn", task0Params); TIRTOS.useGPIO = true; Global.IPv6 = true; Ip.autoIp = true; Ip.address = ""; Ip.mask = "255.255.255.0"; Ip.gatewayIpAddr = "192.168.1.254"; Global.stackInitHook = "&AddWebFiles"; Global.stackDeleteHook = "&RemoveWebFiles"; Global.stackBeginHook = null; Global.networkOpenHook = "&newIPAddr"; var task1Params = new Task.Params(); task1Params.instance.name = "receive_usb"; task1Params.priority = 2; task1Params.stackSize = 768; task1Params.stackSection = ".bss"; task1Params.vitalTaskFlag = false; Program.global.receive_usb = Task.create("&receiveFxn", task1Params); var task2Params = new Task.Params(); task2Params.instance.name = "transmit_usb"; task2Params.priority = 2; task2Params.stackSize = 768; task2Params.stackSection = ".bss"; task2Params.vitalTaskFlag = false; Program.global.transmit_usb = Task.create("&transmitFxn", task2Params); TIRTOS.libType = TIRTOS.LibType_NonInstrumented; BIOS.assertsEnabled = false; BIOS.logsEnabled = false; Idle.idleFxns[0] = "&Function_Idle"; TIRTOS.useUART = true; Idle.idleFxns[1] = null; var http0Params = new Http.Params(); http0Params.maxCon = 4; var http0 = Http.create(http0Params); Tcp.maxNumReasmPkts = 4; var semaphore0Params = new Semaphore.Params(); semaphore0Params.instance.name = "DataLoopSem"; Program.global.DataLoopSem = Semaphore.create(null, semaphore0Params); var task3Params = new Task.Params(); task3Params.instance.name = "DataLoop_App_Handle"; task3Params.priority = 3; task3Params.stackSize = 1024; Program.global.DataLoop_App_Handle = Task.create("&DataLoop_App_Task", task3Params); Task.defaultStackSize = 1024; Global.networkIPAddrHook = "&mynetworkIPAddrHook"; Global.lowTaskStackSize = 1024; Global.normTaskStackSize = 1024; Global.highTaskStackSize = 2048; Global.ndkThreadStackSize = 2048; Tcp.transmitBufSize = 4096; Tcp.receiveBufSize = 4096; Tcp.receiveBufLimit = 4096; Global.memRawPageSize = 6153; BIOS.heapTrackEnabled = false; Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; Ip.socketBufMinTxSize = 1024; Ip.socketMaxConnections = 8; Global.memRawPageCount = 8; BIOS.customCCOpts = "--endian=little -mv7M4 --abi=eabi --float_support=fpv4spd16 -q -ms --opt_for_speed=2 --program_level_compile -o3 -g --optimize_with_debug"; Task.idleTaskStackSize = 1024;
Update:
It seems that there is an internal error in the function IDLE, which causes memory not be released by "dchild".
How do I know what causes this internal error?
Regards
Aquino