$language = "python"
$interface = "1.0"
import sys
reload(sys)
sys.setdefaultencoding('utf-8') # 设置默认编码为UTF-8
import re # 必须导入正则模块
global left
global right
global complete
clkfrequency = 0 # 初始化全局变量
left = "" # 新增全局变量初始化
right = "" # 新增全局变量初始化
commands = [
"ddr_g12_offset_data 1 0x40 0 0 1 16",
"ddr_g12_offset_data 2 0x0 0 0 1 16",
"ddr_g12_offset_data 3 0x0 0 0 1 16",
"ddr_g12_offset_data 101 0x40 0 0 1 16",
"ddr_g12_offset_data 102 0x0 0 0 1 16",
"ddr_g12_offset_data 103 0x0 0 0 1 16"
]# 左移指令
commands1 = [
"ddr_g12_offset_data 1 0x40 0 0 2 16",
"ddr_g12_offset_data 2 0x0 0 0 2 16",
"ddr_g12_offset_data 3 0x0 0 0 2 16",
"ddr_g12_offset_data 101 0x40 0 0 2 16",
"ddr_g12_offset_data 102 0x0 0 0 2 16",
"ddr_g12_offset_data 103 0x0 0 0 2 16"
]# 右移指令
def switch(choice):
global clkfrequency
global left
global right
while True:
crt.Screen.Send('reboot '+'\r')
if crt.Screen.WaitForString("Set ddr clk to", 8):
break
while True:
crt.Screen.Send(chr(3))
if crt.Screen.WaitForString("
break
if choice == 1:
for cmd in commands:
crt.Screen.Send(cmd + "\r")
if not crt.Screen.WaitForString("# ", 4): # 超时 3 秒
break
crt.Sleep(1000) # 可选:短延时
crt.Screen.Send('run bootcmd '+'\r')
if crt.Screen.WaitForString("!=bootcmd", 1):
crt.Sleep(1000)
else:
while True:
crt.Screen.Send('setprop debug.temp.superroot 89243347'+'\r')
crt.Screen.Send('imbug 1379'+'\r')
crt.Screen.Send('echo 0 > /proc/sys/kernel/printk'+'\r')
crt.Screen.Send('getprop sys.boot_completed;output=$(getprop sys.boot_completed);echo "zhuangtai["$output"]"'+'\r')
if crt.Screen.WaitForString("zhuangtai[1]", 3):
crt.Screen.Send('/data/amlogic_ddr_stressapptest -s 36000 -i 2 -m 2 -M 300 -W '
'--pause_delay 10 --pause_duration 1 --max_errors 3 --printsec 5'+'\r')# 左移指令
if crt.Screen.WaitForString("Status: PASS"):
left="PASS"
break
else:
if crt.Screen.WaitForString("Status: FAIL"):
left="FAIL"
break
elif choice == 2:
for cmd in commands1:
crt.Screen.Send(cmd + "\r")
if not crt.Screen.WaitForString("# ", 4): # 超时 3 秒
break
crt.Sleep(1000) # 可选:短延时
crt.Screen.Send('run bootcmd '+'\r')
if crt.Screen.WaitForString("!=bootcmd", 1):
crt.Sleep(1000)
else:
while True:
crt.Screen.Send('setprop debug.temp.superroot 89243347'+'\r')
crt.Screen.Send('imbug 1379'+'\r')
crt.Screen.Send('echo 0 > /proc/sys/kernel/printk'+'\r')
crt.Screen.Send('getprop sys.boot_completed;output=$(getprop sys.boot_completed);echo "zhuangtai["$output"]"'+'\r')
if crt.Screen.WaitForString("zhuangtai[1]", 3):
crt.Screen.Send('/data/amlogic_ddr_stressapptest -s 36000 -i 2 -m 2 -M 300 -W '
'--pause_delay 10 --pause_duration 1 --max_errors 3 --printsec 5'+'\r')# 左移指令
if crt.Screen.WaitForString("Status: PASS"):
right="PASS"
break
else:
if crt.Screen.WaitForString("Status: FAIL"):
right="FAIL"
break
elif choice == 3:
crt.Screen.Send('ddr_test_cmd 0x37;g12_d2pll 1176 0x31 792 1800 0 0 1'+'\r')# 极限频率
elif choice == 4:
crt.Screen.Send('ddr_test_cmd 0x37;g12_d2pll 1176 0x11 0x7 0 0 0'+'\r')# windows
禁用回显提升速度(适用于已知稳定环境)
crt.Screen.Synchronous = True
设置屏幕缓存模式
crt.Screen.IgnoreEscape = True
switch(1)
switch(2)
switch(3)
switch(4)
crt.Sleep(10000)
if crt.Screen.WaitForString("Hello, we are", 3600):
current_session = crt.GetScriptTab()
currentname=crt.GetScriptTab().Caption
crt.Sleep(360000)
crt.Dialog.MessageBox(currentname+"脚本完成 左移:"+left+" 右移:"+right+" 极限频率:完成 windows:完成")
current_session.Session.Disconnect()