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.

CCS/TMS320F28069: Warning : #10068-D no matching section for Flash2806x_API_wFPU_Library.lib

Part Number: TMS320F28069
Other Parts Discussed in Thread: CONTROLSUITE

Tool/software: Code Composer Studio

Hi,

When I try to put library Flash2806x_API_wFPU_Library.lib into the RAM receive warning message that not matching section

Used Code Composer Studio Version: 6.1.3.00033, compiler version TI v15.12.1.LTS

Library getting from controlSUITE

In linker file added following lines:

   Flash28_API: // Applicable only when API is not in BootROM
  {
   		-l Flash2806x_API_wFPU_Library.lib (.econst)
        -l Flash2806x_API_wFPU_Library.lib (.text)
   }
					LOAD = FLASHD
					RUN = RAML0
					LOAD_START(_Flash28_API_LoadStart),
					LOAD_END(_Flash28_API_LoadEnd),
					RUN_START(_Flash28_API_RunStart),
					PAGE = 0

Also getting from examples in controlSUITE.

What I do wrong?

  • Alex,

    Have you actually called an API function?  If you don't call a function in the library, nothing from the library gets pulled into the project and hence you get the no matching section warning.

    Regards,

    David

  • I use these functions from library:
    Flash_Program()
    Flash_Erase()
  • The no matching sections found warning occurs when you specify special linkage of a section in the .cmd file but that section is not in the project. Hence, I suspected that either the .econst and/or the .text section from the API library is not present in your project.

    Check the .map file and see if these sections have been pulled in. The diagnostic about no matching section is just a warning, so the build should complete anyway.

    Regards,
    David
  • No I have these sections

    Flash28_API 
    *          0    00008000    00000000     UNINITIALIZED
    
    .text      0    003d8000    00003b77     
                      003d8000    0000101a     canfestival3.lib : sdo.obj (.text)
                      003d901a    00000521                      : pdo.obj (.text)
                      003d953b    0000039b     F2806x_DefaultIsr.obj (.text:retain)
                      003d98d6    000002ec     canfestival3.lib : states.obj (.text)
                      003d9bc2    0000025e     pscbms_od.obj (.text)
                      003d9e20    0000022c     ao_lift.obj (.text)
                      003da04c    00000225     ao_canopen.obj (.text)
                      003da271    00000216     ecan.obj (.text)
                      003da487    00000202     canfestival3.lib : objacces.obj (.text)
                      003da689    000001c6                      : emcy.obj (.text)
                      003da84f    0000018e                      : lifegrd.obj (.text)
                      003da9dd    0000017b                      : dcf.obj (.text)
                      003dab58    00000163     qp2800_ml.lib : qhsm_dis.obj (.text)
                      003dacbb    00000113     sys.obj (.text)
                      003dadce    000000f4     canfestival3.lib : timer.obj (.text)
                      003daec2    000000d5                      : sync.obj (.text)
                      003daf97    000000c4     spib.obj (.text)
                      003db05b    000000b4     co_sec_bootl.obj (.text)
                      003db10f    000000a9     canfestival3.lib : nmtSlave.obj (.text)
                      003db1b8    0000009c     adc.obj (.text)
                      003db254    00000095     spib.obj (.text:retain)
                      003db2e9    00000088     rts2800_fpu32.lib : fs_div.obj (.text)
                      003db371    00000081     ao_lift.obj (.text:retain)
                      003db3f2    00000079     qp2800_ml.lib : qa_get_.obj (.text)
                      003db46b    00000078                   : qf_tick.obj (.text)
                      003db4e3    00000069                   : qhsm_ini.obj (.text)
                      003db54c    00000068                   : qa_fifo.obj (.text)
                      003db5b4    00000062                   : qmp_init.obj (.text)
                      003db616    0000005a                   : qf_act.obj (.text)
                      003db670    00000059                   : qmp_get.obj (.text)
                      003db6c9    00000056     rts2800_fpu32.lib : boot.obj (.text)
                      003db71f    00000054     qp2800_ml.lib : qk.obj (.text)
                      003db773    00000051     canfestival3.lib : nmtMaster.obj (.text)
                      003db7c4    00000050     qp2800_ml.lib : qk_sched.obj (.text)
                      003db814    00000046     rts2800_fpu32.lib : cpy_tbl.obj (.text)
                      003db85a    0000003b     qp2800_ml.lib : qte_arm.obj (.text)
                      003db895    00000039     adc.obj (.text:retain)
                      003db8ce    00000036     main.obj (.text)
                      003db904    00000036     qp2800_ml.lib : qf_new.obj (.text)
                      003db93a    00000035                   : qf_pool.obj (.text)
                      003db96f    00000031                   : qf_port.obj (.text)
                      003db9a0    00000030                   : qmp_put.obj (.text)
                      003db9d0    0000002f                   : qf_gc.obj (.text)
                      003db9ff    00000029     rts2800_fpu32.lib : exit.obj (.text)
                      003dba28    00000026     F2806x_PieVect.obj (.text)
                      003dba4e    00000022     rts2800_fpu32.lib : i_div.obj (.text)
                      003dba70    00000020     qp2800_ml.lib : qte_ctor.obj (.text)
                      003dba90    0000001e     rts2800_fpu32.lib : memcpy.obj (.text)
                      003dbaae    0000001b     qp2800_ml.lib : qeq_init.obj (.text)
                      003dbac9    0000001b                   : qte_darm.obj (.text)
                      003dbae4    0000001a     rts2800_fpu32.lib : cpy_utils.obj (.text)
                      003dbafe    00000019                       : args_main.obj (.text)
                      003dbb17    00000015                       : memcmp.obj (.text)
                      003dbb2c    00000013     qp2800_ml.lib : qk_port.obj (.text)
                      003dbb3f    0000000c     rts2800_fpu32.lib : memset.obj (.text)
                      003dbb4b    0000000b                       : u_div.obj (.text)
                      003dbb56    00000009                       : _lock.obj (.text)
                      003dbb5f    00000008     F2806x_CodeStartBranch.obj (.text)
                      003dbb67    00000007     F2806x_DisInt.obj (.text)
                      003dbb6e    00000006     qp2800_ml.lib : qhsm_top.obj (.text)
                      003dbb74    00000002     rts2800_fpu32.lib : pre_init.obj (.text)
                      003dbb76    00000001                       : startup.obj (.text)
    
    .econst    0    003f0992    00000436     
                      003f0992    00000100     qp2800_ml.lib : qf_log2.obj (.econst:.string:_QF_log2Lkup)
                      003f0a92    00000100     F2806x_PieVect.obj (.econst:_PieVectTableInit)
                      003f0b92    000000b4     pscbms_od.obj (.econst:_PSC3_objdict)
                      003f0c46    00000041     qp2800_ml.lib : qf_pwr2.obj (.econst:.string:_QF_invPwr2Lkup)
                      003f0c87    00000041                   : qf_pwr2.obj (.econst:.string:_QF_pwr2Lkup)
                      003f0cc8    0000001b     pscbms_od.obj (.econst:.string)
                      003f0ce3    00000014     ao_canopen.obj (.econst:.string:_l_this_file)
                      003f0cf7    0000000c     qp2800_ml.lib : qep.obj (.econst:_QEP_reservedEvt_)
                      003f0d03    00000009                   : qhsm_dis.obj (.econst:.string:_l_this_file)
                      003f0d0c    00000009                   : qhsm_ini.obj (.econst:.string:_l_this_file)
                      003f0d15    00000009                   : qmp_init.obj (.econst:.string:_l_this_file)
                      003f0d1e    00000009                   : qte_ctor.obj (.econst:.string:_l_this_file)
                      003f0d27    00000008                   : qa_fifo.obj (.econst:.string:_l_this_file)
                      003f0d2f    00000008                   : qa_get_.obj (.econst:.string:_l_this_file)
                      003f0d37    00000008                   : qf_pool.obj (.econst:.string:_l_this_file)
                      003f0d3f    00000008                   : qf_tick.obj (.econst:.string:_l_this_file)
                      003f0d47    00000008                   : qmp_get.obj (.econst:.string:_l_this_file)
                      003f0d4f    00000008                   : qmp_put.obj (.econst:.string:_l_this_file)
                      003f0d57    00000008                   : qte_arm.obj (.econst:.string:_l_this_file)
                      003f0d5f    00000001     --HOLE-- [fill = 0]
                      003f0d60    00000008     canfestival3.lib : states.obj (.econst:_$P$T4$5)
                      003f0d68    00000008                      : states.obj (.econst:_$P$T5$6)
                      003f0d70    00000007     qp2800_ml.lib : qf_act.obj (.econst:.string:_l_this_file)
                      003f0d77    00000007                   : qf_new.obj (.econst:.string:_l_this_file)
                      003f0d7e    00000007                   : qf_act.obj (.econst:.string:_version$1)
                      003f0d85    00000007                   : qk_port.obj (.econst:.string:_version$1)
                      003f0d8c    00000007     canfestival3.lib : states.obj (.econst:_$P$T0$1)
                      003f0d93    00000007                      : states.obj (.econst:_$P$T1$2)
                      003f0d9a    00000007                      : states.obj (.econst:_$P$T2$3)
                      003f0da1    00000007                      : states.obj (.econst:_$P$T3$4)
                      003f0da8    00000006     qp2800_ml.lib : qf_gc.obj (.econst:.string:_l_this_file)
                      003f0dae    00000006     pscbms_od.obj (.econst:_PSC3_firstIndex)
                      003f0db4    00000006     pscbms_od.obj (.econst:_PSC3_lastIndex)
                      003f0dba    00000003     qp2800_ml.lib : qk.obj (.econst:.string:_l_this_file)
                      003f0dbd    00000001     --HOLE-- [fill = 0]
                      003f0dbe    00000002     ao_balancer.obj (.econst)
                      003f0dc0    00000002     ao_canopen.obj (.econst)
                      003f0dc2    00000002     ao_data_acq.obj (.econst)
                      003f0dc4    00000002     ao_lift.obj (.econst)
                      003f0dc6    00000002     pscbms_od.obj (.econst)
    

  • I do not see .econst or .text contributions from the Flash2806x_API_wFPU_Library.lib in your listing. Are you certain that you call Flash_Program() and Flash_Erase()? I still suspect that you are not calling any functions that are in the API library.

    - David

  • Hi David,

    Thank you for help, I found some mistakes in our code and now library loaded correctly.

    But now I have another issue with making the correct hex file of firmware.

    By default when I choose intel format hex2000 generates two output files, they looked like one contains lower bytes and another one high bytes.

    If I choose option --image in general option of C2000 hex utility of property tab, I receive an error message:

    Description Resource Path Location Type
    -image requires ROMS directive PSC_BMS_CAN C/C++ Problem

    So, how to solve this issue?

  • I solved all issues.

    Information to solve last issue found here: processors.wiki.ti.com/.../Hex_Utility_in_CCS
  • Hi, can you share what kind of mistakes you found in your code to fix that linker issue? I'm running into something that looks very similar and would like to be doing something else entirely. Thanks!