CAN 响应和引导加载程序演示应用程序

此应用程序演示了 J721E SoC 上的八通道 SPI 闪存控制器提供的快速启动功能。 默认情况下,它使用基本应用程序启动主域内核,并提供在 MPU1_0(即 A72)内核上交替启动 Linux 或 QNX 的机制。 此外,它还演示了通过 J721E SoC 上的 MMCSD 介质启动主域内核。 该应用程序执行以下操作:

 MCAL Can 驱动程序托管在 MCU1_0 上传输 64 字节 CAN 消息,或者运行 CAN 分析使用示例应用程序映像启动主域核心(可选)在主域 MPU1_0 上启动 HLOS(Linux、QNX)

这有助于实现汽车 ECU 通常需要的早期 CAN 响应功能,然后启动 SoC 上的主要域内核。

系统资源

[J721E] Name mcu 1 0 Note that all computing cores might not be supported in MCUSW
[J721E] MCU R5F Core 0 mcu 1 0 Note that all computing cores might not be supported in MCUSW
^ MCU R5F Core 1 mcu 1 1 ^
^ 1ST MCU Core 0 mcu 2 0 ^
^ 1ST MCU Core 1 mcu 2 1 ^
^ 2ND MCU Core 0 mcu 3 0 ^
^ 2ND MCU Core 1 mcu 3 1 ^
^ A72 Core 0 mpu 1 0 ^
^ A72 Core 1 mpu 1 1 ^
^ 1ST C66X DSP c66x_1 ^
^ 2ND C66X DSP c66x_2 ^
^ C7X DSP c7x_1

该设备实现了一个双核 Arm® Cortex®-A72 MPU,它与其他模块一起集成在计算集群中。 Cortex-A72 内核是通用处理器,可用于运行客户应用程序。 A72SS 围绕 Arm Cortex-A72 MPCore(A72 集群)构建,由 Arm 提供并由 TI 配置。它基于对称多处理器 (SMP) 架构,因此可提供高性能和最佳电源管理和调试功能。 A72 处理器是一个多问题无序超标量执行引擎,具有集成的 L1 指令和数据缓存,兼容 Armv8-A 架构。 Armv8-A 架构带来了许多新特性。其中包括 64 位数据处理、扩展虚拟寻址和 64 位通用寄存器。

MCU_ARMSS 是针对拆分/锁定操作配置的 Arm® Cortex®-R5F 处理器的双核实现。它还包括随附存储器(L1 缓存和紧耦合存储器)、标准 Arm® CoreSight™ 调试和跟踪架构、集成向量中断管理器 (VIM)、ECC 聚合器以及用于协议转换和地址转换的各种包装器,以便轻松集成到SoC。

TMS320C71x 是下一代定点和浮点 DSP 平台。 C71x DSP 是德州仪器 (TI) DSP 系列中的新内核。 C71x DSP 支持矢量信号处理,与 C6x DSP 系列相比,在广泛的通用信号处理任务中显着提升了 DSP 处理能力。 此外,C71x 还提供了多项专用功能,可将目标功能加速 30 倍以上。 除了扩展向量处理能力外,新的 C71x 内核还融合了先进技术来提高控制代码效率和编程的简易性,例如分支预测、受保护的流水线、精确的异常和虚拟内存管理

C66x 子系统基于 TI 的标准 TMS320C66x DSP CorePac 模块。它包括子系统逻辑,以简化 C66x CorePac 与 SoC 的集成,同时最大限度地重复使用以前设备的软件。 C66x DSP 通过增强功能和新功能扩展了 C64x+ 和 C674x DSP 的性能。许多新功能旨在提高矢量处理的性能。 C64x+ 和 C674x DSP 支持 16 位数据的 2 路 SIMD 操作和 8 位数据的 4 路 SIMD 操作。在 C66x DSP 上,通过扩展 SIMD 指令的宽度来提高矢量处理能力。 C66x DSP 可以执行对 128 位向量进行操作的指令。例如,QMPY32 指令能够在每个包含四个 32 位数据的两个向量之间执行元素到元素的乘法。 C66x DSP 还支持 SIMD 进行浮点运算。改进的向量处理能力(每条指令可以并行处理多个数据)与 C6000 架构的自然指令级并行性(例如,每个周期最多执行 8 条指令)相结合,产生了非常高的并行性,可通过DSP 程序员通过使用 TI 优化的 C/C++ 编译器

内部依赖

此应用程序依赖于多个组件,并在以下部分详细说明

 MCAL CAN 驱动程序MCAL BSW 存根 使用 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcal_drv/mcal/Bsw_Stubs 的存根。 函数 CanIf_TxConfirmation () 是必需的。MCAL 配置 使用 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/mcal_config 中的 CAN 和 DIO 配置。

外部依赖

此应用程序依赖于 Processor SDK RTOS 的辅助引导加载程序 (SBL) 组件。 有关在 J721E 上使用辅助引导加载程序的更多详细信息,请参阅 SBL J721E 用户指南和 SBL AM65x/J721E 详细信息。

流程图

以下流程图显示了 MCU1_0 上的主要应用程序,它最多可以产生 2 个当前任务。

MCU1_0 CAN and Bootloader Application

如果 CAN 功能设置为“can_profiling”,以下流程图显示了 CAN 任务的功能。

如果 CAN 功能设置为“can_fast_response”,以下流程图显示了 CAN 任务的功能。

以下流程图显示了引导任务的功能,以及在主域核心上启动的应用程序。

引导应用程序的编译时配置

1、Enable/Disable Boot Task 可以启用/禁用引导主域核心的任务。以下是此功能的配置标志。

  • BOOTFUNC 选项为“启用”(默认)或“禁用”。

2、启动媒体启动任务可以使用位于 OSPI 或 MMCSD 卡上的应用程序映像启动主域内核。以下是此功能的配置标志。

  • BOOTMODE 选项是“ospi”(默认)或“mmcsd”。请注意,如果使用“ospi”选项,则自定义辅助引导加载程序 (sbl_cust_img) 将加载 MCUSW 引导应用程序。如果使用“mmcsd”选项,则应使用 mmcsd 辅助引导加载程序 (sbl_mmcsd_img) 加载 MCUSW 引导应用程序。

3、MPU1_0 的引导操作系统 默认情况下,引导任务将为所有主域内核(包括 MPU1_0)加载为 TI 实时操作系统 (RTOS) 编写的示例应用程序。或者,可以在 MPU1_0 上加载 Linux 或 QNX 操作系统。以下是此功能的配置标志。

  • HLOSBOOT 选项为“none”(默认,这意味着 MPU1_0 TI RTOS 应用程序已加载)、“qnx”或“linux”。

4、CAN 功能 CAN 任务可以执行快速 CAN 响应、对许多消息进行一些 CAN 分析,或者完全关闭。以下是此功能的配置标志。

  • CANFUNC 选项是“can_fast_response”(默认)、“can_profiling”或“none”(完全禁用 CAN 任务)。

CAN 分析/CAN 快速响应任务的编译时间配置

1、启用 CAN 仅传输模式 在仅传输模式下,如果外部 CAN 实用程序(如 CANOE 工具或 PEAK 工具)连接到 EVM 板,则可以接收消息。 J721E EVM 有四个 CAN 端口:MCU_MCAN0、MCU_MCAN1、MCAN0 和 MCAN2。但是,此演示仅使用第一个实例 MCU_MCAN0。以下是与此功能相关的配置标志。

    CAN_LOOPBACK_ENABLE 启用/禁用内部环回模式。选项是“STD_ON”或“STD_OFF”。 CAN 环回配置存在于 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/mcal_config/Can_Demo_Cfg/output/generated/soc/j721e/mcu1_0/include/Can_Cfg.hCAN_TX_ONLY_MODE 启用 TX-only 模式(与 RX-only 模式相比)。选项是“STD_ON”或“STD_OFF”。 CAN TX only 配置存在于 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/can_resp.h(如果使用 CAN 响应任务)和 mcuss_demos/boot_app_mcu_rtos/can_profile.h(如果使用 CAN Profile 任务)

2、 Use first instance of CAN外设只使用配置的CAN外设的第一个实例(MCU_MCAN0)来节省启动时间。下面是配置。

  • APP_INSTANCE_1_INST_IN_CFG_ONLY 仅使用 CAN 外设的第一个实例。选项是“STD_ON”或“STD_OFF”。 CAN 配置存在于 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/can_resp.h(如果使用 CAN 响应任务)和 mcuss_demos/boot_app_mcu_rtos/can_profile.h(如果使用 CAN Profile 任务)

3、在 CAN 响应之前禁用早期打印 在测试早期 CAN 响应时,重要的是禁用在 CAN 响应实际开始之前可能需要额外时间的任何早期打印。下面是配置。

  • CAN_INITIAL_PRINT_DISABLE_BEFORE_CAN_RESPONSE 启用此标志以最小化由于早期打印导致的延迟(禁用早期打印)。选项是“STD_ON”或“STD_OFF”。 CAN 早期打印配置存在于 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/can_resp.h(如果使用 CAN 响应任务)和 mcuss_demos/boot_app_mcu_rtos/can_profile.h(如果使用 CAN Profile 任务)

构建依赖二进制文件

我们需要从 coresdk_rtos_jacinto_xx_yy_xx_bb 构建以下二进制文件:

  • sbl_cust_img 加载 SYSFW 并初始化 OSPI 闪存。 当使用带有 BOOTMODE=“ospi” 的 MCUSW Boot App 时使用此 SBL。
  • sbl_mmcsd 加载 SYSFW,初始化电路板,并将 MCUSW Boot App 映像从 SD 卡复制到 DDR 内存。 当使用带有 BOOTMODE=“mmcsd” 的 MCUSW Boot App 时使用此 SBL。

除了上述二进制文件,我们还需要构建 SBL 从 OSPI 闪存或 SD 卡复制的 can_boot_app_mcu_rtos,并执行以下操作:

  • CAN环回/传输
  • 启动可用的主域内核:MPU1_0、MCU2_0、MCU2_1、MCU3_0、MCU3_1、C66X_0、C66X_1、C7X_0

Building sbl_cust_img

转到 coresdk_rtos_jacinto_xx_yy_xx_bb/pdk_jacinto_07.x.x/packages/ti/build 并运行以下命令:

make -j BOARD=j721e_evm CORE=mcu1_0 BUILD_PROFILE=release sbl_cust_img

注意:对于具有最快启动时间的早期 CAN 响应(启用无打印),您可以在构建 sbl_cust_img 之前通过修改文件 coresdk_rtos_jacinto_xx_yy_xx_bb/pdk_jacinto_07.xx/packages/ti/ti/pdk_jacinto_07.xx/packages/ti/中的 CUST_SBL_TEST_FLAGS 预先配置 SBL 标志 sbl_component.mk。 只需搜索这一行并取消注释(并注释掉上面类似的行),然后保存并构建 sbl_cust_img:

#CUST_SBL_TEST_FLAGS =" -DSBL_USE_DMA=0 -DSBL_LOG_LEVEL=1 -DSBL_SCRATCH_MEM_START=0x41cc0000 -DSBL_SCRATCH_MEM_SIZE=0x40000 -DSBL_ENABLE_PLL -DSBL_ENABLE_CLOCKS -DSBL_SKIP_MCU_RESET -DBOOT_OSPI -DSBL_ENABLE_DEV_GRP_MCU -DSBL_HLOS_OWNS_FLASH -DSBL_SKIP_PINMUX_ENABLE -DSBL_SKIP_LATE_INIT -DSBL_USE_MCU_DOMAIN_ONLY"

Building sbl_mmcsd_img

Go to coresdk_rtos_jacinto_xx_yy_xx_bb/pdk_jacinto_07.x.x/packages/ti/build and run the following:

make -j BOARD=j721e_evm CORE=mcu1_0 BUILD_PROFILE=release sbl_mmcsd_img

Building can_boot_app_mcu_rtos

Go to coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/build and run the following:

make -s -j can_boot_app_mcu_rtos BOARD=j721e_evm SOC=j721e BUILD_PROFILE=release CORE=mcu1_0 BUILD_OS_TYPE=tirtos

默认模式为 OSPI 启动和 CAN 快速响应,所有主域内核都加载了 TI RTOS 映像。

还支持的一些常见配置包括:

对于早期 CAN 响应测量(无打印,无内核启动):

make -s -j can_boot_app_mcu_rtos BOOTFUNC=disabled BOARD=j721e_evm SOC=j721e BUILD_PROFILE=release CORE=mcu1_0 BUILD_OS_TYPE=tirtos MCUSW_UART_ENABLE=false

从 MMCSD 启动 TI RTOS 映像(主域内核的所有 TI RTOS 映像):

make -s -j can_boot_app_mcu_rtos BOOTMODE=mmcsd BOARD=j721e_evm SOC=j721e BUILD_PROFILE=release CORE=mcu1_0 BUILD_OS_TYPE=tirtos

使用其他主域内核上的 TI RTOS 映像在 MPU1_0 上启动 HLOS(OSPI 模式):

make -s -j can_boot_app_mcu_rtos HLOSBOOT=linux BOARD=j721e_evm SOC=j721e BUILD_PROFILE=release CORE=mcu1_0 BUILD_OS_TYPE=tirtos
make -s -j can_boot_app_mcu_rtos HLOSBOOT=qnx BOARD=j721e_evm SOC=j721e BUILD_PROFILE=release CORE=mcu1_0 BUILD_OS_TYPE=tirtos

使用其他主域内核上的 TI RTOS 映像在 MPU1_0 上启动 HLOS(MMCSD 模式):

make -s -j can_boot_app_mcu_rtos HLOSBOOT=linux BOOTMODE=mmcsd BOARD=j721e_evm SOC=j721e BUILD_PROFILE=release CORE=mcu1_0 BUILD_OS_TYPE=tirtos
make -s -j can_boot_app_mcu_rtos HLOSBOOT=qnx BOOTMODE=mmcsd BOARD=j721e_evm SOC=j721e BUILD_PROFILE=release CORE=mcu1_0 BUILD_OS_TYPE=tirtos

输出的 appimage “can_boot_app_mcu_rtos_mcu1_0_release.appimage” 将被放置在 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/binary/can_boot_app_mcu_rtos/bin/j721e_evm 目录中。

Building main domain applications

为主域核心创建 RTOS appimage

转到 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts 并运行以下命令:./makemulticore.sh

  • 在为每个主域核心构建所有二进制文件后,该脚本调用constructappimage_multistage.sh 脚本来构建用于加载主域核心的主域appimage 文件,分为三个独立的阶段。
  • MCUSW 引导应用程序将使用多阶段 appimage 文件来加载主域核心。
    • 输出的appimage文件“multicore_MCU2_0_MCU2_1_stage1.appimage”、“multicore_DSPs_MCU3_0_MCU3_1_stage2.appimage”和“multicore_MPU1_0_stage3.appimage”将被放置在coresdk_rtos_jacinto_xx_yy_xx/boots_mains_appimage/binary_apps/binary_mains_apps/binary_apps/binary_mains_appj/bind_mains_apps/binary_apps/binary_apps/binary_mains_apps/binary_apps/binary_boots_appimage/binary_mains_apps_mains_appimage_appimage_appimage目录下。
  • 以下内核:MPU1_0、MCU2_0、MCU2_1、MCU3_0、MCU3_1、C66X_0、C66X_1、C7X_0。

还有一个单独的脚本,constructappimage_singlestage.sh,如果需要在单个阶段加载所有主域内核,它可用于将所有核心图像组合到一个应用程序图像文件“multicore_split_with_DSPs.appimage”中。 这个appimage的内容可以通过对脚本的轻微修改来定制。 此脚本包含主域中最有可能的 appimage 情况的一些变量:

  • 1、mpu_rtos_enabled - 该标志控制appimage是否包含MPU1_0二进制文件。 默认情况下,此标志已设置,因此包括示例 RTOS MPU1_0 应用程序。 如果 MPU1_0 上需要 Linux 或 QNX,则应将此标志设置为 0,然后重新运行constructappimage.sh。

  • 2、split_mode - 该标志控制主 MCU 是否在拆分模式下运行。 如果设置为 0,则 MCU2_1 和 MCU3_1 图像将被排除在 appimage 之外。 请注意,禁用此标志时,生成的输出的名称会发生变化。

  • 3、dsp_binaries_included - 此标志控制是否包含 C66 和 C7 DSP 二进制文件。 请注意,禁用此标志时,生成的输出的名称会发生变化。

使用其他二进制文件来制定主域应用程序镜像

请注意,constructappimage_multistage.sh 或constructappimage_singlestage.sh 均可用于在每个核心上使用其他二进制文件来制定主域应用程序镜像。 可以简单地将这些 ELF 映像复制到 mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm 目录,然后在运行脚本之前修改脚本中的 ElfImages、CoreRprcFiles 和 CoreIds 数组。

为 Linux 或 QNX 创建 HLOS 应用程序镜像

在 Linux/QNX 在 MPU1_0 上启动的常见替代情况下,应遵循以下步骤:

1、重建 can_boot_app_mcu_rtos 镜像,HLOSBOOT 标志设置为“linux”或“qnx”,如构建 can_boot_app_mcu_rtos 部分所述。

2、进入 coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/scripts/hlos 目录并通过设置“OS”和 Linux 特定或 QNX 特定路径来编辑constructappimageshlos.sh 以匹配您的设置。这假设已经创建了 Linux/QNX 二进制文件,因为此脚本仅基于这些已创建的 HLOS 二进制文件创建应用程序图像。

3、修改constructappimageshlos.sh脚本中的自定义变量后,运行该脚本。如果运行正确,coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm 目录现在应该包含以下文件:

  • 对于 Linux - atf_optee.appimage、tidtb_linux.appimage 和 tikernelimage_linux.appimage
  • 对于 QNX - atf_optee.appimage 和 ifs_qnx.appimage

4、注意:为了启动剩余的 MAIN 域内核(A72 除外),您可以简单地重用在二进制文件中先前步骤中构建的 RTOS 映像:“multicore_MCU2_0_MCU2_1_stage1.appimage”和“multicore_DSPs_MCU3_0_MCU3_1_stage2.appimage”

运行步骤

Writing needed binaries to OSPI

要在所有主域内核上运行默认的 TI RTOS 应用程序,请在 OSPI 存储器中以各自的偏移量(十六进制)闪存以下二进制文件,如下所示:

coresdk_rtos_jacinto_xx_yy_xx_bb/pdk_jacinto_07.x.x/packages/ti/boot/sbl/binary/j721e_evm/cust/bin/sbl_cust_img_mcu1_0_release.tiimage @ 0coresdk_rtos_jacinto_xx_yy_xx_bb/pdk_jacinto_07.x.x/packages/ti/drv/sciclient/soc/V1/sysfw.bin @ 40000coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/binary/can_boot_app_mcu_rtos/bin/j721e_evm/can_boot_app_mcu_rtos_mcu1_0_release.appimage @ a0000coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/multicore_MCU2_0_MCU2_1_stage1.appimage @ 1800000coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/multicore_DSPs_MCU3_0_MCU3_1_stage2.appimage @ 2400000coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/multicore_MPU1_0_stage3.appimage @ 3200000

要在 MPU1_0 上启动 Linux(同时仍在其他主域内核上启动 TI RTOS 应用程序),还要在 OSPI 存储器中以各自的偏移量(十六进制)闪存以下二进制文件:

coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/atf_optee.appimage @ e0000coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/tidtb_linux.appimage @ 16c0000coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/tikernelimage_linux.appimage @ 6c0000

要在 MPU1_0 上启动 QNX(同时仍在其他主域内核上启动 TI RTOS 应用程序),还要在 OSPI 存储器中以各自的偏移量(十六进制)闪存以下二进制文件:

coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/atf_optee.appimage @ e0000coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/ifs_qnx.appimage @ 6c0000

请注意,对于 Linux/QNX 二进制文件,还需要重建 can_boot_app_mcu_rtos_mcu1_0_release.appimage,如为 Linux 或 QNX 创建 HLOS 应用程序中所述,并重新下载到上面指定的 OSPI 位置。 为了启动剩余的 MAIN 域内核(A72 除外),您可以简单地重用在二进制文件的早期步骤中构建的 RTOS 映像:“multicore_MCU2_0_MCU2_1_stage1.appimage”和“multicore_DSPs_MCU3_0_MCU3_1_stage2.appimage”。

Writing needed binaries to MMCSD

要在所有主域内核上运行默认的 TI RTOS 应用程序,请将以下二进制文件复制到 MMCSD 卡上:

coresdk_rtos_jacinto_xx_yy_xx_bb/pdk_jacinto_07.x.x/packages/ti/boot/sbl/binary/j721e_evm/cust/bin/sbl_mmcsd_img_mcu1_0_release.tiimage,重命名为tiboot3.bin
coresdk_rtos_jacinto_xx_yy_xx_bb/pdk_jacinto_07.x.x/packages/ti/drv/sciclient/soc/V1/sysfw.bin
coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/binary/can_boot_app_mcu_rtos/bin/j721e_evm/can_boot_app_mcu_rtos_mcu1_0_release.appimage,重命名为app
coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/multicore_MCU2_0_MCU2_1_stage1.appimage,重命名为lateapp1
coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/multicore_DSPs_MCU3_0_MCU3_1_stage2.appimage,重命名为lateapp2
coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/multicore_MPU1_0_stage3.appimage,重命名为lateapp3

要在 MPU1_0 上启动 Linux(同时仍在其他主域内核上启动 TI RTOS 应用程序),还要将以下二进制文件复制到 MMCSD 卡上:

coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/atf_optee.appimage
coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/tidtb_linux.appimage
coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/tikernelimage_linux.appimage

要在 MPU1_0 上启动 QNX(同时仍在其他主域内核上启动 TI RTOS 应用程序),还要将以下二进制文件复制到 MMCSD 卡上:

coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/atf_optee.appimage
coresdk_rtos_jacinto_xx_yy_xx_bb/mcusw/mcuss_demos/boot_app_mcu_rtos/main_domain_apps/binary/bin/j721e_evm/ifs_qnx.appimage

请注意,对于 Linux/QNX 二进制文件,还需要重建 can_boot_app_mcu_rtos_mcu1_0_release.appimage,如为 Linux 或 QNX 创建 HLOS 应用程序中所述,并再次复制到 MMCSD 卡。为了启动剩余的 MAIN 域内核(A72 除外),您可以简单地重用在二进制文件的早期步骤中构建的 RTOS 映像:“multicore_MCU2_0_MCU2_1_stage1.appimage”和“multicore_DSPs_MCU3_0_MCU3_1_stage2.appimage”。

运行演示

1、确保按照 (J721E EVM MMC/SD Boot Mode) 或 (J721E EVM OSPI Boot Mode) 中所述配置 EVM 的引导模式

2、用于演示应用程序日志/消息的 UART/控制台

  • J721E EVM 有 2 个 UART 端口
  • 当演示应用程序托管在 MCU R5F(例如 MCU1_0)上时,将使用名为 MCU UART 的 UART 端口
  • 当演示应用程序托管在 MAIN R5F(例如 MCU2_1 等)上时,将使用名为 UART 的 UART 端口
  • 请参阅 (J721E EVM) 处的 EVM 图像

3、在 MCU UART 端口 (J43) <> 主机 PC 和主 UART 端口 (J44) <> 主机 PC 之间连接两条单独的微型 USB 电缆

4、在主机 PC 上配置串行控制台应用程序的两个单独实例,以分别使用 MCU UART 端口、通道 #2(即第二个 UART 实例)和主 UART 端口、通道 #2(即第四个 UART 实例)。 对于每个实例,使用“115200 8N1”配置。

  • 如果还要测试 Linux/QNX 启动,还需要使用类似的“115200 8N1”配置配置主 UART 端口、通道 #1(即第三个 UART 实例)。

5、打开电路板并确认串行控制台上的引导日志

应用程序完成后,UART 日志包含在以下 UART 端口中:

 MCU UART 端口,通道 #2(即第二个 UART 实例)- MCU R5F CAN 启动应用程序日志主 UART 端口,通道 #1(即第三个 UART 实例)- Linux/QNX 引导日志(仅当启用了 Linux/QNX 构建时)主 UART 端口,通道 #2(即第四个 UART 实例)- 主域 RTOS 应用程序日志

已知的问题

当前版本:psdk_rtos_auto_j7_07_00_00_11-ALL 当前,由于 Linux 内核和用于构建 SBL 引导加载程序的 board_data 默认值(PDK 中使用的 board_data 配置)之间的 Sciclient board_data 配置期望不同,因此在 MPU1_0 上启动 Linux 未完成启动。(新版本已解决)

从 MMCSD 在 MPU1_0 上启动 QNX 时,IFS (QNX) 映像的读取未针对 MMCSD 进行优化。 因此,QNX 的启动可能要等到 MCUSW CAN Boot App 启动后大约 8-10 秒才会发生。 请注意,我们鼓励客户使用 OSPI 启动媒体来获得最佳启动时间。

最新版本:

http://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/mcusw/mcal_drv/docs/drv_docs/demo_boot_app_mcu_rtos_top.html

【TDA4系列】通过MCU域的R5F1_0启动全部核心MAIN域核心(R5F DSP A73)相关推荐

  1. yii2 跨域请求配置_伸手党系列四:vuecli3.0以上 使用 proxy 进行跨域设置

    跨域:出于浏览器的同源策略限制,当一个请求url的协议.域名.端口三者之间任意一个与当前页面url不同即为跨域. process:process 对象是一个全局变量,它提供有关当前 Node.js 进 ...

  2. 【转载】外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用

    外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用 原创 2017-09-13 胡恩伟 汽车电子expert成长之路 内容提要 引言 1. SWT的功能概述 2. SWT ...

  3. root后启动不了黑域,root激活黑域

    Root 情况下黑阈开机自启 黑阈支持 Root,通过以下两种方式: 目前黑阈 Root 用户比例极低,本人也不使用 Root,仅在模拟器及 LineageOS 14.1 上测试通过. 如果成功,黑阈 ...

  4. win7 域环境客户端启动后进入登录界面黑屏

    win7 域环境客户端启动后进入登录界面黑屏,屏幕显示鼠标问题,按CTRL+ALT+DEL没有任何反应. 1.进入安全模式正常,安全模式下修改注册表, HKEY_Local_Machine\Softw ...

  5. 灵动微MM32W系列低功耗MCU智能锁解决方案

    智能锁方案中使用到灵动微MM32W系列低功耗MCU,配合手机通过APP读取智能锁蓝牙信息,尝试配对,配对成功即可正常通讯,手机APP通过蓝牙把指令发送给智能锁进行解锁,整个流程简单可靠,该方案将彻底告 ...

  6. 羊皮书APP(Android版)开发系列(四)全屏幕延迟启动

    羊皮书APP(Android版)开发系列(四)全屏幕延迟启动 APP启动时经常会有一张启动图片,有几秒钟的展示时间,做法很简单,使用Handler的postDelayed方法即可. 配置全屏:在sty ...

  7. 取消域服务器是定期修改密码,更改域服务器用户密码

    活动目录服务的配置与管理(3)客户端加入域 点击"确定"按钮,这时系统会提示要求输入具有加入域权限的域用户名和密码,这里一般都是输入域管理员的用户名和密码.普通域用户也可以将客户机 ...

  8. 汽车智能化核心部件——域控制器

    随着汽车智能化,网联化的渗透与普及,汽车电子电气零部件占汽车的比重也逐渐提高. 高级驾驶辅助系统,车载多媒体娱乐系统等逐渐成为消费者关注且左右购买决策的功能配置.越发复杂的系统对传感器.电子控制器(E ...

  9. 【AD】破解WindowsServer2008R2 AD域控目录还原模式密码及域管理员账号密码

    (本文部分内容来源于网络,假设没有备用域管理员.) 一:知道域管理员密码,忘记目录模式还原密码 目录模式还原密码和之前的系统一样,保存在c:\windows\system32\config\sam内. ...

  10. liunx 加入域控_让Linux使用Windows域控制器做用户认证

    最近为了做一个客户的问题需要搭一套Windows AD给Linux通过winbind做认证使得Windows AD用户可以登陆Linux机器的环境.因为头一次做这样的配置,所以颇费了一番周折.下面就记 ...

最新文章

  1. Bootstrap4默认样式不对胃口?教你使用NPM+Webpack+SASS来定制
  2. CloudFoundry Service 使用
  3. Springboot整合RabbitMq-用心看完这一篇就够了(最新)
  4. UIView编程体验(一)
  5. Eclipse 默认设置的换行长度
  6. Oracle数据库性能优化
  7. java中介者模式例子_Java中介者模式(Mediator Pattern)
  8. ubuntu 16.04无法正常关机、重启
  9. ArcView Spacial Analyst v2.0 1CD
  10. 洛谷 P3152 正整数序列
  11. CorelDRAWX4的VBA插件开发(七)形状的静态编号和一键转位图
  12. 注册表改win 7更新服务器,uefi安装win7卡在更新注册表设置解决新方法(完美解决)...
  13. Java学习笔记(五):Java多线程(细致入微,持续更新)
  14. boost::math::binomial_distribution用法的测试程序
  15. 中易云 易云系统 电镀废水处理远程监控解决方案
  16. VMware 虚拟机怎么识别不了ISO文件
  17. Android:Fragment生命周期(结合Activity的生命周期进行分析)
  18. Android USB开发小结:host模式与accessory模式
  19. 端口号是什么以及常见端口号
  20. ACM_置换群 burnside引理 Polya定理

热门文章

  1. 决策树系列(一)——基础知识回顾与总结
  2. oracle导出1000万数据,1000万条数据,最好用什么工具做,是sql,还是oracle,抑或vfp?...
  3. 实习成长之路:MySQL九:为什么MySQL有时候会选错索引呢?
  4. 一种在Java层实现的守护进程方式
  5. mysql查询月份1到31_mysql查询今天、昨天、7天、近30天、本月、上一月 数据
  6. python web改为java_Python是否可以成为Web应用程序的良好替代方案,否则将在Java EE中完成?...
  7. 绝地大逃杀服务器维护多少时间,绝地求生4月12日维护到几点/维护多长时间 绝地求生4.12维护什么时候好/能进游戏...
  8. html js 跳出框架,现在的web框架为什么把html和js又结合在一起了?
  9. python在数字后添加字符_用python生成数字、字母和特殊字符混合的字符串
  10. python自定义标识符_《Python 3程序开发指南(第2版•修订版)》——第2章 数据类型 2.1 标识符与关键字...