驱动变量异常2
arch/arm/mach-xxx/board-xxx.c
drivers/base/platform.c
board_xxx_init()函数中输出结果:
platform_device_register()函数中输出结果:
为什么platform_device_register()函数输出结果中输出结果中的x为0?
在调用platform_device_register()函数前后的输出证明x的值没有被改变,所有的输出也证明platform_data指向的地址
也没有被修改,都是c0bf6188
那有什么可能造成了这个问题呢?请各位支招.
static struct xxx_device_data xxx_dev_data = {
.m = {
.x = 17,
},
};
static struct platform_device xxx_dev = {
.name = "xxx-dev-name",
.id = -1,
.dev = {
.platform_data = &xxx_dev_data,
},
};
void board_xxx_init(void)
{
struct xxx_device_data *pdata;
...
pdata = &xxx_dev.dev.platform_data;
pr_info("%s(before): @%p, x = %d\n", __func__, pdata, pdata->x); // 输出正常,x为17
platform_register_device(&xxx_dev.dev.platform_data);
pr_info("%s(after): x = %d\n", __func__, pdata->x); // 输出正常,x为17
...
}drivers/base/platform.c
int platform_device_register(struct platform_device *pdev)
{
if (!strcmp(pdev->name, "xxx-dev-name")) {
struct xxx_device_data *pdata = pdev->dev.platform_data;
pr_info("%s: %s, @%p, x = %d\n", __func__, pdev->name, pdata, pdata->x); // 输出除x为0外,其他正常
}
...
}board_xxx_init()函数中输出结果:
board_xxx_init(before): @c0bf6188, x = 17
board_xxx_init(after): x = 17platform_device_register()函数中输出结果:
platform_device_register: xxx-dev-name, @c0bf6188, x = 0为什么platform_device_register()函数输出结果中输出结果中的x为0?
在调用platform_device_register()函数前后的输出证明x的值没有被改变,所有的输出也证明platform_data指向的地址
也没有被修改,都是c0bf6188
那有什么可能造成了这个问题呢?请各位支招.
...全文
相关推荐
null.sys 修复Git异常
**更新驱动程序**:确保你的系统驱动程序是最新的,特别是与Git操作相关的部分。检查并更新所有相关的硬件驱动,包括网络适配器、存储控制器等,因为它们可能与Git的数据传输有关。2.
Selenium常见异常解析及解决方案示范
2. **驱动及本地服务类异常** - `WebDriverException`通常表示找不到相应的浏览器驱动,如`geckodriver`或`chromedriver`。
Selenium-各浏览器驱动
**环境变量**:正确设置PATH环境变量,使得Selenium能够找到驱动的路径。4.
seed-xds560v2 seed-xds560v2plus drivers 驱动
设置断点,单步调试,查看变量值,理解程序运行状态。3. 调试器提供性能分析功能,帮助优化代码,提高运行效率。4. 支持硬件中断和异常处理,便于诊断和修复问题。
驱动调试助手V2.2
首先,驱动调试助手V2.2可能包含了一些增强的调试功能,比如断点设置、单步执行、变量查看、内存检查等。这些功能使得开发者能够在运行时跟踪代码执行流程,查找潜在的问题。


驱动开发/核心开发
