暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

J721E - SBL(3)

囧囧妹 2022-07-06
182

点击上方蓝字【囧囧妹】一起学习,一起成长!

一、编译SBL 及其组件

使用 pdksetupenv.bat 或 pdksetupenv.sh 设置您的环境。需要注意环境是否安装openssl,ubuntu可以直接使用apt install openssl安装。

    cd  < PDK >/ packages / ti / boot / sbl / build 
    gmake clean all ( for windows )
    make clean all ( for Linux )
    • SBL 映像文件位于:<PDK>/packages/ti/boot/sbl/binary/

    • SBL 示例位于<PDK>/packages/ti/boot/sbl/examples/k3MulticoreApp/binary

    • SBL 库位于<PDK>/packages/ti/boot/sbl/lib/

    SBL 的编译时间选项

    SBL 支持多种编译时选项来调整 SBL 以满足易用性、启动时间和大小的要求。这些可以通过编辑sbl/sbl_component.mk来启用或禁用

    • SBL_LOG_LEVEL :控制 SBL 日志(在 MCU UART 上)和系统固件日志(在 WAKEUP UART 上)的数量。从 0(无日志)到 3(所有日志)。

    • SBL_USE_DMA :有效值为 0(使用 CPU 访问引导介质)或 1(使用 DMA 访问引导介质)。

    • SBL_DISPLAY_PROFILE_INFO :在引导过程结束时,显示不同的 SBL 配置文件点的时间戳日志。这对于查看 SBL 在不同功能上花费了多少时间很有用。SBL_LOG_LEVEL 会明显影响性能。

    • SBL_ENABLE_PLL:通过调用 Board_init()  拉起所有的PLL。对于开发应用程序更容易,因为它们不再需要初始化 PLL。但是,启用此功能会显著增加启动时间和功耗。需要加载系统固件。

    • SBL_ENABLE_CLOCKS :通过调用 Board_init() 启用所有模块时钟。使开发应用程序更容易,因为它们不再需要启用时钟。

    • SBL_ENABLE_DDR :初始化 DDR。以启动时间为代价,这使应用程序能够从 DDR 运行和使用。还必须启用 SBL_ENABLE_CLOCKS 和 SBL_ENABLE_PLL 才能使其工作。启用此选项会增加启动时间。

    • SBL_SKIP_MCU_RESET :跳转到 MCU0 应用程序入口点而不重置内核。boot时间更快不会改变 MCU 的模式(lock-step/split)。应用程序会继承 SBL 保留的 MCU 状态。

    • SBL_ENABLE_DEV_GRP_MCU :将导致系统固件在系统固件初始化期间仅使用 MCU 域资源。这样做既可以在主电源域关闭时支持启动,也可以节省启动时间。

    • SBL_ENABLE_HLOS_BOOT:SBL 将采取一些额外步骤来准备某些外围设备和资源,以便从 Cortex-A 内核移交给 HLOS(例如 Linux)控制。

    • SBL_HLOS_OWNS_FLASH :确保 SBL 将 OSPI 闪存留在单 SPI 模式,以便主域 Cortex-A 代码(例如,HLOS)可以重置闪存并在需要时控制它。

    • SBL_SKIP_PINMUX_ENABLE :SBL 将跳过在引导加载程序中完成的任何 PINMUX 初始化,并期望它将由后续应用程序处理。

    • SBL_SKIP_LATE_INIT :SBL 将跳过调用 SoC Late Init 函数,通常包含在 SBL_SocLateInit()

    • SBL_USE_MCU_DOMAIN_ONLY :SBL 将仅配置和启动 MCU 域内核。仅在配置和使用 MCU 域时节省启动时间(尤其是在测试仅 MCU 启动或测量早期 CAN 响应时)。

    在安全设备上启用/禁用 JTAG

    JTAG 访问使用 X509 证书中的字段进行控制。

    默认情况下,为了获得简单的开箱即用体验,处理器 SDK 支持通过 JTAG 在高安全设备上进行调试。让 JTAG 处于启用状态,虽然使软件开发变得容易,但在生产设备中会产生一个重大的安全漏洞。

    要禁用/更改 HS 设备上的 JTAG 访问级别,请更新签名脚本build/makerules/x509template.txt (从 Windows 构建时)和build/makerules/x509CertificateGen.sh从 linux构建时)中 debugType 字段的值)。

    有效值为

    • 0:禁用所有 JTAG 访问(最安全和最严格)

    • 1:使用设备默认值(最安全和最严格)

    • 2:允许调试非安全代码,当CPU运行在安全模式时,JTAG连接会丢失

    • 4:允许调试安全和非安全代码(最不安全和限制最少)。这是默认设置。

    觉得不错,点击“分享”,“赞”,“在看”传播给更多热爱嵌入式的小伙伴吧!
    文章转载自囧囧妹,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论