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/AWR1642:是否在不使用 CCSv7的情况下将.bin 文件编程到闪存?

Guru**** 2588865 points
Other Parts Discussed in Thread: AWR1642, UNIFLASH, SYSBIOS

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/614056/ccs-awr1642-programming-bin-files-to-flash-without-ccsv7

器件型号:AWR1642
主题中讨论的其他器件: UNIFLASHSYSBIOS

工具/软件:Code Composer Studio

我们正在使用 AWR1642开发平台、并且能够在调试模式下编译和运行毫米波演示源(根据 SDK 随附的文档"xWR16xx_MMW_USER_guide.pdf")。  我们通过 PC 上的 CCSv7在板上运行该源。

作为参考、我将查看第4.1节"准备 EVM"。

但是、我们还希望通过将二进制文件刷写到电路板上来在"部署模式"下运行、以便我们可以在没有 CCS 或 PC 的情况下运行。

但是、当我们使用 Uniflash 工具将 CCS 创建的.bin 编程到我们的开发板上、以便它可以从 PC 独立运行时、我们无法与开发板建立通信、就像未正确编程开发板一样。

对于部署模式、使用 CCS 中内置的.bin 对 QSPI 进行编程的正确过程是什么?

提前感谢、

Joe Shidle

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

    为方便起见,我提到的文件就在这里。

    e2e.ti.com/.../5758.xWR16xx_5F00_mmw_5F00_user_5F00_guide.pdf

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

    你好 Joe、

    对于部署模式、通过编译步骤创建的 bin 文件将刷写到板载闪存中。

    对于 AWR1642器件、编译期间会创建一个.bin 文件、该文件将进入闪存。 在您提到的第13页的 pdf 中、显示了该 bin 文件。

    为了确保刷写步骤正常工作、您可以尝试在毫米波 SDK 安装下作为毫米波演示的一部分提供的.bin 文件。

    典型路径为:

    "C:\ti\mmwave_sdk_01_00_00_05\packages/ti\demo\xwr16xx\mmw\xwr16xx_mmw_demo.bin"

    一旦您确认上述 bin 文件允许您运行演示 GUI、我们就可以了解您在本地创建的 bin 文件为何不起作用。

    谢谢、

    Vaibhav

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

    感谢您的回答。

    使用 Uniflash 工具 v4.1.2.1329、我能够刷写中的.bin
    C:\ti\mmwave_sdk_01_00_00_05\packages/ti\demo\xwr16xx\mmw\xwr16xx_mmw_demo.bin

    毫米波演示 GUI 按预期使用此二进制文件。

    然后、我对我编译的.bin 进行了编程、该文件位于
    \MMW\Debug\xwr16xx_MMW.bin>

    成功编程.bin 并将跳线切换到部署模式后、开发板不会通过 UART 进行复制。 在使用 CCS v7.1.0.00016进行下载和调试时、此代码通常也起作用

    我们注意到的一个差异是二进制文件的大小。

    毫米波 SDK 随附的工作.bin "xwr16xx_MMW_DEMOM.bin"为403KB

    我编译的非工作.bin "xwr16xx_mmw.bin"为236KB、我希望它们包含类似数量的代码。 可能不是确切的尺寸、而是在附近的位置。 这使我认为缺少一些库或代码、或者两个二进制文件是使用不同的编译选项(例如优化选项)编译的。

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

    Joe、您好!

    16xx mmw Demo CCS 项目的最终可闪存.bin 映像是 xwr16xx_mmw_demo.bin、用户指南第14页对此进行了介绍。 让我尝试在下面阐明16xx mmW Demo CCS 项目的构建流程:

    1. 导入两个 projectspecs、mmw.projectspec 和 mmw_dss.projectspec。
    2. 首先构建 DSS 工程。 这将为 DSS 子系统生成.xe674和.bin。
      1. 本页上的说明将.xe674和.bin 这两个文件列为成功的 DSS 工程编译的输出(因为 MSS 编译稍后需要该.bin 来生成多核映像)。
    3. 然后构建 MMW 项目。
      1. 这将为 MSS 子系统生成.xer4f 和.bin。
      2. 然后、它将 DSS 的.bin 和 MSS 的.bin 合并到一个多核映像中。 最后一个输出文件是 xwr16xx_mmw.bin、在第14页列出。

    查看您上次的响应、我可以看到您使用了正确的.bin 文件、即 \MMW\Debug\xwr16xx_MMW.bin>。 但是、我不确定您的构建中 xwr16xx_mmw.bin 的大小为何为236KB。 您是否对代码或编译选项等进行了任何更改?

    请您尝试以下操作:

    1.从工作区中删除现有 MMW 和 MMW_DSS 项目(确保选中了"删除磁盘上的内容"选项以实际删除项目)。

    2.请确保您已下载最新版本的毫米波培训、即 mmWave Training v:1.2.1。 并具有 xWR16xx_MMW_USER_guide.pdf 的"先决条件"部分中列出的正确依赖项版本(SDK、SYSBIOS、编译器工具链、perl 等)。

    3.重新导入 MMW 和 MMW_DSS 这两个项目,并按照上面给出的顺序(与用户指南中给出的顺序相匹配)进行编译。

    为了便于参考、我在工作台上提供了中间和最终.bin 文件的大小以及构建日志(mmw 项目)的最终部分。

    /mw_dss/Debug/xwr16xx_mmw_dss.bin:172,808字节
    /mmw/Debug/xwr16xx_mmw_mss.bin:102,864字节
    /mmw/Debug/xwr16xx_mmw.bin:412100字节(402.44KB)

    mmw.projectspec 的后续生成日志

    '
    '构建目标:xwr16xx_mmw_MSS.xer4f'
    '调用:ARM 链接器'
    "c:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.3.LTS/bin/armcl /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/crc/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/mailbox/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/soc/lib /ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.3.LTS/lib -mv7R4 -code_state=32 --float_support=VFPv3D16 -me -O3 --define=SOC_XWR16XX --define=Subsys_MSS --define=download_from_ccs --define=Debug_assert_ened -g -enum_warning=/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwave/lib -i=/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/esm/lib -i_exc=/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/osal/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/uart/lib /ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.3.LTS/include -intrab_ines"-"i-cn"-i=0xC:C:/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwavelink/lib -i_intrab_ines"-c:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/gpio/lib -ines"-=inc-ins"-i_ina-cs "i-from_intrab_ines"-c:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/pinmux/lib -"i-from_ines"-="i-from_ab"-exits"-intrab_ab_intrab_ina.i_ines"-c:/ti/mmwave_sdk_01_00_00_05/packages/ti/utils/cli/lib -"i-tex"i-tex"i-dimb"-"i-dimb"-"i-tex-ina.i_ab-ina-ina-ina-ina.i_ab_ab_ina.i_ab_ines reread_libs --disable_auto_rts --diag_warning=225 --diag_wrap=off --display_error_number --warn_sections --xml_link_info="xwr16xx_mmw_liblinkInfo.obj"--rom_model --unused_section_elimination="xwr16xx/libcr16xx/librf_libcr16xx"-librf_linker -libr16xx/librf_linker -libr16xx/librf_linker -lib_linker -libr16xx/librf_librf_linker -libr16xx/librf_lib_linker

    '完成的构建目标:xwr16xx_mmw_MSS.xer4f'
    '
    C:/ti/mmwave_sdk_01_00_00_05/packages/scripts/ImageCreator/xwr16xx/out2rprc/out2rprc.exe xwr16xx_mmw_MSS.xer4f xwr16xx_mmw_mss.bin
    解析输入目标文件 xwr16xx_MMW_MSS.xer4f。
    附加零0
    附加零256
    文件转换完成!
    C:/ti/mmwave_sdk_01_00_00_05/packages/scripts/ImageCreator/xwr16xx/multicore_image_generator/MulticoreImageGen.exe LE 37 0x01000005 xwr16xx_mmw.bin 0x35510000 xwr16xx_mmw_mss.bin b5510000 C:/ti/mmwave_sdk_01_00_00_05/firmware/radarss/xwr16xx_radarss_rprc.bin 0xd5510000 C:/Users/nsakhuja/workspace_v7/mmw_dss/Debug/xwr16xx_mmw_dss.bin
    输入文件数量3.
    零数48
    0的数量8.
    零数56

    C:/ti/mmwave_sdk_01_00_00_05/packages/scripts/ImageCreator/xwr16xx/crc_multicore_image/crc_multicore_image.exe xwr16xx_mmw.bin xwr16xx_mmw.bin.tmp
    应用程序映像的大小为412096字节
    CUR_CRC_READ_addr 128
    CUR_CRC_READ_ADDR 103040
    CUR_CRC_READ_addr 239232
    无法删除 CRC 临时文件

    perl.exe C:/ti/mmwave_sdk_01_00_00_05/packages/scripts/ImageCreator/xwr16xx/append_bin_crc/gen_bincrc32.pl xwr16xx_mmw.bin
    >>>二进制 CRC32 = 33440762 <<<
    >>>二进制文件412100中的总字节<<<
    '

    此致
    尼廷

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

    感谢您的回答。

    通过查看您的构建脚本输出、我们发现了我们的问题。 由于 WORKSPACE_LOC 的用法不正确、指向.bin 的位置、我们的 xwr16xx_mmw_dss.bin 似乎未包含在内。

    生成输出脚本确实提到了 xwr16xx_MMW_DSS.bin "找不到"、但在"问题"选项卡/窗口中没有出现警告或错误、因此我们没有意识到任何问题。

    通过对我们的属性进行此更改(Build -> Steps -> Post-build Steps)、我们能够构建我们的二进制文件、它们的大小与 TI 发布的 pre-build .bin 相当、我们能够闪存到目标器件。

    非常感谢您帮助解决此问题。 有时最小的排印错误会导致最大的问题!

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

    很高兴能提供帮助。 未捕获编译后处理步骤错误并将其反映在"Problem (问题)"选项卡中、因为这些错误在"技术"上不是 CCS 或编译错误。 编译后处理步骤基本上是命令行步骤、执行方式与在 OS shell 上执行步骤的方式完全相同。

    您是否有任何特殊原因必须修改编译后处理步骤(除非您根据自定义目录结构和编译要求修改工程)? 基本上、我们有兴趣了解我们是否需要反馈到用户指南以改进它。

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

    感谢您的回答。

    通常、我们对项目的版本控制感兴趣、因此我们从常用的 C:/ti/xxxx 安装位置中取出了 MMW 源代码的各个部分、将它们放置在一个公共位置、以便更有效地为待处理的项目使用版本控制。 在源路径周围移动时、我们产生了一个小误差。

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

    我要关闭此主题。 如果您有其他问题、请创建新帖子。

    此致
    尼廷