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.

RTOS TM4C123GH6PM heap decrease

Other Parts Discussed in Thread: SYSBIOS

Hello, i am new on RTOS and i have a controller with only 32k RAM. Now i have done a small program with 7 events and 9 tasks. And i need 18,8k RAM. Is this the basic amount of RAM used by RTOS? Can i do some optimizations? Also the heap is 4kB big and at the moment empty can i decrease him?

Thank you

Franz Winkler

.bss       0    20000360    00004978     UNINITIALIZED
                  20000360    00002800     empty_pem4f.oem4f (.bss:taskStackSection)
                  20002b60    00001000     empty_pem4f.oem4f (.bss:ti_sysbios_heaps_HeapMem_Instance_State_0_buf__A)
                  20003b60    00000480     empty_pem4f.oem4f (.bss:ti_uia_runtime_LoggerStopMode_Instance_State_1_bufferArray__A)
                  20003fe0    00000480     empty_pem4f.oem4f (.bss:ti_uia_runtime_LoggerStopMode_Instance_State_2_bufferArray__A)
                  20004460    00000400     empty_pem4f.oem4f (.bss:xdc_runtime_SysMin_Module_State_0_outbuf__A)
                  20004860    00000280     empty_pem4f.oem4f (.bss:ti_uia_runtime_LoggerStopMode_Instance_State_0_bufferArray__A)
                  20004ae0    00000120     rtsv7M4_T_le_v4SPD16_eabi.lib : trgmsg.obj (.bss:__CIOBUF_)
                  20004c00    00000048     EK_TM4C123GXL.obj (.bss:uartTivaObjects)
                  20004c48    00000044     Main.obj (.bss)
                  20004c8c    00000004     --HOLE--
                  20004c90    00000040     empty_pem4f.oem4f (.bss)
                  20004cd0    00000008     rtsv7M4_T_le_v4SPD16_eabi.lib : trgdrv.obj (.bss)

.stack     0    20004cd8    00001000     UNINITIALIZED
                  20004cd8    00001000     --HOLE--

.data      0    20005cd8    00000c00     
                  20005cd8    00000360     empty_pem4f.oem4f (.data:ti_sysbios_family_arm_m3_Hwi_Module_State_0_dispatchTable__A)
                  20006038    000001bc     empty_pem4f.oem4f (.data)
                  200061f4    00000190     empty_pem4f.oem4f (.data:ti_sysbios_knl_Task_Object__table__V)
                  20006384    00000108     empty_pem4f.oem4f (.data:ti_uia_runtime_LoggerStopMode_Object__table__V)
                  2000648c    00000080     empty_pem4f.oem4f (.data:ti_sysbios_knl_Swi_Module_State_0_readyQ__A)
                  2000650c    00000080     empty_pem4f.oem4f (.data:ti_sysbios_knl_Task_Module_State_0_readyQ__A)

  • Hi Franz,

    Information on code size and benchmarks is provided in the RTOS kernel release notes.  Assuming you are using TI-RTOS v1.10 (which uses SYS/BIOS 6.35); the information can be found here.  Some simple optimizations you can do to minimize code are: create Tasks statically, use the un-instrumented version of the drivers (if using any), and disable logs (log statements are not included at build time).  Finally, the heap size can be adjusted using the BIOS_heapSize parameter withing your .cfg file.  

    Thanks,

    -- Emmanuel