38、嵌入式系统调试与性能分析指南

嵌入式系统调试与性能分析指南

1. 调试问题定位与解决

在调试过程中,有时会遇到 Oops 错误。例如,发现 m 变量是一个空指针,这正是导致 Oops 的原因。查看 m 初始化的代码,发现缺少一行。修改驱动以初始化指针后,问题解决,不再出现 Oops 。以下是修改后的代码:

static int mbx_open(struct inode *inode, struct file *file)
{
    if (MINOR(inode->i_rdev) >= NUM_MAILBOXES) {
        printk("Invalid mbx minor number\n");
        return -ENODEV;
    }
    file->private_data = &mailboxes[MINOR(inode->i_rdev)];
    return 0;
}
2. 保存 Oops 信息

要解析 Oops 错误,首先得捕获它。若系统在启动时控制台未启用或挂起后崩溃,就无法看到 Oops 信息。可以采用以下简单方法保存信息:
- 只要重置时内存内容未损坏(通常不会损坏),就可以重启进入引导加载程序并使用它显示内存。需要知道内核日志缓冲区的位置,它是一个简单的文本消息环形缓冲区,符号为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值