ZHCU955C August   2021  – March 2024 DLPC7540

 

  1.   1
  2.   摘要
  3.   商标
  4. 范围
  5. 参考资料
  6. 首字母缩写词
  7. 系统引导
    1. 4.1 闪存中的数据
    2. 4.2 引导加载程序
    3. 4.3 主应用程序
    4. 4.4 引导加载程序和主应用程序支持的命令
    5. 4.5 调试终端
    6. 4.6 HOST_IRQ/SYSTEM_BUSY
    7. 4.7 心跳
    8. 4.8 低电平故障
  8. 系统状态
  9. 版本
  10. 功耗模式
  11. 显示模式
  12. 源检测和配置
  13. 10内部源
    1. 10.1 测试图形 (TPG)
    2. 10.2 纯色域 (SFG) 颜色
    3. 10.3 幕布
  14. 11显示格式
  15. 12图像处理
  16. 13变形
    1. 13.1 控制点表
    2. 13.2 手动变形表
    3. 13.3 表约束
    4. 13.4 示例变形表
    5. 13.5 手动变形命令
      1. 13.5.1 CMD_SetManualWarpControlPoints [命令 ID:0x35,目标:4]
      2. 13.5.2 CMD_GetManualWarpControlPoints [命令 ID:0x35,目标:4]
      3. 13.5.3 CMD_WriteManualWarpTable [操作码:0x34,目标:4]
      4. 13.5.4 CMD_ReadManualWarpTable [操作码:0x34,目标:4]
      5. 13.5.5 CMD_ConfigureSmoothWarp [命令 ID:0x38,目标:4]
      6. 13.5.6 CMD_ApplyManualWarping [命令 ID:0x36,目标:4]
    6. 13.6 光学(镜头)失真校正
  17. 14混合简介
    1. 14.1  混合映射控制点
    2. 14.2  混合映射增益值
    3. 14.3  混合映射偏移值
    4. 14.4  约束条件
    5. 14.5  手动混合命令
      1. 14.5.1 CMD_EnableEdgeBlending [命令 ID:0x2F]
      2. 14.5.2 CMD_SetBlendMapControlPoints [操作码:0x2E]
      3. 14.5.3 CMD_ GetBlendMapControlPoints [命令 ID: 0x2E]
      4. 14.5.4 CMD_SetBlendMapGainValues [命令 ID:0x2B]
      5. 14.5.5 CMD_ GetBlendMapGainValues [命令 ID:0x2B]
      6. 14.5.6 CMD_ SetBlendMapOffsetValues [命令 ID:0x2D]
      7. 14.5.7 CMD_ GetBlendMapOffsetValues [命令 ID:0x2D]
      8. 14.5.8 CMD_ApplyBlendMap [命令 ID:0x2C]
    6. 14.6  手动混合应用命令
      1. 14.6.1 CMD_SetEdgeBlendingSystemParams [命令 ID:0x3D]
      2. 14.6.2 CMD_GetEdgeBlendingSystemParams [命令 ID:0x3D]
      3. 14.6.3 CMD_SetEdgeBlendingConfiguration [命令 ID:0x3E]
      4. 14.6.4 CMD_GetEdgeBlendingConfiguration [命令 ID:0x3E]
    7. 14.7  为混合设置裁剪输入图像
    8. 14.8  在 EEPROM 中存储边缘混合配置
    9. 14.9  存储在 EEPROM 或辅助闪存中
    10. 14.10 控制程序中的手动混合 GUI
  18. 15照明控制
  19. 16外设
    1. 16.1 GPIO
    2. 16.2 PWM
  20. 17接口协议
    1. 17.1 支持的接口
    2. 17.2 I2C 目标
    3. 17.3 USB
  21. 18命令协议
    1. 18.1 命令数据包
    2. 18.2 响应数据包
    3. 18.3 目标详细信息
    4. 18.4 错误处理和恢复
    5. 18.5 系统繁忙 - I2C 场景
      1. 18.5.1 GPIO 实施
      2. 18.5.2 短缺状态响应
    6. 18.6 支持可变数据大小
  22. 19自动初始化批处理文件
  23. 20命令说明
  24. 21系统命令
    1. 21.1  3D
    2. 21.2  管理事务
    3. 21.3  自动锁定
    4. 21.4  引导加载程序
    5. 21.5  校准
    6. 21.6  混合
    7. 21.7  调试内部
    8. 21.8  调试
    9. 21.9  常规运行
    10. 21.10 照明
    11. 21.11 图像处理
    12. 21.12 手动 WPC
    13. 21.13 外设
    14. 21.14 视觉
    15. 21.15 变形
  25.   修订历史记录

引导加载程序

引导加载程序

表 21-21 引导暂停原因 [操作码:12h | 目标:1]
获取引导暂停原因
返回参数
字节 说明
字节 0

原因代码

0x00 BOOT_HOLD 跳线处于 HOLD 位置

0x01 已切换到主应用启动的编程模式

0x02 读取闪存信息失败

0x03 闪存布局不匹配

0x04 无法初始化 ARM 外设

0x05 无法分配存储器池

0x06 初始化任务失败

0x07 控制器无效,无法运行应用程序

0x08 USB 初始化错误

0x09 i2c 初始化错误

0x0A 获取应用配置时出错

0x0B 应用配置布局不匹配

返回指明处于引导加载程序模式的原因的代码。

表 21-22 闪存信息 [操作码:20h | 目标:1]
获取闪存信息
读取参数
字节 说明
字节 0

闪存器件的片选

0 = 闪存片选 0 存储器域

1 = 闪存片选 1 存储器域

2 = 闪存片选 2 存储器域

返回参数
字节 说明
字节 0-1

制造商 ID

字节 2-9

器件 ID

字节 10-13

器件大小(以字节为单位)

字节 14 - *

扇区信息

位 0-31:扇区大小

位 32-47:扇区数

字节 14

可用性

bit0:0 = 闪存可用于编程;1 = 闪存不可用于编程。

此命令用于返回闪存器件和制造商 ID。仅支持符合 CFI 标准的闪存器件。系统可以具有多个闪存器件。该命令用于返回在给定片选位置存在的闪存的信息。注意:系统运行需要片选 0 闪存。其他闪存片选在技术上是可选的,但却是启动界面捕获和变形操作所需的。

表 21-23 可编程闪存扇区信息 [操作码:21h | 目标:1]
获取可编程闪存扇区信息
返回参数
字节 说明
字节 0 - *

扇区信息

位 0-31:扇区大小

位 32-47:扇区数

此命令用于返回从符合 CFI 标准的闪存器件读取的闪存扇区信息。如果闪存不符合 CFI 标准,此命令将失败。此命令返回的扇区是唯一可用于编程闪存图像的扇区。该系统的设计使闪存图像位于连续的内存空间中。如果系统具有多个闪存器件,则软件会检查 ChipSelect 0 处的闪存大小。如果此大小等于支持的最大大小 (32MB),则 ChipSelect 1 处的闪存器件(如果存在)也将支持闪存编程。同样,如果 ChipSelect 0 和 1 处的闪存器件大小均为 32MB,则 ChipSelect 2 处的闪存器件(如果存在)也将支持闪存编程。该命令用于为支持闪存编程的每个器件附加扇区信息,并将其作为输出提供。

表 21-24 解锁闪存更新 [操作码:22h | 目标:1]
设置解锁闪存更新
写入参数
字节 说明
字节 0-3

闪存更新锁定/解锁

0 = 锁定

4154802215 = 解锁

此命令用于解锁闪存更新操作(下载、擦除)。默认情况下,闪存更新操作是锁定的。这是为了防止意外修改闪存内容。如需解锁,应发送预定义的密钥作为解锁码。使用任何其他参数来调用此命令将锁定闪存更新命令。

获取解锁闪存更新
返回参数
字节 说明
字节 0

0 = 已锁定

1 = 未锁定

此命令用于返回闪存是否处于未锁定状态。

表 21-25 擦除扇区 [操作码:23h | 目标:1]
设置擦除扇区
写入参数
字节 说明
字节 0-3

扇区地址

此命令用于擦除指定地址所在的闪存扇区。此命令是一种闪存更新命令,需要使用解锁闪存更新命令来解锁闪存操作。扇区地址应指定为相对于闪存起始地址的偏移量。例如,在所有扇区大小均为 64KB 的闪存器件中,扇区地址应指定如下:

扇区 0 = 0

扇区 1 = 0x10000

扇区 2 = 0x20000

依此类推...

表 21-26 初始化闪存读写设置 [操作码:24h | 目标:1]
设置初始化闪存读写设置
写入参数
字节 说明
字节 0-3

用于数据编程的起始地址偏移量,其中偏移量 0 表示闪存中的第一个字节,1 表示第二个字节,依此类推。此偏移量必须是偶数。

字节 4-7

用于指定闪存写入命令需要的字节数或闪存读取命令返回的字节数。必须是偶数。

此命令用于初始化闪存读取/写入操作。应在发送闪存写入命令之前调用此命令。

注意:对于“闪存写入”,设置的“地址”和下载大小都应为偶数。

表 21-27 闪存写入 [操作码:25h | 目标:1]
设置闪存写入
写入参数
字节 说明
字节 0 - *

要写入闪存的数据

此命令用于将数据编程到闪存。只有在使用初始化闪存读/写设置命令设置起始地址和大小后,才能调用此命令。此命令是一种闪存更新命令,需要使用解锁闪存更新命令来解锁闪存操作。

可以链接闪存写入命令,直到初始化的字节数完成编程。引导加载程序会自动递增每条命令的地址和大小。即使提供了更多数据,也只会对初始化的字节数进行编程。

为确保写入所有字节,仅为每条闪存写入命令发送偶数个字节,这些非常重要。这样做是为了根据闪存器件支持的多字写入来优化所有闪存写入。

此命令支持可变大小的有效载荷。

获取闪存写入
读取参数
字节 说明
字节 0-1

此命令中待读取的字节数

返回参数
字节 说明
字节 0 - *

从闪存读取的字节数

此命令用于从闪存中读取数据。只有在使用初始化闪存读/写设置命令设置起始地址和大小后,才能调用此命令。

可以链接闪存读取命令,直到返回初始化的字节数。引导加载程序会自动递增每条命令的地址和大小。只会返回初始化的字节数。在返回请求的数据后调用该函数将返回命令失败的信息。此命令用于支持可变大小的响应。

表 21-28 校验和 [操作码:26h | 目标:1]
获取校验和
读取参数
字节 说明
字节 0-3

用于校验和计算的起始地址偏移量,其中偏移量 0 表示闪存中的第一个字节,1 表示第二个字节,依此类推。

字节 4-7

用于计算校验和的字节数

返回参数
字节 说明
字节 0-3

简单加法校验和

字节 4-7

在每个地址计算的简单加法校验和的总和

此命令用于计算并返回从给定地址开始的指定字节数的校验和。校验和的计算方式如下:

uint32 SimpleChecksum = 0;
uint32 SumofSumChecksum = 0; 
uint08 *Addr = (uint08 *) StartAddress; 

while (NumBytes--) 
{ 
SimpleChecksum += *Addr++; 
SumofSumChecksum += SimpleChecksum; 
} 
表 21-29 复位闪存 [操作码:27h | 目标:1]
设置复位闪存
写入参数
字节 说明
字节 0 片选

0 = 闪存片选 0 存储器域

1 = 闪存片选 1 存储器域

2 = 闪存片选 2 存储器域

此命令用于将连接给定片选信号的闪存器件复位。给定的任何不完整命令都会被重置,并且将闪存置于读取模式下。