win10软实时设置
win10软实时设置
- 使用win10软实时的前提
- 硬件这是完成后开始软件设置:
- 第二步:隔离CPU
- 测试:使用CPUSTRES64.EXE这个工具拉高CPU使用率,如果隔离的CPU没有收到影响,那么CPU就隔离成功了。
使用win10软实时的前提
首先一点就是系统一定要是win10 IoT 企业版 21H2以上版本。因为21H2系统微软才加入的软实时特性。
微软官方链接:win软实时
第二点:使用软实时无非就是使用它的实时特性,而稳定实时特性是关键。首先就是要稳定CPU主频,这里需要在bios中设置一下:关键点有四个:
- 关闭CPU的节能模式:c states
- 启动英特尔睿频功能:Boot performance mode 模式选择Turbo
performance - 关闭Intel speed shift Technology
- 关闭虚拟化 :Intel(VMX)virtualization Technology
这里就不贴图了,每个品牌的bios长得都不一样,设置位置也不一样。amd的cpu没事试过,这里不讨论amd的CPU,理论上都是一样的设置。
硬件这是完成后开始软件设置:
第一步设置系统:
从命令行执行此配置,这些命令都是微软软实时中设置的
这会在打开电源时配置设备。 为了确保设备保持软 RT 性能,应该使用本指南配置计算机,使其每次打开时都以脚本形式运行这些命令。
在 cmd 提示符中运行这两个命令。 这会禁用 CPU 空闲状态,其中没有运行指令的 CPU 将进入省电状态。 这在实时场景中是不可取的,因为空闲的 CPU 在开始执行新指令时会有延迟:
控制台复制
powercfg.exe /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR IdleDisable 1 powercfg.exe /setactive SCHEME_CURRENT
在 cmd 提示符中运行这三个命令以禁用 DPS:
控制台复制
sc query dps sc stop dps sc config dps start=disabled
在 cmd 提示符中运行这三个命令以禁用 Audiosrv:
控制台复制
sc query Audiosrv sc stop Audiosrv sc config Audiosrv start=disabled
在 cmd 提示符中运行这三个命令以禁用 SysMain:
控制台复制
sc query SysMain sc stop SysMain sc config SysMain start=disabled
在 cmd 提示符中运行以下三个命令以禁用Windows 更新:
控制台复制
sc query wuauserv sc stop wuauserv sc config wuauserv start=disabled
运行此命令以禁用线程 DPC
控制台复制
reg add “HKLM\System\CurrentControlSet\Control\Session Manager\kernel” /v ThreadDpcEnable /t REG_DWORD /f /d 0
第二步:隔离CPU
下载PStool工具。pstool
需要注意一点的是直接运行psexec.exe -s -i powershell.exe是会报错的,
所以第一步要以管理员权限打开powershell运行Set-ExecutionPolicy RemoteSigned这行命令。然后再执行下面的命令
$nameSpaceName="root\cimv2\mdm\dmmap"
$className="MDM_WindowsIoT_SoftRealTimeProperties01"
$obj = Get-CimInstance -Namespace $nameSpaceName -ClassName $className
Add-Type -AssemblyName System.Web
Set-CimInstance -CimInstance $obj
$obj.SetRTCores = 2
Set-CimInstance -CimInstance $obj
执行完之后,系统就算是配置完成了。
电源设置为卓越性能:win10 可以在电源中直接设置,win11 不太会用,只能使用下面的设置为卓越性能
按下 “Win+X” 键,选择 “Windows 终端(管理员)”。
在终端窗口中,输入命令 “powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61”,然后按回车键。
关闭终端后,右键点击 “开始” 按钮,选择 “电源选项”。
在电源选项中,找到并选择 “卓越性能” 计划即可。
测试:使用CPUSTRES64.EXE这个工具拉高CPU使用率,如果隔离的CPU没有收到影响,那么CPU就隔离成功了。
Sysinternals 实用工具 Sysinternals 实用工具
然后就可以把代码放到隔离的CPU核心中运行了。在隔离CPU中,系统运行的就是软实时。