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.

IWR1642: IWR1642 SBL

Part Number: IWR1642

你好,我有看到lab0012_can_sbl里面有一个1843的CAN BOOTLOADER例程,我要如何才能将它改成1642能用的CAN bootloader例程呢?

  • 可以尝试把sbl_xwr18xx.c文件用sbl_xwr16xx.c文件替代,再重新编译。

  • 谢谢,其实是主要我不知道如何把1843的工程环境环境改成1642的工程环境~~只替换C文件,无法编译通过。

    以下是我的尝试步骤:

    1.将sbl_xwr18xx.c文件用sbl_xwr16xx.c文件替代,编译后提示一些1642的宏定义没有,如SOC_XWR16XX_MSS_EXT_FLASH_BASE_ADDRESS。

    2.我将properties->predefined中SOC_XWR18XX改成了SOC_XWR16XX,properties->general->variant 中的1843改成了1642,

    在将transport.c中1843的关于CAN的引脚初始化先注释掉。再编译提示以下错误,我就不知道该怎么修改了。

    "../xwr1642_r4f.cmd", line 18: error #10263: VECTORS memory range has already been specified
    "../xwr1642_r4f.cmd", line 18: error #10264: VECTORS memory range overlaps existing memory range VECTORS
    "../xwr1642_r4f.cmd", line 19: error #10263: PROG_RAM memory range has already been specified
    "../xwr1642_r4f.cmd", line 19: error #10264: PROG_RAM memory range overlaps existing memory range PROG_RAM
    "../xwr1642_r4f.cmd", line 20: error #10263: DATA_RAM memory range has already been specified
    "../xwr1642_r4f.cmd", line 20: error #10264: DATA_RAM memory range overlaps existing memory range DATA_RAM
    warning #10278-D: LOAD placement specified for section ".text:decompress:none:__TI_decompress_none:rtsv7R4_T_le_v3D16_eabi.lib<copy_decompress_none.c.obj>". This section contains decompression routines required for linker generated copy tables and C/C++ auto-initialization. Must ensure that this section is copied to run address before the C/C++ boot code is executed or is placed with single allocation specifier (ex. "> MEMORY").
    warning #10278-D: LOAD placement specified for section ".text:rtsv7R4_T_le_v3D16_eabi.lib<memcpy_t2.asm.obj>". This section contains decompression routines required for linker generated copy tables and C/C++ auto-initialization. Must ensure that this section is copied to run address before the C/C++ boot code is executed or is placed with single allocation specifier (ex. "> MEMORY").
    warning #10278-D: LOAD placement specified for section ".text:decompress:ZI:__TI_zero_init_nomemset:__TI_zero_init_nomemset:rtsv7R4_T_le_v3D16_eabi.lib<copy_zero_init.c.obj>". This section contains decompression routines required for linker generated copy tables and C/C++ auto-initialization. Must ensure that this section is copied to run address before the C/C++ boot code is executed or is placed with single allocation specifier (ex. "> MEMORY").
    warning #10278-D: LOAD placement specified for section ".text:decompress:ZI:__TI_zero_init:rtsv7R4_T_le_v3D16_eabi.lib<copy_zero_init.c.obj>". This section contains decompression routines required for linker generated copy tables and C/C++ auto-initialization. Must ensure that this section is copied to run address before the C/C++ boot code is executed or is placed with single allocation specifier (ex. "> MEMORY").
    warning #10278-D: LOAD placement specified for section ".text:rtsv7R4_T_le_v3D16_eabi.lib<memset_t2.asm.obj>". This section contains decompression routines required for linker generated copy tables and C/C++ auto-initialization. Must ensure that this section is copied to run address before the C/C++ boot code is executed or is placed with single allocation specifier (ex. "> MEMORY").
    warning #10278-D: LOAD placement specified for section ".text:decompress:lzss:__TI_decompress_lzss:rtsv7R4_T_le_v3D16_eabi.lib<copy_decompress_lzss.c.obj>". This section contains decompression routines required for linker generated copy tables and C/C++ auto-initialization. Must ensure that this section is copied to run address before the C/C++ boot code is executed or is placed with single allocation specifier (ex. "> MEMORY").
    warning #10247-D: creating output section "systemHeap" without a SECTIONS specification

    undefined first referenced
    symbol in file
    --------- ----------------
    _appVecs ./sbl.obj

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "can_sbl18xx_mss.xer4f" not built

    >> Compilation failure
    makefile:170: recipe for target 'can_sbl18xx_mss.xer4f' failed
    gmake[2]: *** [can_sbl18xx_mss.xer4f] Error 1
    makefile:166: recipe for target 'main-build' failed
    gmake[1]: *** [main-build] Error 2
    makefile:161: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

  • 1. transport.c里的管脚配置用下面的代码代替

    /* Setup the PINMUX to bring out the XWR16xx CAN pins */
    Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PINE14_PADAE, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
    Pinmux_Set_FuncSel(SOC_XWR16XX_PINE14_PADAE, SOC_XWR16XX_PINE14_PADAE_CANFD_TX);

    Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PIND13_PADAD, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
    Pinmux_Set_FuncSel(SOC_XWR16XX_PIND13_PADAD, SOC_XWR16XX_PIND13_PADAD_CANFD_RX);

    2. 用\labs\lab0012_can_sbl\src\ mss_can_sbl_linker.cmd文件代替xwr1642_r4f.cmd

  • 可以了,谢谢