我是靠谱客的博主 舒心大神,这篇文章主要介绍linux驱动调试方法反汇编,内核调试的方法,现在分享给大家,希望可以做个参考。

驱动程序的调试

一. 打印: prink, 自制proc文件

UBOOT传入console=ttySAC0 console=tty1

1. 内核处理UBOOT传入的参数

console_setup

add_preferred_console // 我想用名为"ttySAC0"的控制台,先记录下来

2. 硬件驱动的入口函数里:

drivers/serial/s3c2410.c

register_console(&s3c24xx_serial_console);

3. printk

vprintk

/* Emit the output into the temporary buffer */

// 先把输出信息放入临时BUFFER

vscnprintf

// Copy the output into log_buf.

// 把临时BUFFER里的数据稍作处理,再写入log_buf

// 比如printk("abc")会得到"<4>abc", 再写入log_buf

// 可以用dmesg命令把log_buf里的数据打印出来重现内核的输出信息

// 调用硬件的write函数输出

release_console_sem();

call_console_drivers(_con_start, _log_end);

// 从log_buf得到数据,算出打印级别

_call_console_drivers(start_print, cur_index, msg_level);

// 如果可以级别够格打印

if ((msg_log_level < console

最后

以上就是舒心大神最近收集整理的关于linux驱动调试方法反汇编,内核调试的方法的全部内容,更多相关linux驱动调试方法反汇编,内核调试内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(116)

评论列表共有 0 条评论

立即
投稿
返回
顶部