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.

Compiler/MSP430F6779A: getting warning: "warning #10325-D: creating memory range $BOUND0x4d0 to accomodate BOUND section ".TI.bound.MPY32"

Part Number: MSP430F6779A
Other Parts Discussed in Thread: MSPMATHLIB

Tool/software: TI C/C++ Compiler

I accepted default linker command file on the following build and I get these warnings.  What do they mean?  What should I do to get rid of these warnings?

Building target: "emeter.out"
Invoking: MSP430 Linker
"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-msp430_20.2.0.LTS/bin/cl430" -vmspx --code_model=large --data_model=restricted --near_data=globals --opt_for_speed=0 --use_hw_mpy=F5 --advice:power="all" --define=__TI_COMPILER_VERSION --define=__MSP430__ --define=__MSP430F6779A__ -g --symdebug:dwarf_version=4 --c99 --printf_support=full --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi --silicon_errata=CPU21 --silicon_errata=CPU22 --silicon_errata=CPU40 -z -m"emeter.map" --heap_size=16384 --stack_size=2048 --cinit_hold_wdt=on -i"C:/ti/ccs1000/ccs/ccs_base/msp430/include" -i"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-msp430_20.2.0.LTS/lib" -i"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-msp430_20.2.0.LTS/include" -i"C:/ti/ccs1000/ccs/ccs_base/msp430/lib/5xx_6xx_FRxx" --reread_libs --diag_wrap=off --display_error_number --issue_remarks --verbose_diagnostics --warn_sections --xml_link_info="emeter_linkInfo.xml" --use_hw_mpy=F5 --rom_model -o "emeter.out" "./BSLUpdate.obj" "./C_FIFO.obj" "./Debug.obj" "./Modem_Identify.obj" "./OTAUpdate.obj" "./Telit.obj" "./emeter-background.obj" "./emeter-boot-reset.obj" "./emeter-communication.obj" "./emeter-display.obj" "./emeter-dlt645.obj" "./emeter-fifo.obj" "./emeter-fir-table.obj" "./emeter-foreground.obj" "./emeter-http.obj" "./emeter-main.obj" "./emeter-memory.obj" "./emeter-relay.obj" "./emeter-rtc.obj" "./emeter-setup.obj" "./hal_SPI.obj" "./hal_UCS.obj" "./hal_pmm.obj" "./mmc.obj" "./MODBUS2/mb.obj" "./MODBUS2/mbascii.obj" "./MODBUS2/mbcallbacksSunSpec.obj" "./MODBUS2/mbcrc.obj" "./MODBUS2/mbfunccoils.obj" "./MODBUS2/mbfuncdiag.obj" "./MODBUS2/mbfuncdisc.obj" "./MODBUS2/mbfuncholding.obj" "./MODBUS2/mbfuncinput.obj" "./MODBUS2/mbfuncother.obj" "./MODBUS2/mbotherportserial.obj" "./MODBUS2/mbotherporttimer.obj" "./MODBUS2/mbotherrtu.obj" "./MODBUS2/mbportevent.obj" "./MODBUS2/mbportserial.obj" "./MODBUS2/mbporttimer.obj" "./MODBUS2/mbrtu.obj" "./MODBUS2/mbutils.obj" "../lnk_msp430f6779a.cmd"  -l"C:/Users/kleit/Documents/ConnetDER_Eng/V4_Repos/V3-emeter-toolkit/emeter-toolkit/Debug/emeter-toolkit.lib" -llibc.a -llibmath.a
<Linking>
warning #10325-D: creating memory range $BOUND$0x4d0 to accommodate BOUND section ".TI.bound:MPY32"
warning #10325-D: creating memory range $BOUND$0x4d4 to accommodate BOUND section ".TI.bound:MPYS32"
warning #10325-D: creating memory range $BOUND$0x4e0 to accommodate BOUND section ".TI.bound:OP2_32X"
warning #10325-D: creating memory range $BOUND$0x4e4 to accommodate BOUND section ".TI.bound:RESVARS"
remark #10205-D: automatic RTS selection:  linking in "rts430x_lc_rd_eabi.lib" in place of index library "libc.a"
remark #10205-D: linking in "MSPMATHLIB_CCS_msp430_5xx_6xx_FRxx_large_code_restricted_data.lib" in place of index library "libmath.a"
remark #10209-D: automatic RTS selection:  linking in index library "libc.a"
remark #10372-D: (ULP 4.1) Detected uninitialized Port F in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
Finished building target: "emeter.out"
 

  • It shows that the code do something wrong with the memory of MPY32. See from the remark, it seems that you do something wrong when use math function. 

    What you want to do with this device?

  • Please read the first part of the article Linker Command File Primer, and get a clear understanding of the term memory range.

    This diagnostic says ...

    Kip Leitner said:
    warning #10325-D: creating memory range $BOUND$0x4d0 to accommodate BOUND section ".TI.bound:MPY32"

    ... somewhere in your code there is a use of #pragma LOCATION similar to ...

    #pragma LOCATION(MPY32, 0x4d0)
    long MPY32;

    That tells the compiler to locate the variable MPY32 at the memory address 0x4d0.  The linker expects to find a memory range which includes this address.  If that memory range is not present, the linker automatically creates the memory range named $BOUND$0x4d0, and issues the diagnostic.  

    There are two solutions to consider: One, add a memory range which includes all the memory addresses of these diagnostics.  Two, disable the diagnostic by adding the option --diag_suppress=10325.

    To understand more about the pragma, please search the TI ARM compiler manual for the term #pragma LOCATION.

    Thanks and regards,

    -George

**Attention** This is a public forum