单片机
返回首页

module方式调试驱动(Micro2440 + linux 2.6.39)

2022-07-08 来源:csdn

调试驱动时,为了避免每修改一次内核配置或驱动都要重新编译一次内核镜像,可以将驱动配置成模块(module)的方式进行调试,可在LINUX启动时动态地加载驱动模式到内核中,减少了编译时间,也省去了重启LINUX的时间,大大加快调试进度。


以下以Micro2440 + linux 2.6.39的RTC驱动为例子,进行动态编译。


a) 将RTC编译成module,并打开DEBUG输出


        # make menuconfig


                Device Drivers  --->


                        <*> Real Time Clock  ---> 


                        [*]   RTC debug support  //打开DEBUG输出


                           Samsung S3C series SoC RTC  //编译成模块


b) 使内核支持动态加载调试信息输出


        Kernel hacking  ---> 


                [*] Tracers  ---> 


                [*]   Trace max stack   //打开这里后,有些设置跟着默认打开


                [*] Enable dynamic printk() support  //支持动态加载时的输出


c) 重新编译内核,并将内核下载到开发板运行


        # make uImage


        # cp arch/arm/boot/uImage /opt/TFTP_DIR/MICRO2440   //复制到TFTP目录(通过U-BOOT的TFTP命令下载至RAM中运行)


d) 编译module并复制到根目录


        # make modules


        #cp ./drivers/rtc/rtc-s3c.ko ../../3.Filesystem/NFS/lib/modules/2.6.39/


        注意,.ko文件必须放到/lib/modules/2.6.39/目录下,否则无法卸载。


e) 修改控制台打印级别


Console的默认级别是7,即级别小于7的调试信息才会打印出来。Printk的级别是7,那就还需要修改Console的打印级别。


                # cat /proc/sys/kernel/printk   //查看当前打印级别


                # echo 8 > /proc/sys/kernel/printk //修改打印级别


注意,由于printk文件是在ramfs中的,因此重启INUX后又会恢复默认值,因此可以在/etc/init.d/rcS的末尾增修改打印级别的代码,让其启动自动修改。


f) 加载RTC模块、创建设备文件、运行


        # insmod /lib/modules/2.6.39/rtc-s3c.ko


        # lsmod  //使用lsmod可以查看已经加载的模块


        # mknod /dev/rtc0 c 254 0 //使用cat /proc/devices可以查看主设备号


        # rmmod rtc_s3c //使用rmmod可以卸载模块


        # date -s 2014.07.25-8:5:24 //设置系统时钟


        # hwcolck -w  //同步系统时钟到硬件时钟


如下图所示,各个操作均正常,需要注意的就是KO文件的存放路径,和rmmod时的模块名字要从lsmod的显示中取得。加载打开DEBUG信息的模块后,可看到使用hwclock命令后,已经可以打印出pr_debug()输出的调试信息了。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

最新器件
精选电路图
  • 光控音效发生器电路

  • 非常简单的150W功放电路图

  • 一个简单的警笛电路图

  • 基于IC555的可变PWM振荡器电路

  • 分享一个电网倾角计电路

  • 电谐波图形均衡器示意图

    相关电子头条文章