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.

Instaspin Linker files

Other Parts Discussed in Thread: MOTORWARE, CONTROLSUITE

I'm using instaspin labs project 13d and i have added several functions, now i get error: program will not fit into available memory

So i have looked around and saw some people also using nonBIOS linker files.

I'm now only using:

motorware_1_01_00_15\sw\ide\ccs\cmd\f2806x\F28069M.cmd for Flash

motorware_1_01_00_15\sw\ide\ccs\cmd\f2806x\f28069M_ram_lnk.cmd for RAM

When should you use:

motorware_1_01_00_15\sw\ide\ccs\cmd\f2806x\F2806x_Headers_nonBIOS.cmd

and when to use

motorware_1_01_00_15\sw\ide\ccs\cmd\Headers_nonBIOS.cmd

What is the difference between them?

I've read the following in F28069M.cmd

// For Code Composer Studio V2.2 and later
// ---------------------------------------
// In addition to this memory linker command file,
// add the header linker command file directly to the project.
// The header linker command file is required to link the
// peripheral structures to the proper locations within
// the memory map.
//
// The header linker files are found in <base>\F2806x_headers\cmd
//
// For BIOS applications add:      F2806x_Headers_BIOS.cmd
// For nonBIOS applications add:   F2806x_Headers_nonBIOS.cmd

So why are they not included in the instaspin labs examples?

Now everything in flash is going to FLASHA_B except ramfuncs who are going to FLASHD

What is the best way to get the program to fit in the other flash locations without loosing speed?

  • I've tagged this for someone else to respond to.

    My understanding is that you use the MotorWare .cmd files for the motorware projects. If you want to use some of the controlSUITE examples for drivers you then need to add those .cmd files as well.

    in MotorWare v16 there is a document that discusses this
    C:\ti\motorware\motorware_1_01_00_16\docs\tutorials\controlsuite_examples_drivers_tutorial.pdf
  • Romke,
    chris is right, the *_Headers_nonbios.cmd help link the bit field headers to the peripheral/system registers memory appropriately. It doesn't dictate where your program should go in flash/RAM. The Motorware cmd files are the ones you should be looking at .

    now, which one you are working with the F28069M_ram_lnk.cmd or F28069M.cmd? If you are using flash linker command file, just replace the .text line with below. This below is just an example on how you can assign more memory to a particular section. You can try the same with the RAM build, basically you will have to find where you can put the extra code and change the linker command file as needed.

    .text : >> FLASHA_B | FLASHC | FLASHD | FLASHE PAGE = 0, ALIGN(4)


    Hope this helps.

    Best Regards
    Santosh Athuru
  • I'm using the F28069M.cmd. I've changed the .cmd file like you suggested and that works good.

    So if i understand correctly when i use the motorware examples, i don't need the *_Headers_nonbios.cmd file?

  • Romke,

    thanks . That's right. If you include any of the standard controlsuite sample/example code for your device in your application, then you will have to pull in the needed headers as well and linker command files with it.

    you can take a look at the GPIO toggle example or any example for F2806x in controlSuite device support to understand how the bit field headers and the *_headers_nonbios.cmd are used.

    But for now you are set.

    Best Regards
    Santosh Athuru