strtoul的几个参数分别是什么意思
时间: 2023-03-26 16:01:36 浏览: 127
strtoul函数的几个参数分别是待转换的字符串指针、转换后的字符串结束指针、转换的基数。其中待转换的字符串指针是需要转换的字符串,转换后的字符串结束指针是指向转换后的字符串的下一个字符的指针,转换的基数是指待转换字符串的进制数。
相关问题
static ssize_t store_update_fw(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int tmp; union power_supply_propval vbus; struct mtk_charger *info = NULL; if (NULL == dev_chg_psy) { dev_chg_psy = power_supply_get_by_name("mtk-master-charger"); power_supply_get_property(dev_chg_psy, POWER_SUPPLY_PROP_VOLTAGE_NOW, &vbus); } else power_supply_get_property(dev_chg_psy, POWER_SUPPLY_PROP_VOLTAGE_NOW, &vbus); info = (struct mtk_charger *)power_supply_get_drvdata(dev_chg_psy); tmp = simple_strtoul(buf, NULL, 0); if (tmp != 0) { if (vbus.intval < 3000) { info->otg_flag = 1; charger_dev_enable_otg(info->chg1_dev,1); mdelay(100); power_supply_get_property(dev_chg_psy, POWER_SUPPLY_PROP_VOLTAGE_NOW, &vbus); } update_firmware(); mdelay(500); if ( update_firmware() == CPS_WLS_SUCCESS && info->otg_flag == 1 && vbus.intval > 3000 ) { info->otg_flag = 0; charger_dev_enable_otg(info->chg1_dev,0); power_supply_get_property(dev_chg_psy, POWER_SUPPLY_PROP_VOLTAGE_NOW, &vbus); } } return count; }运行此函数,会引其update_firmware()函数中request_firmware报错,请帮忙分析原因
您好!根据您提供的代码,我们可以看到在 `store_update_fw` 函数中调用了 `update_firmware()` 函数,但是没有提供 `update_firmware()` 函数的实现代码。根据您的描述,报错是由 `request_firmware` 引起的。
`request_firmware` 函数用于从文件系统中请求固件文件,并将其加载到内存中。它需要正确的固件文件路径和文件名来加载固件。如果找不到指定的固件文件或者路径错误,就会产生错误。因此,您需要确保 `update_firmware()` 函数中的 `request_firmware` 函数调用的参数是正确的。
您可以检查以下几个方面:
1. 确保固件文件存在。请检查固件文件的路径和文件名是否正确,并且确保文件存在于指定的位置。您可以通过在代码中打印路径来验证路径是否正确。
2. 确保文件权限正确。请确保固件文件的权限允许访问。您可以使用 `ls -l` 命令来查看固件文件的权限,并确保您的代码有足够的权限来读取该文件。
3. 确保文件系统正确挂载。如果固件文件所在的文件系统没有正确挂载,就无法访问该文件。请确保文件系统已经正确挂载,并且可以正常访问。
4. 确保固件文件名正确。请确保您在 `request_firmware` 函数中指定的固件文件名与实际文件名一致。注意大小写敏感。
如果您仍然无法解决问题,请提供 `update_firmware` 函数的实现代码,以便我们更进一步地分析问题。
阅读全文