AnsweredAssumed Answered

VisualDSP++ compilation error - Size problem

Question asked by MarcZ on Jun 19, 2017
Latest reply on Jul 18, 2017 by MarcZ

I am using Visual DSP++ version 5.0 with Update 10.1.


I am compiling programs for the ADSP-21489, and I am running into a problem with the compiler.


As I am adding features to my program, it is growing in size. At a certain point, the compiler gave the following message:



----------------Configuration: TestCode - Release----------------



prelinker: Recompiling .\Main.c


[Error li1040] ".\MachDSP.ldf":248 Out of memory in output section 'seg_pmco' in processor 'P0'

             Total of 0x5d3 word(s) were not mapped.

For more details, see 'linker_log.xml' in the output directory.


Linker finished with 1 error

cc3089: fatal error: Link failed

Tool failed with exit/exception code: 1.

Build was unsuccessful.



When I look into the linker_log.xml file, I see the following at the bottom of the file:


<MSG id='02C988D8' mid='li1040' type='Error' >



<TEXT><![CDATA[Out of memory in output section 'seg_pmco' in processor 'P0'

                   Total of 0x5d3 word(s) were not mapped.]]></TEXT>

<EXTENDED_INFO><![CDATA[0x18c words required for .\Release\Temp_Sensor_ADC128.doj(seg_pmco):0x3ae

0x162 words required for .\Release\TestSVS.doj(seg_pmco):0x7f

0xbd words required for .\Release\UART_Service.doj(seg_pmco):0x24

0x5a words required for libc_nwc.dlb[getargv.doj](seg_pmco):0x0

0x9 words required for libc_nwc.dlb[interrup.doj](seg_pmco):0x9

0x1ad words required for libc_nwc.dlb[interrup.doj](seg_pmco):0xc

0x18 words required for libc_nwc.dlb[sure_rti.doj](seg_pmco):0x0




If I eliminate some code, the program will compile without errors again. In this case, the Loader File (ldf) file size is 174,732 bytes, and the DXE file size is 1,230,696 bytes.


So my questions are:


1. What is causing the problem?

For example, have I run into a real limitation in program size with the ADSP-21489?

I am using a "KIT" license that came with the Danvile Signal Processing dsblok, and the license has a known limitation on program size, but I'm not sure that's the limit I have hit.


2. How do I solve the problem?

For example, is there a different way to "map" the program in memory to avoid the problem?

If the problem is the license type, I suppose the solution would be to upgrade my license, right?


In any event, let me know what are the next steps necessary to solve the problem.


Thank you,

Best regards,

Marc Zetek