Hi, Dear partners.
My target chip is ADSP-21593, I need to define a variable at an absolute address(in L2 memory) with no-starting-up-init(no_init)
can you tell me how to do this in LDR file or in C file?
thanks and looking forward to your reply.
Hi, Dear partners.
My target chip is ADSP-21593, I need to define a variable at an absolute address(in L2 memory) with no-starting-up-init(no_init)
can you tell me how to do this in LDR file or in C file?
thanks and looking forward to your reply.
Hi Jay,
The RESOLVE() command in the LDF is used to place a symbol at an absolute address. The symbol in the RESOLVE() command must be a global symbol. The resolver is an absolute address that contains the symbol's definition. Please refer attached screenshot for your reference.
For example,
//RESOLVE(symbol_name, resolver)
RESOLVE(Test_Data., 0x20020000)
Regarding no_init qualifier>>> NO_INIT contains uninitialized data. There is no data stored in the .dxe file for this section.
The NO_INIT qualifier is used, When linking an executable file that contains large uninitialized variables. The NO_INIT qualifier directs the linker to omit data for that section from the output file.
You can map variable/ buffers to section with no_init qualifier as below in source file.
for example,
#pragma section("seg_l2_noinit_data", NO_INIT)
test1[10];
Even if you do not use NO_INIT, the boot loader removes variables initialized to zeros from the .ldr file and replaces them with instructions for the loader kernel to zero out the variable. This action reduces the loader’s output file size.
Regards,
Santhakumari.K
Thanks Santha, this is really helpful.
Thanks Santha, this is really helpful.