QN9020 Error: L6406E: No space in execution regions with....

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

QN9020 Error: L6406E: No space in execution regions with....

3,580 Views
tedwu1
Contributor III

Hi Friend,

I compile my program, but I get a error message as Message-1. If I disable some program I think the code size that I disable less than 200 bytes. I got the message as Message-2. The code size is 39296+2092=41388 bytes. The data sheet said the flash size of QN9020 is 128 Kbytes. How to solve this issue? Let me access more flash size.

Thank you very much.

Ted Wu

Message-1:

*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'qpps'
compiling app_sys.c...
linking...
.\obj\qpps.axf: Error: L6406E: No space in execution regions with .ANY selector matching lib.o(i.attc_rd_blob_req_handler_patch).
.\obj\qpps.axf: Error: L6406E: No space in execution regions with .ANY selector matching smp_patch.o(i.smpc_construct_pair_rand_pdu).
.\obj\qpps.axf: Error: L6406E: No space in execution regions with .ANY selector matching smpc_crypto.o(i.smpc_f5_complete).
.\obj\qpps.axf: Error: L6406E: No space in execution regions with .ANY selector matching idiv.o(.text).
.\obj\qpps.axf: Error: L6406E: No space in execution regions with .ANY selector matching printf8.o(i.__0sprintf$8).
.\obj\qpps.axf: Error: L6406E: No space in execution regions with .ANY selector matching dflti.o(.text).
.\obj\qpps.axf: Error: L6406E: No space in execution regions with .ANY selector matching cdcmple.o(.text).
.....

Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 190 error messages.
".\obj\qpps.axf" - 190 Error(s), 0 Warning(s).
Target not created.

Message-2:

linking...
Program Size: Code=39296 RO-data=2092 RW-data=564 ZI-data=8832
FromELF: creating hex file...
After Build - User command #1: fromelf --bin --output ./bin/qpps.bin ./obj/qpps.axf
".\obj\qpps.axf" - 0 Error(s), 2 Warning(s).

Tags (1)
0 Kudos
5 Replies

3,391 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Ted,

What are the changes that you did?

Could you please provide more details about your application?

Are you working on the SDK 1.4.0?

Regards,

Mario

0 Kudos

3,392 Views
tedwu1
Contributor III

Hi Mario,

I use the CPU of QN9021 and SDK 1.4.0. I add many codes to the system. Because I use QN9021 to do many things for our product. My IDE is uVision version 5.25. Can I run the code at flash if the RAM space isn't enough? And how to modify the scatter file to make the CPU run on flash?

Thank you very much.

Ted Wu

0 Kudos

3,392 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Ted,

Can I run the code at flash if the RAM space isn't enough? And how to modify the scatter file to make the CPU run on flash?

Unfortunately, the QN902x runs the code in RAM.

The bootloader copies application stored in the flash to internal SRAM, and then jump to the address of the application entry point in the SRAM.

What is the example that you modify? I could provide some recommendations for your application.

Regards,

Mario

0 Kudos

3,392 Views
tedwu1
Contributor III

Hi Mario,

My manager porting it from the project of prj_qpps. But this project's OTA seems to be disabled. Finally we also need to OTA function. Please see the attach file for current setting. I have another question : The flash has 128Kbytes, but the RAM only has 64Kbytes. How to use all flash of 128KBytes? Because the application only can be run at RAM.

Thank you very much.

Ted Wu  

0 Kudos

3,392 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Ted,

You could enable the CFG_SW_RELEASE to define instead the CFG_SW_DEBUG.

How to use all-flash of 128KBytes?

The memory architecture is a ROM + Flash + RAM architecture, with the ROM storing the BLE stack, the Flash being used for an application program and data storage.

During the boot, the program is loaded from the Flash to the RAM.  The ROM space is not accessible to users. The system RAM memory is 64kB in size for application program and data, which consists of 8 blocks, addresses for them are allocated as below.

In other words, the Bootloader is not coping all the Flash to the RAM, The firmware is composited of BLE protocol stack, bootloader, and some device drivers. The application can use the firmware functionality by calling API functions provided. The RAM is executing part of the code, and also depending on the variable will be copied.

Regards,

Mario

0 Kudos