在针对上述系统进行自动化测试或闪存稳定性验证(flashval)时,经常会遇到环境依赖或内核不兼容导致的阻塞问题。1. 典型报错现象PlaintextERROR:flash_sd_clk_rate: 59 Failed to find valid clock rate file - 1 INFO:clkscale_core_test: 108 Low to High count 0 / 1000 ( 0.00 %)2. 根因剖析与底层逻辑通过对测试工具的源码分析,其内部在测量时钟频率切换时,会去遍历一个硬编码的控制器时钟频率文件列表(clk_rate_list):Cconst char *clk_rate_list[SD_CLK_RATE_LIST_COUNT] = { "/sys/kernel/debug/clk/sdcc1_apps_clk_src/clk_rate", "/sys/kernel/debug/clk/gcc_sdcc1_apps_clk/rate", "/sys/kernel/debug/clk/gcc_sdcc1_apps_clk/clk_rate" };当find_first_valid_entry遍历完后返回-1,则代表测试中断。导致该文件找不到的底层原因通常有两点:debugfs