ZHCADG6A December   2023  – April 2024 TMS320F2800157 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F28P659DK-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2编程基础知识
  6. 3ROM 引导加载程序和十六进制实用程序用法
  7. 4DCAN 闪存内核
    1. 4.1 实施
      1. 4.1.1 自定义闪存组和扇区擦除
      2. 4.1.2 应用程序加载
  8. 5MCAN 闪存内核
    1. 5.1 实施
      1. 5.1.1 自定义闪存组和扇区擦除
      2. 5.1.2 应用程序加载
  9. 6实现示例
    1. 6.1 器件设置
      1. 6.1.1 闪存内核
      2. 6.1.2 硬件
    2. 6.2 主机应用:dcan_flash_programmer
      1. 6.2.1 概述
      2. 6.2.2 使用 Visual Studio 编译和运行 dcan_flash_programmer
      3. 6.2.3 为 F28003x 运行 dcan_flash_programmer
      4. 6.2.4 使用 DCAN 引导加载程序下载工程
      5. 6.2.5 使用 CCS 编译工程
    3. 6.3 主机应用:can_flash_programmer [MCAN]
      1. 6.3.1 概述
      2. 6.3.2 使用 Visual Studio 编译和运行 can_flash_programmer
      3. 6.3.3 为 F28003x 运行 can_flash_programmer
      4. 6.3.4 使用 MCAN 引导加载程序下载工程
      5. 6.3.5 使用 CCS 编译工程
    4. 6.4 应用加载:CPU2 映像
      1. 6.4.1 组合两个映像 (.txt)
  10. 7疑难解答
    1. 7.1 常见问题
    2. 7.2 DCAN 引导
    3. 7.3 MCAN 引导
  11. 8参考资料
  12. 9修订历史记录

自定义闪存组和扇区擦除

F280015x 和 F28P65x(包括 128 位和 512 位编程工程)DCAN 闪存内核允许用户指定在将应用程序加载到闪存之前应擦除哪些闪存组和闪存扇区。本节将讨论如何为 F28P65x 器件实现擦除,但 F280015x 的实现方式非常相似。

在 flash_kernel_ex5_can_flash_kernel.c 文件中,有四个 32 位无符号整数数组用于控制内核擦除的闪存组和扇区。

    uint32_t Application_Flash_Banks[5] = {0,1,2,3,4};
    uint32_t WE_Protection_A_Masks[5] = {0,0,0,0,0};
    uint32_t WE_Protection_B_Masks[5] = {0,0,0,0,0};
    uint32_t WE_Protection_OTP_Masks[5] = {0,0,0,0,0};

在 Application_Flash_Banks 内,应输入闪存组编号。在 WE_Protection_A_Masks 内,应输入与 Application_Flash_Banks 中每个闪存组的扇区 0-31 相对应的写入/擦除保护掩码。如上所示,每个闪存组的闪存扇区 0-31 将被擦除。在 WE_Protection_B_Masks 内,应输入与 Application_Flash_Banks 中每个闪存组的扇区 32-127 相对应的写入/擦除保护掩码。如上所示,每个闪存组的闪存扇区 32-127 将被擦除。更多有关这些掩码的信息,请参阅特定于器件的闪存 API 指南。同样,WE_Protection_OTP_Masks 中应填充每个闪存组的 OTP 所需的掩码。请注意,配置该数组不会导致 OTP 被擦除,而是使器件能够在应用程序加载期间对闪存组的 OTP 进行编程。

此外,将应用程序编程到闪存时使用 WE_Protection_A_Masks 和 WE_Protection_B_Masks。根据正在编程的数据的目标地址确定正确的掩码。

根据需要配置这些数组后,重新编译闪存内核并生成新的内核映像。