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.

[参考译文] TMS320C6657:IBL 编译错误

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1393566/tms320c6657-ibl-build-errors

器件型号:TMS320C6657

工具与软件:

大家好、我正在尝试构建用于 I2C 引导的 IBL。 我遵循这些指示: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1048640/faq-processor-sdk-c665x-ibl-build-steps-on-windows-10-processor-family-c665x/3879673?tisearch=e2e-sitesearch&keymatch=FAQ%2525252520Rajarajan#3879673

但是、当运行"make"命令时、我会遇到许多错误:

$ make evm_c6657_i2c ENDIAN=little I2C_BUS_ADDR=0x51
make -f makestg1 I2C_BUS_ADDR=0x51 I2C_MAP_ADDR=0x500 \
ENDIAN_MODE=little ARCH=c64x TARGET=c665x EVM=c6657l SPI=no SPI_DEFS='SPI_MODE=1 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=1 SPI_CLKDIV=8 SPI_ROM=1' \
CEXCLUDES='COFF BIS NAND_GPIO' c665x
make[1]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/make'
make -f makestg2 ARCH=c64x TARGET=c665x ENDIAN=little I2C_SIZE_BYTES=0x20000 I2C_BUS_ADDR=0x51 INTERNAL_UTILS= SPI_DEFS='SPI_MODE=1 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=1 SPI_CLKDIV=8 SPI_ROM=1' utils
make[2]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/make'
make -C ../util/btoccs
make[3]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/btoccs'
gcc -o b2ccs b2ccs.c
gcc -o b2i2c b2i2c.c
gcc -o ccs2b ccs2b.c
gcc -o bfaddsect bfaddsect.c
gcc -o bfmerge bfmerge.c
gcc -o ccs2bin ccs2bin.c
ccs2bin.c: In function 'parseit':
ccs2bin.c:74:14: warning: implicit declaration of function 'strcmp' [-Wimplicit-function-declaration]
if (!strcmp (argv[i], "-swap"))
    ^~~~~~ 
make[3]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/btoccs'
make -C ../util/romparse TARGET=c665x
make[3]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/romparse'
Checking command line dependencies
same
make[3]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/romparse'
make -C ../util/i2cConfig c665x MAINDEFS='-DIBL_CFG_I2C_MAP_TABLE_DATA_BUS_ADDR=0x51 -DEXCLUDE_COFF -DEXCLUDE_BIS -DEXCLUDE_NAND_GPIO -DSPI_MODE=1 -DSPI_ADDR_WIDTH=24 -DSPI_NPIN=5 -DSPI_CSEL=2 -DSPI_C2TDEL=1 -DSPI_CLKDIV=8 -DSPI_ROM=1 -DPAD_FILE_ID_1=1 -DPAD_FILE_ID_2=1 -DINIT_EXE_FILE='"ibl_c665x/ibl_init.i2c.be.ccs"' -DEXE_FILE_1='""' -DEXE_FILE_2='"ibl_c665x/ibl.i2c.be.ccs"''
make[3]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/i2cConfig'
make -f makestg2 ARCH=c64x I2C_BUS_ADDR=0x51 I2C_MAP_ADDR=0x500 TARGET=c665x c665x
make[4]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/i2cConfig'
Checking command line dependencies
same
making hw
make -C ../../hw/c64x/make hw
make[5]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/hw/c64x/make'
Checking command line dependencies
same
make[5]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/hw/c64x/make'
making device
make -C ../../device/c64x/make CDEFS='-DIBL_CFG_I2C_MAP_TABLE_DATA_BUS_ADDR=0x51 -DEXCLUDE_COFF -DEXCLUDE_BIS -DEXCLUDE_NAND_GPIO -DSPI_MODE=1 -DSPI_ADDR_WIDTH=24 -DSPI_NPIN=5 -DSPI_CSEL=2 -DSPI_C2TDEL=1 -DSPI_CLKDIV=8 -DSPI_ROM=1 -DPAD_FILE_ID_1=1 -DPAD_FILE_ID_2=1 -DINIT_EXE_FILE=ibl_c665x/ibl_init.i2c.be.ccs -DEXE_FILE_1= -DEXE_FILE_2=ibl_c665x/ibl.i2c.be.ccs' device
make[5]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/device/c64x/make'
q -I -a -ele.oa -o$.da ../../../device/c64x/c64x.s
/bin/sh: q: command not found
make[5]: [c64x.da] Error 127 (ignored)
Checking command line dependencies
same
make[5]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/device/c64x/make'
cl6x -z -o i2cparam_c665x_le.out -m i2cparam_c665x_le.map i2cparam.le.oc ../../hw/c64x/make/i2c.le.oc ../../hw/c64x/make/pll.le.oc ../../hw/c64x/make/cfgpll.le.oc ../../hw/c64x/make/cfgpll2.le.oc ../../device/c64x/make/c64x.le.oa ../../hw/c64x/make/psc.le.oc ../../device/c64x/make/c665xutil.le.oc i2cparam.cmd "C:/ti/ccs930/ccs/tools/compiler/c6000_7.4.24"/lib/rts64plus.lib
<Linking>
../../master/DIAG/user_msg_api.c:217:internal fatal error #99926:
(ofile_error_handler(): <internal>: corrupted object file:  attempting to
get ELF interface for non-ELF file)
INTERNAL ERROR: c:\ti\ccs930\ccs\tools\compiler\ti-cgt-c6000_8.3.5\bin\lnk6x.exe had an internal inconsistency and aborted
This is caused by a defect in the TI Linker.
TI Customer Support may be able to suggest a workaround to avoid this.
Upgrading to the newest version of the compiler may fix this problem.
Contact TI in the E2E support forums at http://e2e.ti.com under
"Development Tools", "TI C/C++ Compiler".  See the link titled
"Submitting an issue".
We need to see this ENTIRE error message and a complete, reproducible
test case including ALL of the command-line options.
Include all of the object files, libraries, and linker command files 
used to link the program.
>> Compilation failure 
make[4]: *** [c665x] Error 1 
make[4]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/i2cConfig'
make[3]: *** [c665x] Error 2
make[3]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/i2cConfig'
make[2]: *** [utils] Error 2
make[2]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/make'
make[1]: *** [le_target] Error 2
make[1]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/make'
make: *** [evm_c6657_i2c] Error 2

感谢你的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex Jones

    请发布以下内容

    1. Windows 中的"路径"变量屏幕截图10.

    2.您的  setupenvMsys.sh 文件中找到。

    ——

    从您的错误消息中:--

    内部错误:C:\ti\ccs930\ccs\tools\compiler\ti-cgt-c6000_8.3.5\bin\lnk6x.exe 存在内部不一致并中止
    这是由 TI 链接器中的缺陷导致的。

    --- >您是否已安装 "C6000 TI 代码生成工具、版本:7.4.X"?

    --- >因为您的内部版本似乎使用的是最新版本"C6000_8.3.5"

    此致

    Shankari G.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1.  

    2.  

    $ cat setupenvMsys.sh
    #!/bin/bash
    
    # Environment setup to be done if using MSYS Bash shell for build
    
    # Specify the base directory of the c6000 compiler with UNIX style path separator
    export C6X_BASE_DIR='"C:/ti/ccs930/ccs/tools/compiler/c6000_7.4.24"'
    
    # Don't modify the below variables. They are derived from the above definitions
    export PATH=$PATH:C:/ti/ccs930/ccs/tools/compiler/c6000_7.4.24/bin
    export TOOLSC6X=$C6X_BASE_DIR
    export TOOLSC6XDOS=$C6X_BASE_DIR
    export C6X_BASE_DIR_MSYS=/C/ti/ccs930/ccs/tools/compiler/c6000_7.4.24

    3.我使用的是 C6000_8.3.5版本。 我无法下载并安装7.4版

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex Jones、

    您正在使用  "C6000_8.3.5版本"、但您在 setupenvMsys.sh 等文件中提到了"C/ti/ccs930/ccs/tools/compiler/C6000_7.4.24"、发生冲突...对吗?

    这肯定会造成错误。。 对吧?

    ——

    "C6000 TI 代码生成工具、版本:7.4.24"必须。

    https://www.ti.com/tool/download/C6000-CGT/7.4.24

    您可以从此处下载。

    此致

    Shankari G.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经安装了版本7.4.24。 我使用了7.4.24和8.3.5。 我重新安装了7.4.24但后来意识到我已经有了它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因此、我按照这里的说明: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/248504/ibl-build-problem
    从而让我传递构建错误块。 除了这些更改外、我还向多个文件中添加了"export MAKEDEPPATH={PATH TO 7.4.24 CL6.exe}"。 然而,我现在失败在一个新的地方:

    $ make evm_c6657_i2c ENDIAN=little I2C_BUS_ADDR=0x51
    make -f makestg1 I2C_BUS_ADDR=0x51 I2C_MAP_ADDR=0x500 \
    ENDIAN_MODE=little ARCH=c64x TARGET=c665x EVM=c6657l SPI=no SPI_DEFS='SPI_MODE=1 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=1 SPI_CLKDIV=8 SPI_ROM=1' \
    CEXCLUDES='COFF BIS NAND_GPIO' c665x
    make[1]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/make'
    make -f makestg2 ARCH=c64x TARGET=c665x ENDIAN=little I2C_SIZE_BYTES=0x20000 I2C_BUS_ADDR=0x51 INTERNAL_UTILS= SPI_DEFS='SPI_MODE=1 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=1 SPI_CLKDIV=8 SPI_ROM=1' utils
    make[2]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/make'
    make -C ../util/btoccs
    make[3]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/btoccs'
    gcc -o b2ccs b2ccs.c
    gcc -o b2i2c b2i2c.c
    gcc -o ccs2b ccs2b.c
    gcc -o bfaddsect bfaddsect.c
    gcc -o bfmerge bfmerge.c
    gcc -o ccs2bin ccs2bin.c
    ccs2bin.c: In function 'parseit':
    ccs2bin.c:74:14: warning: implicit declaration of function 'strcmp' [-Wimplicit-function-declaration]
             if (!strcmp (argv[i], "-swap"))
                  ^~~~~~
    make[3]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/btoccs'
    make -C ../util/romparse TARGET=c665x
    make[3]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/romparse'
    Checking command line dependencies
    same
    make[3]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/romparse'
    make -C ../util/i2cConfig c665x MAINDEFS='-DIBL_CFG_I2C_MAP_TABLE_DATA_BUS_ADDR=0x51 -DEXCLUDE_COFF -DEXCLUDE_BIS -DEXCLUDE_NAND_GPIO -DSPI_MODE=1 -DSPI_ADDR_WIDTH=24 -DSPI_NPIN=5 -DSPI_CSEL=2 -DSPI_C2TDEL=1 -DSPI_CLKDIV=8 -DSPI_ROM=1 -DPAD_FILE_ID_1=1 -DPAD_FILE_ID_2=1 -DINIT_EXE_FILE='"ibl_c665x/ibl_init.i2c.be.ccs"' -DEXE_FILE_1='""' -DEXE_FILE_2='"ibl_c665x/ibl.i2c.be.ccs"''
    make[3]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/i2cConfig'
    make -f makestg2 ARCH=c64x I2C_BUS_ADDR=0x51 I2C_MAP_ADDR=0x500 TARGET=c665x c665x
    make[4]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/i2cConfig'
    Checking command line dependencies
    same
    making hw
    make -C ../../hw/c64x/make hw
    make[5]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/hw/c64x/make'
    Checking command line dependencies
    same
    make[5]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/hw/c64x/make'
    making device
    make -C ../../device/c64x/make CDEFS='-DIBL_CFG_I2C_MAP_TABLE_DATA_BUS_ADDR=0x51 -DEXCLUDE_COFF -DEXCLUDE_BIS -DEXCLUDE_NAND_GPIO -DSPI_MODE=1 -DSPI_ADDR_WIDTH=24 -DSPI_NPIN=5 -DSPI_CSEL=2 -DSPI_C2TDEL=1 -DSPI_CLKDIV=8 -DSPI_ROM=1 -DPAD_FILE_ID_1=1 -DPAD_FILE_ID_2=1 -DINIT_EXE_FILE=ibl_c665x/ibl_init.i2c.be.ccs -DEXE_FILE_1= -DEXE_FILE_2=ibl_c665x/ibl.i2c.be.ccs' device
    make[5]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/device/c64x/make'
    Checking command line dependencies
    same
    make[5]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/device/c64x/make'
    #cl6x -z -o i2cparam_c665x_le.out -m i2cparam_c665x_le.map i2cparam.le.oc ../../hw/c64x/make/i2c.le.oc ../../hw/c64x/make/pll.le.oc ../../hw/c64x/make/cfgpll.le.oc ../../hw/c64x/make/cfgpll2.le.oc ../../device/c64x/make/c64x.le.oa ../../hw/c64x/make/psc.le.oc ../../device/c64x/make/c665xutil.le.oc i2cparam.cmd "C:/ti/ccs930/ccs/tools/compiler/c6000_7.4.24"/lib/rts64plus.lib
    C:/ti/ccs930/ccs/tools/compiler/c6000_7.4.24/bin/cl6x.exe -z -o i2cparam_c665x_le.out -m i2cparam_c665x_le.map i2cparam.le.oc ../../hw/c64x/make/i2c.le.oc ../../hw/c64x/make/pll.le.oc ../../hw/c64x/make/cfgpll.le.oc ../../hw/c64x/make/cfgpll2.le.oc ../../device/c64x/make/c64x.le.oa ../../hw/c64x/make/psc.le.oc ../../device/c64x/make/c665xutil.le.oc i2cparam.cmd "C:/ti/ccs930/ccs/tools/compiler/c6000_7.4.24"/lib/rts64plus.lib
    <Linking>
    make[4]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/i2cConfig'
    make[3]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/i2cConfig'
    make -C ../util/bconvert
    make[3]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/bconvert'
    make[3]: Nothing to be done for `all'.
    make[3]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/bconvert'
    make -C ../util/iblConfig/build EVM=c6657l I2C_MAP_ADDR=0x500
    make[3]: Entering directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/iblConfig/build'
    touch input.txt
    echo "file_name = ibl.bin" > input.txt
    echo "device = 8" >> input.txt
    echo "offset = 0x500" >> input.txt
    echo "ethBoot-doBootp = " >> input.txt
    echo "ethBoot-bootFormat = " >> input.txt
    echo "ethBoot-ipAddr = " >> input.txt
    echo "ethBoot-serverIp = " >> input.txt
    echo "ethBoot-gatewayIp = " >> input.txt
    echo "ethBoot-netmask = " >> input.txt
    echo "ethBoot-fileName = " >> input.txt
    gcc   -O2 -DEVM=c6657l -DI2C_MAP_ADDR=0x500 ./obj/iblConfig.obj ./obj/device.obj  -o iblConfig.out
    ./obj/iblConfig.obj: file not recognized: File format not recognized
    collect2.exe: error: ld returned 1 exit status
    make[3]: *** [iblConfig.out] Error 1
    make[3]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/util/iblConfig/build'
    make[2]: *** [utils] Error 2
    make[2]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/make'
    make[1]: *** [le_target] Error 2
    make[1]: Leaving directory `/c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl/src/make'
    make: *** [evm_c6657_i2c] Error 2

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在 tetidigly 在各种文件中更新各种 types.h 的路径后、我最终得到 IBL 编译

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我现在继续介绍以下说明: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1057566/faq-tms320c6657-how-to-flash-the-ibl-intermediate-boot-loader-into-eeprom-and-how-to-flash-the-application-binary-into-nor-how-to-boot-the-ibl-application-binary
    我已成功使用 IBL 刷写 EEPROM、但在对 DIP 开关进行调整后、在下电上电时没有看到 UART 输出。 接下来、我尝试使用我的应用程序对 NOR 闪存进行编程。 根据链接的说明、只需将"app.out"重命名为"app.bin"并将 NOR 刷写。 然而,北方报抱怨:

    NOR Writer 实用程序版本01.00.00.04

    数据文件太大、无法放入器件中。
    解析 CCS 文件 app.bin 时出错

    我的问题如下:
    1.是否需要对 IBL 进行任何修改才能看到 UART 输出?

    2.我应该期望输出打开哪个 UART、波特率是多少? 注意:我已经检查了两个 UART 的波特率115200。

    3.是否需要在"app.out"上执行任何其他步骤来压缩它并生成我将闪存到 NOR (app.bin )的文件?

    我今晚会在这里,希望我们能明白这一点。 感谢您到目前为止提供的所有帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、

    恭喜、您能够成功构建 IBL。 这是个好消息。

    我的答案是内联的。

    1. 是否需要进行任何 IBL 修改才能看到 UART 输出?[/QUOT]

    答案:-否

    2. 我应该期望输出打开哪个 UART?波特率是多少? 注意:我已检查两个 UART 的波特率115200。

    答案:-是的、波特率正确:- 115200。 如果是 TI-EVM、则为基础板中的 UART-***-USB 端口。 (蓝色可拆卸板用于仿真器和 CCS 连接。)

    将评估板的 UART 端口连接到 PC 的 USB 端口。

    在 Windows 中打开设备管理器、并在使用之前检查端口号。

    如果这是您的定制电路板、请检查您设计的 UART 的原理图...。 等等...

    3. 是否需要对"app.out"执行任何其他步骤来压缩它并生成我将闪存到 NOR (app.bin)的文件?[/QUOT]

    此致

    Shankari G.

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们使用默认情况下与 TI 的 norwriter 代码不兼容的 NOR 闪存。 我之前修改过此代码、以便能够使用我们的器件。 该部件为64MB、应为8 MB。 我们拥有的 app.bin 大约为6.2 MB。 目前、平台库不允许我写入超过4 MB 的数据、因为它的错误是基于不同或器件。 我正在研究如何重建 norwriter 代码和平台库、以便我可以进行更多编程。 此外、我比较担心 IBL、因为在 I2C 引导模式下对 EEPROM 进行编程并重新启动器件后、我无法看到 UART 输出。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、

    我正在研究重建 norwriter 代码和平台库以允许我编程更多内容。

    可以、您可以重新构建 NOR 编写代码。 步骤如下:-  

    1. NOR WRITE - REBUILD 步骤:-

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1380319/faq-tms320c6657-how-to-re-build-the-nor-writer-code-of-processor-sdk-6-3

    2、平台库重新构建:--- >在以下常见问题中,重建平台库也是一个部分。

    [常见问题解答] TMS320C6657:如何 在 C6657 EVM 上构建和运行平台测试? -处理器论坛-处理器- TI E2E 支持论坛

    此外、我还略微担心 IBL、因为在 I2C 引导模式下对 EEPROM 编程并重启器件后、我看不到 UART 输出。  [报价]

    "逐步执行"。

    一旦您成功构建了 IBL、那就需要进行休息了。

    在继续引导 UART 之前、首先确保 IBL 引导成功。

    检查是否从 IBL 接收消息并在控制台上显示其版本。

    刷写 IBL 后、

    1. 将 DIP 开关设置更改为

    1. 打开超级终端或 putty 并连接 UART
    2. 观察 IBL 引导、版本为1.0.0.15或1.0.017

    请告诉我、您是否能够达到此阶段???

     此致

    Shankari G.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我目前正在通过减小应用程序的大小来重建 norwriter 和平台库。 我能够成功地对 NOR 闪存进行编程。 也就是说、我已通过 putty 使用有效波特率和 DIP 开关配置连接到 UART 端口、但我尚未观察任何输出。 它是完全空白的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、

    您在 TI-EVM 中尝试过? 获取?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试过 EVM、也没有 UART 的输出

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    我不认为设置有误。 除非类型大小不应为8位

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    据我公司以前的一名员工说:  
    "

    3. EEPROM 加载很难正确完成。  即使您创建了正确的 IBL 映像、也需要将其正确加载到硬件上。  加载"eepromwriter_evm6657l.out"eeprom writer 应用后、需要加载 要写入的 IBL 映像。 这可以通过将图像加载到处理器存储器(Tools->Load Memory)来实现。 为了正确生成映像、需要将 i2crom.bin 文件加载为"文件类型:TI 原始数据"、"起始地址"为0x0c000000、"类型尺寸"为32位。


    "

    来自此帖子: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1166305/tms320c6657-booting-ibl-i2c-app-spi-issues

    根据 Brad 的工作、我已将类型大小更改为32位、但仍然没有通过 UART 做出响应。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、

    在 TI-EVM 中、刷写 EEPROM 绝对是一个简单的步骤

    按照我在该链接中提供的视频进行操作。  https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1057566/faq-tms320c6657-how-to-flash-the-ibl-intermediate-boot-loader-into-eeprom-and-how-to-flash-the-application-binary-into-nor-how-to-boot-the-ibl-application-binary

    或者

    按照以下步骤操作:-

    e2e.ti.com/.../1373.EEPROM_5F00_Writer_5F00_C6657.mp4

    此致

    Shankari G.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的步数与该视频完全匹配。 我加载 EEPROM 写入器程序(eepromwriter.txt 按照各种链接中指定的方式更新)、将 i2crom.bin 加载到存储器位置0x0C000000、类型大小设置为32位、然后看到成功的输出:
     

    [C66xx_0] EEPROM 编写器实用程序版本01.00.00.05

    从 DSP 存储器地址0x0c000000写入47888字节至 EEPROM 总线地址0x0051 (从器件地址0x0000开始)...
    从 EEPROM 总线地址0x0051读取47888字节到 DSP 存储器地址0x0c010000 (从器件地址0x0000开始)...
    正在验证数据读取...
    EEPROM 编程成功完成

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的 i2crom.bin 是通过从 MinGW 终端运行以下命令生成的:  

    /c/ti/pdk_c665x_2_0_16/packages/ti/boot/ibl src 和 make
    $ make evm_c6657_i2c ENDIAN=little I2C_BUS_ADDR=0x51

    在 EVM 和定制电路板上仍然没有 UART 输出

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、

    好消息是… 至少,现在,我们知道,我们在哪里停留,如何继续..

    让我再创建一个视频、介绍 TIEVM -使用 Windows CCS 的 UART 以及 putty 终端的连接设置。

    此致

    Shankari G.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    IBL 在 EVM 上启动、我可以看到 UART 输出

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    简而言之、IBL 在 EVM 上引导、而不在我们的定制硬件上引导。 我看到的是 EVM 的 UART 输出、但没有来自我们的定制硬件。 为了尝试解决该问题、我已在启动过程中探测了 EVM 和定制电路板上 EEPROM 与电平转换器之间的电阻器。 我可以看到 EEPROM 和 DSP 之间来回通信、就我所能知(前96个数据包)而言、它们都完全匹配。 这给了我更大的困惑、因为从 EVM 到定制电路板、EEPROM、电平转换器、电阻器、EEPROM 写入器程序、EEPROM 中的值、与 EEPROM 之间的通信、DIP 开关以及 DSP 本身都是相同的。 我不明白这种差异可能来自哪里。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、我已通过我们硬件的多个独立单元的测试、因此不太可能出现故障的 UART 接口

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、  

    简明扼要地重述一下、IBL 是在 EVM 上引导的、而不是在我们的自定义硬件上引导。 [报价]

    好极了。 这是一个好消息、您可以成功使用 TI-EVM 并在 UART 控制台上看到 IBL 引导消息。

    现在、您有一些参考资料可供比较、使您的定制电路板能够正常工作...

    ——

    修复有故障的 UART 接口并让我知道它是如何进行的

    祝你一切顺利!

    Shankari G.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    所以我犯了一个严重的错误。 我当时正在使用 IBL 在评估板上对总线地址0x50进行编程、并尝试使用总线地址0x51 (由 DIP 开关确定)进行引导。 因此、我误认为在现实中启动的 IBL 是评估板技术参考手册中指定的预编程 IBL (二级引导加载程序):


    "I2C 总线连接到一个 EEPROM 和80引脚扩展接头(TEST_PH1)。 I2C EEPROM 中有两组、分别在地址0x50和0x51处响应。 这些组可加载演示程序。 目前、0x50处的组包含加电自检(POST)、0x51处的组包含第二级引导加载程序。 第二级引导加载程序可用于运行编程后处理程序或从 NOR 闪存启动 OOB 演示。"

    因此、我几乎回到了我开始的位置。 我可以根据 TI 提供的代码构建 IBL、只需进行编译所需的任何更改、因为 IBL 不是提供给我们的可编译状态。 但是、我根据 TI 的代码构建的 IBL 无法在评估板或我们的定制硬件上引导   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、

    对于评估板、请按照以下步骤在总线地址0x51处进行编程。

    [常见问题解答] TMS320C6657:如何将 IBL (中间引导加载程序)刷写到 EEPROM 中、以及如何将应用程序二进制文件刷写到 NOR 中? 如何引导 IBL +应用程序二进制文件? -处理器论坛-处理器- TI E2E 支持论坛

    ——

    即  

    修改 位于"C:\ti\pdk_c665x_2_0_16\packages\ti\boot\writer\eeprom\evmc6657l\bin"中的 eepromwriter_input.txt

    file_name = i2crom.bin
    BUS_addr = 0x51
    start_addr = 0
    SWAP_DATA = 0

    ——

    请让我知道它是如何为您发展的。

    此致

    Shankari G.