2.实施

本节提供了执行大小为1 MB的应用程序图像所需的步骤。第一步涉及写作适当的条目配置脚本OTP中的部分。为此,请执行以下步骤:

  1. 在Smartsnpets上Welcome页面,点击SmartSnippets工具箱(最新版本 - 目前SmartSnippets Studio 2.0.14)。
  1. 在新显示的窗口中,打开SmartSnippets Studio的新实例。为此,请执行以下步骤:
    1. (可选)选择新的创建一个新项目(1)。在里面新项目窗口,输入项目的名称(2)。如果已创建项目,则此步骤是可选的。
    2. 选择可用的项目(4)。
    3. 选择一个通信接口(3)和一个港口(5)。
    4. 选择要使用的设备系列(6)。这应该是DA1469x-00.
    5. 打开所选项目(7)。
'打开SmartSnippets Toolbox'

图2在SmartSnippets工具箱中打开一个项目

  1. 切换到OTP程序员window located under the工具menu bar.
'启用安全启动手动 - 开放式选择器'

图3.开放式选择器

  1. 在里面OTP Header [Device: DA1469x-00]窗口,点击连接
    1. 光标应开始旋转等待设备重新启动。
    2. Press the重启DA1469x子板上的按钮,等待SmartSnippet Toolbox连接到目标芯片。
    3. 连接后,光标应停止旋转。
'Enabling Secure Boot Manually - Connecting to the Device'

图4.连接到设备

  1. Being at the same window click on the icon as illustrated below:
'启用安全启动手动 - 打开配置脚本'

图5.打开配置脚本

  1. 在里面Manage Configuration Script窗口,选择注册配置(1)然后单击添加(2):
'手动启用安全启动 - 添加新条目'

图6.添加ing New Entry

  1. 在弹出窗口中单击选择(3)。在新显示的窗口搜索中cache_flash_reg.(4)。找到寄存器后,单击它(5),然后选择OK(6)。接下来,声明寄存器的值,如下所示(7),最后单击OK(8)。
“手动启用安全启动 - 声明新条目”

图7.Declaring New Entry

  1. 在里面Manage Configuration Script窗口,选择OK(9).
  2. 在里面OTP Header [Device: DA1469x-00]窗口,点击Burn在OTP中编写新定义的条目。
'手动启用安全启动 - 写入OTP#1'

图8.写信给OTP

  1. 在里面pop-up window selectBurn在OTP内存中编写先前定义的条目。
'手动启用安全启动 - 写入OTP#2'

图9.燃烧OTP.

  1. 刻录OTP标题后,应相应地更改使用的分区表。通常,包含应用程序代码并由高速缓存控制器访问的所有分区条目应该对齐至flash_region_size.。一个偏移量高达0x4000.被允许。对于此演示,固件和通用分区条目都是如此nvms_firmware.andnvms_generic_part.respectively, should be1 MB aligned。参考分区表如下图所示:

笔记

nvms_product_header.进入应该始终开始0.x0000它的大小应该是0x2000.。可以根据用户的需求进行修改分区条目的其余部分。

/ * 1MB分区表* /#define nvms_product_header_part_start 0x000000.#define NVMS_PRODUCT_HEADER_PART_SIZE 0x002000/**默认Flash_Region_size指定对1MB的对齐。** \注意:nvms_firmware_part_size = 0x100000  -  0x2000 = 0x0fe000* /#define NVMS_FIRMWARE_PART_START 0x002000#define nvms_firmware_part_size 0x0fe000./**只有缓存控制器访问的区域应为1MB对齐。*这generic partition is accessed via the QSPI controller directly,*所以没有必要是1MB的共鸣。* /#define nvms_generic_part_start 0x100000.#define nvms_generic_part_size 0x020000./ *用户定义* /#define nvms_platform_params_part_start 0x120000.#define nvms_platform_params_part_size 0x020000.#define nvms_param_part_start 0x140000.#define nvms_param_part_size 0x001000#define nvms_log_part_start 0x141000.#define nvms_log_part_size 0x2bc000.#define nvms_bin_part_start 0x3fd000.#define nvms_bin_part_size 0x002000/**Should be placed 4 kBytes (1 FLASH sector size) before the end*of the selected FLASH size.** \注意:如果不是这种情况,则工具箱无法识别*您的新分区计划!!!* /#define nvms_partition_table_start 0x3ff000.#define nvms_partition_table_size 0x001000.PARTITION2nvms_product_header_part.0.PARTITION2nvms_firmware_part.0.PARTITION2nvms_generic_part.partition_flag_ves.PARTITION2NVMS_PLATFORM_PARAMS_PARTpartition_flag_read_onlyPARTITION2nvms_param_part.0.PARTITION2NVMS_LOG_PART0.PARTITION2nvms_bin_part.0.PARTITION2nvms_partition_tablepartition_flag_read_only

Refer to闪存适配器教程有关非易失性存储器存储的更多信息以及如何创建自定义分区表。

警告

nvms_partition_table_start.分区条目应占用用于识别新分区方案的SmartSnippets工具箱的闪存设备的最后一部分。

  1. 默认情况下,SDK希望FW图像大小为512 kB。但是,如果要支持不同大小的应用图像,则dg_configqspi_code_size_aa.bsp_memory_defaults.h.应该相应改变:
#ifndef dg_configqspi_max_image_size.#define dg_configqspi_max_image_size(image_partition_size)#万一#ifndef dg_configqspi_code_size_aa.#define dg_configQSPI_CODE_SIZE_AA ( dg_configQSPI_MAX_IMAGE_SIZE )#万一

笔记

CMAC代码包含在QSPI构建中的库,并且是图像的一部分。为此,DG_CONFIGQSPI_CODE_SIZE_AA应等于DG_CONFIGQSPI_MAX_IMAGE_SIZE。