reg11: disabling,reg18: disabling,usb33: disabling
时间: 2024-10-07 08:06:50 浏览: 59
"Reg11: disabling", "Reg18: disabling", 和 "USB33: disabling" 是在正点原子STM32MP157设备上,当从Linux内核设备树(Device Tree)中移除pwr_regulators节点时发生的事件。这些标识符可能对应于特定的电源管理寄存器(Power Regulators),在原有的设备树配置中用于控制这些电源模块的开启与关闭。
具体来说,如果原本的设备树定义了如下的内容[^1]:
```markdown
&pwr_regulators {
vdd-supply = <&vdd>;
vdd_3v3_usbfs-supply = <&vdd_usb>;
};
```
那么移除这个节点意味着内核不再知道如何管理和控制`reg11`, `reg18`, 和可能的`USB33`这些电源供应单元。当系统启动时,由于缺少这些控制器的驱动信息,会报告它们被禁用(disabling)。
在Linux内核源码文档中,关于ST,STM32MP1-PWR-REG.txt的说明可能详细解释了这些电源管理控制器的结构、驱动接口以及为何需要它们。如果这些资源没有正确的驱动支持,系统就无法正常工作,因此看到这些disable消息是很常见的。
相关问题
帮我写一个 C++ Windows USB 禁用程序
以下是一个简单的 C 代码,可以用于禁用 Windows 中的 USB 设备。
```c
#include <windows.h>
#include <setupapi.h>
#include <devguid.h>
#include <regstr.h>
int main()
{
GUID guid;
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
DWORD i;
// 设置 USB GUID
if (!SetupDiClassGuidsFromName(TEXT("USB"), &guid, 1, &i))
{
printf("Error getting USB GUID: %d\n", GetLastError());
return 1;
}
// 获取设备信息
hDevInfo = SetupDiGetClassDevs(&guid, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);
if (hDevInfo == INVALID_HANDLE_VALUE)
{
printf("Error getting device info: %d\n", GetLastError());
return 1;
}
// 枚举所有设备并禁用它们
for (i = 0;; i++)
{
DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
if (!SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData))
{
if (GetLastError() == ERROR_NO_MORE_ITEMS)
{
break;
}
printf("Error enumerating device info: %d\n", GetLastError());
return 1;
}
// 禁用设备
HKEY hKey = SetupDiOpenDevRegKey(hDevInfo, &DeviceInfoData, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_WRITE);
if (hKey == INVALID_HANDLE_VALUE)
{
printf("Error opening device registry key: %d\n", GetLastError());
return 1;
}
DWORD dwValue = 0;
DWORD dwSize = sizeof(DWORD);
if (RegSetValueEx(hKey, REGSTR_VAL_DISABLED, 0, REG_DWORD, (LPBYTE)&dwValue, dwSize) != ERROR_SUCCESS)
{
printf("Error disabling device: %d\n", GetLastError());
return 1;
}
RegCloseKey(hKey);
}
// 清理
SetupDiDestroyDeviceInfoList(hDevInfo);
return 0;
}
```
请注意,此代码仅禁用连接到计算机的 USB 设备,而不是实际禁用 USB 功能。此代码仅供参考,如果您需要更详细的控制,则需要使用更高级的 API 或第三方库。此代码还需要管理员权限才能正常运行。
阅读全文