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.

Ways of reducing SRAM usage

Other Parts Discussed in Thread: EK-TM4C123GXL

I am using a EK-TM4C123GXL

I currently have a project which is running a small 1.8" LCD display and SD card together, using FreeRTOS. The project (including the FatFS library) comes in at almost 15,000 lines of code. Which is proving difficult because as I slowly add functionality I keep getting errors like this:

error #10099-D: program will not fit into available memory.  run placement with alignment fails for section "BSS_GROUP" size 0x222 .  Available memory ranges:
   SRAM         size: 0x8000       unused: 0x1ff        max hole: 0x1ff    
 
"../freertos_demo_ccs.cmd", line 67: error #10099-D: program will not fit into available memory.  run placement with alignment fails for section ".stack" size 0x200 . 
Available memory ranges:
   SRAM         size: 0x8000       unused: 0x1ff        max hole: 0x1ff   
  
error #10010: errors encountered during linking; "freertos_demo.out" not built

I have:

  1. Reduced my globals to just FreeRTOS queues/semaphores and a few FatFS structures.
  2. Declared as many arrays as const as possible.
  3. Reduced as many types as possible (e.g. int -> uint8_t )

What else can i do to reduce my SRAM usage, or if possible, see what is taking up so much?

Edit: Here is the output of the .map file just before I try to add some functionality( before it fails)

******************************************************************************
                  TI ARM Linker PC v5.2.2                      
******************************************************************************
>> Linked Mon Apr 13 22:53:40 2015

OUTPUT FILE NAME:   <freertos_demo.out>
ENTRY POINT SYMBOL: "_c_int00"  address: 000037b1


MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
  FLASH                 00000000   00040000  000048e0  0003b720  R  X
  SRAM                  20000000   00008000  00007ff1  0000000f  RW X


SEGMENT ALLOCATION MAP

run origin  load origin   length   init length attrs members
----------  ----------- ---------- ----------- ----- -------
00000000    00000000    000048e8   000048e8    r-x
  00000000    00000000    0000026c   0000026c    r-- .intvecs
  0000026c    0000026c    00003d10   00003d10    r-x .text
  00003f80    00003f80    0000083c   0000083c    r-- .const
  000047c0    000047c0    00000128   00000128    r-- .cinit
20000000    20000000    00007ff4   00000000    rw-
  20000000    20000000    00007bd5   00000000    rw- .data
  20007bd8    20007bd8    0000021c   00000000    rw- .bss
  20007df4    20007df4    00000200   00000000    rw- .stack


SECTION ALLOCATION MAP

 output                                  attributes/
section   page    origin      length       input sections
--------  ----  ----------  ----------   ----------------
.intvecs   0    00000000    0000026c     
                  00000000    0000026c     startup_ccs.obj (.intvecs)

.text      0    0000026c    00003d10     
                  0000026c    000005bc     freertos_demo.obj (.text:main)
                  00000828    000002e4     rtsv7M4_T_le_v4SPD16_eabi.lib : fmod.obj (.text)
                  00000b0c    00000290                                   : xsin.obj (.text)
                  00000d9c    0000024d     ustdlib.obj (.text:uvsnprintf)
                  00000fe9    00000001     --HOLE-- [fill = 0]
                  00000fea    00000002     startup_ccs.obj (.text:FaultISR)
                  00000fec    0000024c     screen_task.obj (.text:ScreenTask$8)
                  00001238    0000024c     graphics.obj (.text:drawString)
                  00001484    000001fe     uartstdio.obj (.text:UARTprintf)
                  00001682    000001b6     rtsv7M4_T_le_v4SPD16_eabi.lib : fd_add_t2.obj (.text)
                  00001838    0000019c     switch_task.obj (.text:SwitchTask$10)
                  000019d4    00000144     tasks.obj (.text:xTaskGenericCreate)
                  00001b18    00000136     rtsv7M4_T_le_v4SPD16_eabi.lib : fd_div_t2.obj (.text)
                  00001c4e    00000002     startup_ccs.obj (.text:IntDefaultHandler)
                  00001c50    00000134     spi_task.obj (.text:SPITask$9)
                  00001d84    00000130     screen_task.obj (.text:drawDials)
                  00001eb4    00000118     queue.obj (.text:xQueueGenericReceive)
                  00001fcc    00000114     tasks.obj (.text:xTaskIncrementTick)
                  000020e0    00000110     led_task.obj (.text:LEDTask$5)
                  000021f0    00000110     screen_task.obj (.text:drawDialCircle)
                  00002300    00000100     queue.obj (.text:xQueueGenericSend)
                  00002400    000000fc     screen_task.obj (.text:drawDialLine)
                  000024fc    000000fc     tiva.obj (.text:initTivaForLCD)
                  000025f8    000000fc     rtsv7M4_T_le_v4SPD16_eabi.lib : fd_mul_t2.obj (.text)
                  000026f4    000000e4     queue.obj (.text:prvUnlockQueue$15)
                  000027d8    000000e0     screen_task.obj (.text:drawDigital)
                  000028b8    000000d8     graphics.obj (.text:errorScreen)
                  00002990    000000d0     tasks.obj (.text:xTaskResumeAll)
                  00002a60    000000c8     heap_2.obj (.text:pvPortMalloc)
                  00002b28    000000c0     rgb.obj (.text:RGBEnable)
                  00002be8    000000be     rtsv7M4_T_le_v4SPD16_eabi.lib : xdnorm.obj (.text)
                  00002ca6    00000002     startup_ccs.obj (.text:NmiSR)
                  00002ca8    000000a8     tasks.obj (.text:vTaskSwitchContext)
                  00002d50    000000a6     portasm.obj (.text)
                  00002df6    00000002     rtsv7M4_T_le_v4SPD16_eabi.lib : _lock.obj (.text)
                  00002df8    000000a4     tasks.obj (.text:vTaskPriorityInherit)
                  00002e9c    000000a2     graphics.obj (.text:drawLine)
                  00002f3e    0000009c     rtsv7M4_T_le_v4SPD16_eabi.lib : memcpy_t2.obj (.text)
                  00002fda    00000002     freertos_demo.obj (.text:vApplicationStackOverflowHook)
                  00002fdc    00000098     queue.obj (.text:prvCopyDataToQueue$15)
                  00003074    0000008c     rgb.obj (.text:RGBColorSet)
                  00003100    0000008c     tasks.obj (.text:prvIdleTask$16)
                  0000318c    00000086     rtsv7M4_T_le_v4SPD16_eabi.lib : fd_cmp_t2.obj (.text:__aeabi_cdcmple)
                  00003212    0000007e     queue.obj (.text:xQueueGenericCreate)
                  00003290    0000007c     spi_task.obj (.text:placeInQueue)
                  0000330c    0000007a     rtsv7M4_T_le_v4SPD16_eabi.lib : memset_t2.obj (.text)
                  00003386    00000002     --HOLE-- [fill = 0]
                  00003388    00000070     tasks.obj (.text:xTaskRemoveFromEventList)
                  000033f8    0000006c     rtsv7M4_T_le_v4SPD16_eabi.lib : autoinit.obj (.text)
                  00003464    0000006a                                   : copy_decompress_rle.obj (.text)
                  000034ce    00000002     --HOLE-- [fill = 0]
                  000034d0    00000068     rgb.obj (.text:RGBDisable)
                  00003538    00000068     tiva.obj (.text:writeData)
                  000035a0    00000060     tasks.obj (.text:vTaskDelayUntil)
                  00003600    00000058     graphics.obj (.text:clearScreen)
                  00003658    00000058     tasks.obj (.text:vTaskPlaceOnEventList)
                  000036b0    00000058     tasks.obj (.text:xTaskCheckForTimeOut)
                  00003708    00000054     lcd.obj (.text:gammaAdjustmentST7735)
                  0000375c    00000054     queue.obj (.text:xQueueCreateMutex)
                  000037b0    00000050     rtsv7M4_T_le_v4SPD16_eabi.lib : boot.obj (.text)
                  00003800    00000050     tiva.obj (.text:writeCommand)
                  00003850    0000004e     lcd.obj (.text:setArea)
                  0000389e    00000002     --HOLE-- [fill = 0]
                  000038a0    0000004c     screen_task.obj (.text:drawDigitalValue)
                  000038ec    0000004c     tasks.obj (.text:prvAddCurrentTaskToDelayedList$16)
                  00003938    0000004c     rtsv7M4_T_le_v4SPD16_eabi.lib : cpy_tbl.obj (.text)
                  00003984    0000004c     port.obj (.text:xPortStartScheduler)
                  000039d0    00000048     rtsv7M4_T_le_v4SPD16_eabi.lib : fd_toi_t2.obj (.text)
                  00003a18    00000048     heap_2.obj (.text:vPortFree)
                  00003a60    00000044     rtsv7M4_T_le_v4SPD16_eabi.lib : exit.obj (.text)
                  00003aa4    00000044                                   : feraiseexcept.obj (.text)
                  00003ae8    00000042                                   : u_divt2.obj (.text)
                  00003b2a    00000040     screen_task.obj (.text:performAction)
                  00003b6a    00000002     --HOLE-- [fill = 0]
                  00003b6c    0000003d     spi_task.obj (.text:screenHandler)
                  00003ba9    00000003     --HOLE-- [fill = 0]
                  00003bac    0000003c     rtsv7M4_T_le_v4SPD16_eabi.lib : signal.obj (.text)
                  00003be8    0000003c     lcd.obj (.text:setOrientation)
                  00003c24    0000003a     tasks.obj (.text:prvInitialiseTCBVariables$16)
                  00003c5e    0000003a     list.obj (.text:vListInsert)
                  00003c98    00000038     uartstdio.obj (.text:UARTwrite)
                  00003cd0    00000036     graphics.obj (.text:drawRect)
                  00003d06    0000002e     rtsv7M4_T_le_v4SPD16_eabi.lib : i_tofd_t2.obj (.text)
                  00003d34    00000028     ustdlib.obj (.text:ustrncpy)
                  00003d5c    00000024     graphics.obj (.text:drawPixel)
                  00003d80    00000024     queue.obj (.text:prvCopyDataFromQueue$15)
                  00003da4    00000024     list.obj (.text:uxListRemove)
                  00003dc8    00000022     port.obj (.text:pxPortInitialiseStack)
                  00003dea    00000020     rtsv7M4_T_le_v4SPD16_eabi.lib : u_tofd_t2.obj (.text)
                  00003e0a    00000002     --HOLE-- [fill = 0]
                  00003e0c    0000001c     port.obj (.text:xPortSysTickHandler)
                  00003e28    0000001a     ustdlib.obj (.text:usnprintf)
                  00003e42    0000001a     screen_task.obj (.text:writeOption)
                  00003e5c    00000018     rtsv7M4_T_le_v4SPD16_eabi.lib : args_main.obj (.text)
                  00003e74    00000018     list.obj (.text:vListInsertEnd)
                  00003e8c    00000018     tasks.obj (.text:xTaskGetTickCount)
                  00003ea4    00000016     list.obj (.text:vListInitialise)
                  00003eba    00000002     --HOLE-- [fill = 0]
                  00003ebc    00000014     rgb.obj (.text:RGBIntensitySet)
                  00003ed0    00000014     lcd.obj (.text:getScreenWidth)
                  00003ee4    00000014     rtsv7M4_T_le_v4SPD16_eabi.lib : xferaise.obj (.text)
                  00003ef8    00000014     port.obj (.text:vPortEnterCritical)
                  00003f0c    00000014     port.obj (.text:vPortExitCritical)
                  00003f20    00000010     graphics.obj (.text:setColor)
                  00003f30    00000010     port.obj (.text:vPortYield)
                  00003f40    0000000e     rtsv7M4_T_le_v4SPD16_eabi.lib : copy_decompress_none.obj (.text:decompress:none)
                  00003f4e    0000000c                                   : copy_zero_init.obj (.text:decompress:ZI)
                  00003f5a    0000000c     graphics.obj (.text:drawFastVLine)
                  00003f66    00000006     startup_ccs.obj (.text:ResetISR)
                  00003f6c    00000006     driverlib.lib : uart.obj (.text:UARTClockSourceSet)
                  00003f72    00000006     rtsv7M4_T_le_v4SPD16_eabi.lib : copy_decompress_rle.obj (.text:decompress:rle24)
                  00003f78    00000004                                   : pre_init.obj (.text)

.const     0    00003f80    0000083c     
                  00003f80    00000654     graphics.obj (.const)
                  000045d4    0000013a     <whole-program> (.const:.string)
                  0000470e    00000002     --HOLE-- [fill = 0]
                  00004710    00000060     rtsv7M4_T_le_v4SPD16_eabi.lib : xsin.obj (.const)
                  00004770    00000020     lcd.obj (.const)
                  00004790    00000018     uartstdio.obj (.const)
                  000047a8    00000014     tasks.obj (.const:.string)

.cinit     0    000047c0    00000128     
                  000047c0    00000101     (.cinit..data.load) [load image, compression = rle]
                  000048c1    00000003     --HOLE-- [fill = 0]
                  000048c4    0000000c     (__TI_handler_table)
                  000048d0    00000008     (.cinit..bss.load) [load image, compression = zero_init]
                  000048d8    00000010     (__TI_cinit_table)

.init_array 
*          0    00000000    00000000     UNINITIALIZED

.data      0    20000000    00007bd5     UNINITIALIZED
                  20000000    00007548     heap_2.obj (.data)
                  20007548    00000328     spi_task.obj (.data)
                  20007870    000001d4     tasks.obj (.data)
                  20007a44    000000b0     rtsv7M4_T_le_v4SPD16_eabi.lib : signal.obj (.data:sigtable$39)
                  20007af4    00000004     buttons.obj (.data)
                  20007af8    00000080     rtsv7M4_T_le_v4SPD16_eabi.lib : xvalues.obj (.data)
                  20007b78    00000014     led_task.obj (.data)
                  20007b8c    00000014     rgb.obj (.data)
                  20007ba0    00000008     graphics.obj (.data)
                  20007ba8    00000008     rtsv7M4_T_le_v4SPD16_eabi.lib : _lock.obj (.data)
                  20007bb0    00000008                                   : exit.obj (.data)
                  20007bb8    00000008                                   : feraiseexcept.obj (.data)
                  20007bc0    00000008     uartstdio.obj (.data)
                  20007bc8    00000004     port.obj (.data)
                  20007bcc    00000004     rtsv7M4_T_le_v4SPD16_eabi.lib : errno.obj (.data)
                  20007bd0    00000004                                   : stkdepth_vars.obj (.data)
                  20007bd4    00000001     lcd.obj (.data)

.bss       0    20007bd8    0000021c     UNINITIALIZED
                  20007bd8    00000208     ff.obj (.bss)
                  20007de0    00000008     freertos_demo.obj (.bss)
                  20007de8    00000004     (.common:g_pScreenButtonQueue)
                  20007dec    00000004     (.common:pxDelayedTaskList$16)
                  20007df0    00000004     (.common:pxOverflowDelayedTaskList$16)

.TI.persistent 
*          0    20000000    00000000     UNINITIALIZED

.TI.noinit 
*          0    20007bd8    00000000     UNINITIALIZED

.stack     0    20007df4    00000200     UNINITIALIZED
                  20007df4    00000200     --HOLE--


LINKER GENERATED COPY TABLES

__TI_cinit_table @ 000048d8 records: 2, size/record: 8, table size: 16
	.data: load addr=000047c0, load size=00000101 bytes, run addr=20000000, run size=00007bd5 bytes, compression=rle
	.bss: load addr=000048d0, load size=00000008 bytes, run addr=20007bd8, run size=0000021c bytes, compression=zero_init


LINKER GENERATED HANDLER TABLE

__TI_handler_table @ 000048c4 records: 3, size/record: 4, table size: 12
	index: 0, handler: __TI_decompress_rle24
	index: 1, handler: __TI_decompress_none
	index: 2, handler: __TI_zero_init


GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 

address   name                         
-------   ----                         
00003a61  C$$EXIT                      
00003075  RGBColorSet                  
000034d1  RGBDisable                   
00002b29  RGBEnable                    
00003ebd  RGBIntensitySet              
00003f67  ResetISR                     
UNDEFED   SHT$$INIT_ARRAY$$Base        
UNDEFED   SHT$$INIT_ARRAY$$Limit       
00003f6d  UARTClockSourceSet           
00001485  UARTprintf                   
00003c99  UARTwrite                    
20007af8  _Denorm                      
00002be9  _Dnorm                       
20007b08  _Eps                         
20007bcc  _Errno                       
20007bb8  _Fenv                        
00003ee5  _Feraise                     
20007b18  _Hugeval                     
20007b68  _Inf                         
20007b48  _Nan                         
20007b58  _Rteps                       
00000b0d  _Sin                         
20007b28  _Snan                        
20007bbc  _Tls_setup__Fenv             
20007b38  _Xbig                        
20007b40  _Zero                        
20007ff4  __STACK_END                  
00000200  __STACK_SIZE                 
20007ff4  __STACK_TOP                  
000048d8  __TI_CINIT_Base              
000048e8  __TI_CINIT_Limit             
000048c4  __TI_Handler_Table_Base      
000048d0  __TI_Handler_Table_Limit     
000033f9  __TI_auto_init               
20007bb0  __TI_cleanup_ptr             
00003f41  __TI_decompress_none         
00003f73  __TI_decompress_rle24        
20007bb4  __TI_dtors_ptr               
00000000  __TI_static_base__           
00003f4f  __TI_zero_init               
0000318d  __aeabi_cdcmpeq              
0000318d  __aeabi_cdcmple              
000039d1  __aeabi_d2iz                 
0000168d  __aeabi_dadd                 
00001b19  __aeabi_ddiv                 
000025f9  __aeabi_dmul                 
00001683  __aeabi_dsub                 
00003d07  __aeabi_i2d                  
0000330d  __aeabi_memclr               
0000330d  __aeabi_memclr4              
0000330d  __aeabi_memclr8              
00002f3f  __aeabi_memcpy               
00002f3f  __aeabi_memcpy4              
00002f3f  __aeabi_memcpy8              
0000330f  __aeabi_memset               
0000330f  __aeabi_memset4              
0000330f  __aeabi_memset8              
00003deb  __aeabi_ui2d                 
00003ae9  __aeabi_uidiv                
00003ae9  __aeabi_uidivmod             
ffffffff  __binit__                    
ffffffff  __c_args__                   
20007df4  __stack                      
00003e5d  _args_main                   
000037b1  _c_int00                     
20007ba8  _lock                        
00002df7  _nop                         
20007bd4  _orientation                 
00003f79  _system_pre_init             
20007bac  _unlock                      
00003a65  abort                        
20007ba6  bgColorHighByte              
20007ba4  bgColorLowByte               
ffffffff  binit                        
00003601  clearScreen                  
20007ba2  colorHighByte                
20007ba0  colorLowByte                 
00003939  copy_in                      
000021f1  drawDialCircle               
00002401  drawDialLine                 
00001d85  drawDials                    
000027d9  drawDigital                  
000038a1  drawDigitalValue             
00003f5b  drawFastVLine                
00002e9d  drawLine                     
00003d5d  drawPixel                    
00003cd1  drawRect                     
00001239  drawString                   
000028b9  errorScreen                  
00003a6d  exit                         
00003aa5  feraiseexcept                
00000829  fmod                         
00003f80  font_5x7                     
00004160  font_8x12                    
2000754c  g_pDataQueue                 
20007b7c  g_pLEDQueue                  
20007de4  g_pSPISemaphore              
20007de8  g_pScreenButtonQueue         
20007de0  g_pUARTSemaphore             
00000000  g_pfnVectors                 
2000759c  g_psFResultStrings           
00003709  gammaAdjustmentST7735        
00003ed1  getScreenWidth               
000024fd  initTivaForLCD               
0000026d  main                         
20007bd0  main_func_sp                 
00002f3f  memcpy                       
00003315  memset                       
00003b2b  performAction                
00003291  placeInQueue                 
00002a61  pvPortMalloc                 
20007870  pxCurrentTCB                 
00003dc9  pxPortInitialiseStack        
00003b6d  screenHandler                
00003851  setArea                      
00003f21  setColor                     
00003be9  setOrientation               
00003bad  signal                       
00003e29  usnprintf                    
00003d35  ustrncpy                     
00000d9d  uvsnprintf                   
00003da5  uxListRemove                 
00002fdb  vApplicationStackOverflowHook
00003ea5  vListInitialise              
00003c5f  vListInsert                  
00003e75  vListInsertEnd               
00002dad  vPortClearInterruptMask      
00002de5  vPortEnableVFP               
00003ef9  vPortEnterCritical           
00003f0d  vPortExitCritical            
00003a19  vPortFree                    
00002db7  vPortSVCHandler              
00002da3  vPortSetInterruptMask        
00002dd1  vPortStartFirstTask          
00003f31  vPortYield                   
000035a1  vTaskDelayUntil              
00003659  vTaskPlaceOnEventList        
00002df9  vTaskPriorityInherit         
00002ca9  vTaskSwitchContext           
00003801  writeCommand                 
00003539  writeData                    
00003e43  writeOption                  
00002d55  xPortPendSVHandler           
00003985  xPortStartScheduler          
00003e0d  xPortSysTickHandler          
0000375d  xQueueCreateMutex            
00003213  xQueueGenericCreate          
00001eb5  xQueueGenericReceive         
00002301  xQueueGenericSend            
000036b1  xTaskCheckForTimeOut         
000019d5  xTaskGenericCreate           
00003e8d  xTaskGetTickCount            
00001fcd  xTaskIncrementTick           
00003389  xTaskRemoveFromEventList     
00002991  xTaskResumeAll               


GLOBAL SYMBOLS: SORTED BY Symbol Address 

address   name                         
-------   ----                         
00000000  __TI_static_base__           
00000000  g_pfnVectors                 
00000200  __STACK_SIZE                 
0000026d  main                         
00000829  fmod                         
00000b0d  _Sin                         
00000d9d  uvsnprintf                   
00001239  drawString                   
00001485  UARTprintf                   
00001683  __aeabi_dsub                 
0000168d  __aeabi_dadd                 
000019d5  xTaskGenericCreate           
00001b19  __aeabi_ddiv                 
00001d85  drawDials                    
00001eb5  xQueueGenericReceive         
00001fcd  xTaskIncrementTick           
000021f1  drawDialCircle               
00002301  xQueueGenericSend            
00002401  drawDialLine                 
000024fd  initTivaForLCD               
000025f9  __aeabi_dmul                 
000027d9  drawDigital                  
000028b9  errorScreen                  
00002991  xTaskResumeAll               
00002a61  pvPortMalloc                 
00002b29  RGBEnable                    
00002be9  _Dnorm                       
00002ca9  vTaskSwitchContext           
00002d55  xPortPendSVHandler           
00002da3  vPortSetInterruptMask        
00002dad  vPortClearInterruptMask      
00002db7  vPortSVCHandler              
00002dd1  vPortStartFirstTask          
00002de5  vPortEnableVFP               
00002df7  _nop                         
00002df9  vTaskPriorityInherit         
00002e9d  drawLine                     
00002f3f  __aeabi_memcpy               
00002f3f  __aeabi_memcpy4              
00002f3f  __aeabi_memcpy8              
00002f3f  memcpy                       
00002fdb  vApplicationStackOverflowHook
00003075  RGBColorSet                  
0000318d  __aeabi_cdcmpeq              
0000318d  __aeabi_cdcmple              
00003213  xQueueGenericCreate          
00003291  placeInQueue                 
0000330d  __aeabi_memclr               
0000330d  __aeabi_memclr4              
0000330d  __aeabi_memclr8              
0000330f  __aeabi_memset               
0000330f  __aeabi_memset4              
0000330f  __aeabi_memset8              
00003315  memset                       
00003389  xTaskRemoveFromEventList     
000033f9  __TI_auto_init               
000034d1  RGBDisable                   
00003539  writeData                    
000035a1  vTaskDelayUntil              
00003601  clearScreen                  
00003659  vTaskPlaceOnEventList        
000036b1  xTaskCheckForTimeOut         
00003709  gammaAdjustmentST7735        
0000375d  xQueueCreateMutex            
000037b1  _c_int00                     
00003801  writeCommand                 
00003851  setArea                      
000038a1  drawDigitalValue             
00003939  copy_in                      
00003985  xPortStartScheduler          
000039d1  __aeabi_d2iz                 
00003a19  vPortFree                    
00003a61  C$$EXIT                      
00003a65  abort                        
00003a6d  exit                         
00003aa5  feraiseexcept                
00003ae9  __aeabi_uidiv                
00003ae9  __aeabi_uidivmod             
00003b2b  performAction                
00003b6d  screenHandler                
00003bad  signal                       
00003be9  setOrientation               
00003c5f  vListInsert                  
00003c99  UARTwrite                    
00003cd1  drawRect                     
00003d07  __aeabi_i2d                  
00003d35  ustrncpy                     
00003d5d  drawPixel                    
00003da5  uxListRemove                 
00003dc9  pxPortInitialiseStack        
00003deb  __aeabi_ui2d                 
00003e0d  xPortSysTickHandler          
00003e29  usnprintf                    
00003e43  writeOption                  
00003e5d  _args_main                   
00003e75  vListInsertEnd               
00003e8d  xTaskGetTickCount            
00003ea5  vListInitialise              
00003ebd  RGBIntensitySet              
00003ed1  getScreenWidth               
00003ee5  _Feraise                     
00003ef9  vPortEnterCritical           
00003f0d  vPortExitCritical            
00003f21  setColor                     
00003f31  vPortYield                   
00003f41  __TI_decompress_none         
00003f4f  __TI_zero_init               
00003f5b  drawFastVLine                
00003f67  ResetISR                     
00003f6d  UARTClockSourceSet           
00003f73  __TI_decompress_rle24        
00003f79  _system_pre_init             
00003f80  font_5x7                     
00004160  font_8x12                    
000048c4  __TI_Handler_Table_Base      
000048d0  __TI_Handler_Table_Limit     
000048d8  __TI_CINIT_Base              
000048e8  __TI_CINIT_Limit             
2000754c  g_pDataQueue                 
2000759c  g_psFResultStrings           
20007870  pxCurrentTCB                 
20007af8  _Denorm                      
20007b08  _Eps                         
20007b18  _Hugeval                     
20007b28  _Snan                        
20007b38  _Xbig                        
20007b40  _Zero                        
20007b48  _Nan                         
20007b58  _Rteps                       
20007b68  _Inf                         
20007b7c  g_pLEDQueue                  
20007ba0  colorLowByte                 
20007ba2  colorHighByte                
20007ba4  bgColorLowByte               
20007ba6  bgColorHighByte              
20007ba8  _lock                        
20007bac  _unlock                      
20007bb0  __TI_cleanup_ptr             
20007bb4  __TI_dtors_ptr               
20007bb8  _Fenv                        
20007bbc  _Tls_setup__Fenv             
20007bcc  _Errno                       
20007bd0  main_func_sp                 
20007bd4  _orientation                 
20007de0  g_pUARTSemaphore             
20007de4  g_pSPISemaphore              
20007de8  g_pScreenButtonQueue         
20007df4  __stack                      
20007ff4  __STACK_END                  
20007ff4  __STACK_TOP                  
ffffffff  __binit__                    
ffffffff  __c_args__                   
ffffffff  binit                        
UNDEFED   SHT$$INIT_ARRAY$$Base        
UNDEFED   SHT$$INIT_ARRAY$$Limit       

[155 symbols]