ZHDA301 September   2026 AM62L

 

  1.   1
  2.   摘要
  3.   商标
  4. 1 人机界面简介
  5. 2 AM62L 简介
  6. 3 演示概述
    1. 3.1 背景
  7. 4 降低有功功率的方法
    1. 4.1 轻量级图形应用程序
    2. 4.2 最小 Linux 器件树
    3. 4.3 本地电源睡眠控制器 (LPSC)
    4. 4.4 降低时钟频率
    5. 4.5 自动时钟门控
    6. 4.6 DDR 处于自动自更新状态
    7. 4.7 性能
  8. 5 特定于演示的优化
    1. 5.1 LVGL 应用
    2. 5.2 最小器件树
    3. 5.3 低时钟速度
    4. 5.4 慢速 A53 内核时钟频率
    5. 5.5 关闭一个 A53 内核
    6. 5.6 DDR 传输速度较慢
    7. 5.7 DDR 自动自刷新
    8. 5.8 自动时钟门控
    9. 5.9 慢速面板 FPS
  9. 6 功耗数据
  10. 7 在 HMI 用例中实施低功耗模式
  11. 8 演示步骤
    1. 8.1 系统要求
    2. 8.2 准备 SD 卡
      1. 8.2.1 构建所需文件
        1. 8.2.1.1 引导映像
        2. 8.2.1.2 U-Boot 命令
        3. 8.2.1.3 GUI 文件
        4. 8.2.1.4 内核映像、模块和器件树
        5. 8.2.1.5 脚本
    3. 8.3 运行演示
  12. 9 总结
  13. 10参考资料
  14. 11附录
    1. 11.1  显示图像
    2. 11.2  最小器件树插入码
    3. 11.3  慢时钟频率
    4. 11.4  DDR 速度慢至 800MT/s 插入码
    5. 11.5  为 DDR 启用自动自刷新
    6. 11.6  启用自动时钟门控
    7. 11.7  采用半插入码的慢速面板像素时钟
    8. 11.8  U-Boot 命令
    9. 11.9  启用所有功耗优化并运行 lvglsim 二进制文件
    10. 11.10 RPI 触摸显示屏故障排除

慢时钟频率

可在内核中运行的 Bash 脚本。

wkup_periph_clk_freqs.sh

#!/bin/bash

# Each entry is "clk_id freq"
CLOCK_FREQS=(
    "1 1562500"
    "5 9375000"
    "6 9375000"
    "7 4687500"
    "8 4687500"
    "16 18750000"
    "33 9375000"
    "34 4687500"
    "35 9375000"
    "36 9375000"
    "37 4687500"
    "38 9375000"
    "39 4687500"
    "44 18750000"
    "45 18750000"
    "46 4687500"
    "60 4687500"
    "65 4687500"
    "79 4687500"
    "84 4687500"
    "86 9375000"
    "93 9375000"
    "95 4687500"
    "96 9375000"
    "98 9375000"
    "102 4687500"
    "137 18750000"
    "140 4687500"
    "141 4687500"
    "142 4687500"
    "146 4687500"
    "151 9375000"
    "170 4687500"
    "173 2343750"
    "179 4687500"
    "185 4687500"
    "191 4687500"
    "209 9375000"
    "223 9375000"
    "237 9375000"
    "244 4687500"
    "248 4687500"
    "252 4687500"
    "256 4687500"
    "260 4687500"
    "267 2343750"
    "271 2343750"
    "278 4687500"
    "284 4687500"
    "285 4687500"
    "286 9375000"
    "287 9375000"
    "289 9375000"
    "291 4687500"
    "292 781250"
    "297 18750000"
    "298 4687500"
    "300 4687500"
    "303 4687500"
    "306 4687500"
    "309 4687500"
    "313 4687500"
    "315 4687500"
    "317 4687500"
    "319 4687500"
    "321 4687500"
    "323 4687500"
    "325 4687500"
    "359 4687500"
    "410 4687500"
    "451 9375000"
    "455 18750000"
    "457 18750000"
    "461 9375000"
    "466 4687500"
    "480 18750000"
    "514 9375000"
    "521 9375000"
)

for entry in "${CLOCK_FREQS[@]}"; do
    clk_id=${entry% *}
    freq=${entry#* }
    echo "Running: k3conf set clock 0 $clk_id $freq"
    k3conf set clock 0 "$clk_id" "$freq" > /dev/null
done