This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

f28069 Compilation Errors when using f28035 code

Other Parts Discussed in Thread: CONTROLSUITE

I am trying to replace the f28035 control card with the f28069 control card for my sensorless motor controller. I followed the migration document and did the following:

New linker CMD files: F28069.cmd and F2806x_Headers_nonBIOS.cmd (with F2806x_Headers_nonBIOS.cmd specified in the linker CMD files properties menu).

New header files: from control-suite, f2806x/v130

New support files: f2806x_headers

Same f2803x motor control drivers, except they call out #include "f2806xbmsk.h"

However, I still get a compilation error that reads (trying to program to FLASH): 

Description Resource Path Location Type
program will not fit into available memory. run placement with alignment/blocking fails for section "ramfuncs" size 0x86c page 0. Available memory ranges: RAML0 size: 0x800 unused: 0x800 max hole: 0x800 F28069.cmd /Sensorless line 126 C/C++ Problem

and 

Description Resource Path Location Type
build attribute vendor section TI missing in "C:/ti/controlSUITE/libs/math/IQmath/v160/lib/IQmath.lib<IQ24cosPU.obj>": compatibility cannot be determined Sensorless C/C++ Problem

I assume I am missing some other setting or file that needs to get changed. Any help or suggestions would be appreciated.

Troy

  • Troy,

    Troy Beechner said:
    Description Resource Path Location Type
    program will not fit into available memory. run placement with alignment/blocking fails for section "ramfuncs" size 0x86c page 0. Available memory ranges: RAML0 size: 0x800 unused: 0x800 max hole: 0x800 F28069.cmd /Sensorless line 126 C/C++ Problem

    This error is telling you it cannot fit the RAMFUNCS section into the RAML0 memory.  You will need to adjust your .cmd file to make things fit.

    Troy Beechner said:
    Description Resource Path Location Type
    build attribute vendor section TI missing in "C:/ti/controlSUITE/libs/math/IQmath/v160/lib/IQmath.lib<IQ24cosPU.obj>": compatibility cannot be determined Sensorless C/C++ Problem

    You can ignor this.  The IQmath library was built using an older version of the compiler than what you are using in your project now, and that older compiler did not put some attribute information in the .lib file that the new compiler uses for compatibility checking.  This is harmless.  You're compatible.  Ignor it.

    Regards,

    David

  • Thanks for the quick response David,

    I am using the files directly from control suite, which I thought were supposed to be ready to go unmodified? Also, the code fits on the 28035, which has less memory than the 28069, which also lead to me believe that something was just setup incorrectly. I can go through and look at the files more closely, I was just expecting them to work out of the box.

    Troy

  • If you are using the controlsuite version of motor control, they contain their own .CMD file.  In this .CMD file they combine 2 adjacent RAM blocks (among other things probably.. like a section for DLOG) into one continuous block of ram.  ramfuncs are then loaded into this location which is large enough to store them.  The default .CMD files found in device support do not do this, each RAM block is individually allocated and none of them are big enough to fit the entirety of the motor control ramfuncs.

    Keep using the nonbios command file you found in device support (this one pretty much just maps the registers of the device) but modify or replace the 28069.cmd file with the correct file.

    Jim