2017-09-10 02:01 AM
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 #stm32f0Solved! Go to Solution.
2017-09-11 02:00 AM
i use microlib library and change the number of record in event viewer and it work
2017-09-10 06:56 AM
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
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
2017-09-10 11:21 AM
'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
2017-09-10 12:00 PM
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
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
2017-09-10 10:42 PM
it is like this in default
what u suggest?
2017-09-11 01:58 AM
To reduce your code size by 200 bytes , or to migrate to another MCU with sufficient memory.
2017-09-11 02:00 AM
i use microlib library and change the number of record in event viewer and it work