Skip to main content
navid ansari
Associate II
September 10, 2017
Solved

Event Recorder on STM32F030K6t6 error

  • September 10, 2017
  • 6 replies
  • 2695 views
Posted on September 10, 2017 at 11:01

hi

i haveSTM32F030K6t6 that have 4KB Ram when i try to use Event Recorder on keilit get me this error

*** Using Compiler 'V5.06 update 4 (build 422)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'Target 1'
compiling Relays.c...
compiling Touch.c...
compiling main.c...
compiling Hardware.c...
compiling Switchs.c...
compiling Leds.c...
compiling ZigBee.c...
assembling startup_stm32f030x6.s...
compiling RTX_Conf_CM.c...
compiling system_stm32f0xx.c...
compiling EventRecorder.c...
linking...
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rt_list.o(.bss).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rtx_conf_cm.o(.bss).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching zigbee.o(.bss).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching zigbee.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rtx_conf_cm.o(.bss).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rt_cmsis.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rt_task.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rt_system.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rt_robin.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rtx_conf_cm.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rtx_conf_cm.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rtx_conf_cm.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching system_stm32f0xx.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching rt_time.o(.data).
.\Objects\TouchSwitch.axf: Error: L6406E: No space in execution regions with .ANY selector matching touch.o(.data).
.\Objects\TouchSwitch.axf: Error: L6407E: Sections of aggregate size 0xc4 bytes could not fit into .ANY selector(s).�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?

it says that Ram is not enough.i try to optimize code but it did not work

what can i do?

if it does not work on stm32f0k6t6 so how can i output something for debugging?

something like usartbut with jlink

#event-recorder #stm32f0
This topic has been closed for replies.
Best answer by navid ansari
Posted on September 11, 2017 at 09:00

i use microlib library and change the number of record in event viewer and it work

6 replies

Vangelis Fortounas
Associate II
September 10, 2017
Posted on September 10, 2017 at 15:56

Hello!

This error means there is not enough space to put your image. (Flash or RAM)(look in scatter file)

If your program do not fit to flash (after size optimimization) , some other MCU with proper size will do the work.

In case you run your program from RAM, go to options tab

0690X00000607hTQAQ.png

The total amount of your RAM is 0x1000 bytes (sum of 1  and 2)

Try to increase the size ofIROM1 (1)  and reduce the size of IRAM1 accordingly. (2) 

The remaining IRAM1 must have finaly sufficient space for stack, heap, Glob. obj.

If finaly this ''adjustment'' fails,  you need another MCU with sufficient memory.

Rgrds

vf

navid ansari
Associate II
September 10, 2017
Posted on September 10, 2017 at 18:21

'In case you run your program from RAM, go to options tab'

I don't get this.am I choosing where to run my program?

'

The total amount of your RAM is 0x1000 bytes (sum of 1  and 2)

'

In that pic that u send is sum of 1 and 2 0x1000?

0x800 + 0x800 = ?

I'll check what u say.hope it work.thanks

Vangelis Fortounas
Associate II
September 10, 2017
Posted on September 10, 2017 at 19:00

Hello again.

>>''

I don't get this.am I choosing where to run my program?

''

Yes you can load your program to RAM and run it from RAM. ( put vector table to RAM and program image to RAM)

>> 0x800 + 0x800 = ? 

Yes the result  is 0x1000 , it is hexadecimal.

Finaly i understood that your program is run from FLASH.

So check also in this picture the highlighted amount of Flash memory for your device. Must be 0x8000  32Kbytes

0690X000006088SQAQ.png

If your program's  memory options are like this picture ... then  your options are to reduce your code size by 200 bytes , or to migrate to another MCU with sufficient memory.

Rgrds

vf