在幽兰上学习 LINUX 驱动开发

  1. 首先启动我们的幽兰笔记本,打开 terminal。

  2. 输入命令cd /home/geduer/gelabs/llaolao2,进入llaolao2目录下,在输入ls命令查看目录下的文件。结果如图所示。

  1. 输入make命令会调用当前目录下的Makefile脚本来编译文件,在输入ls查看,结果如图所示。

  1. 输入命令 sudo insmod llaolao2.ko 加载lliaolao2驱动,这里需要管理员权限,所以需要用sudo,输入命令回车后需要输入用户密码确认。

  2. 上述步骤操作完成后,llaolao2.ko驱动就已经加载成功了。

  3. 使用llaolao2.ko,可以通过如下命令

     echo div0 | sudo tee -a /proc/llaolao,表示进行除0操作。输入dmesg可以看到进行了div0操作。

    echo nullp | sudo tee -a /proc/llaolao,表示进行测试空地址操作。输入dmesg可以看到进行了nullp操作。这里会出现core dumped错误,这正是我们想看到的。结果如下图所示。

    echo timer0 | sudo tee -a /proc/llaolao,表示进行了时间操作。输入dmesg可以看到进行了timer0的结果,结果如下图所示。

    echo percpu | sudo tee -a /proc/llaolao,表示进行了查看每一个cpu信息的操作。输入dmesg可以看到进行percpu操作后的结果,结果如下图所示。

    echo sysreg | sudo tee -a /proc/llaolao,表示进行了查看系统寄存器信息操作。输入dmesg可以看到进行sysreg操作后的结果,结果如下图所示。

     echo ulan | sudo tee -a /proc/llaolao,表示进行控制幽兰设备的JTAG开关操作。输入dmesg可以看到进行了ulan操作,结果如下图所示。

    echo iram | sudo tee -a /proc/llaolao,表示进行iram读写测试操作。输入dmesg可以看到进行了iram操作,结果如下图所示。

    echo hot | sudo tee -a /proc/llaolao,表示进行hot测试操作。输入dmesg可以看到进行了hot操作,结果如下图所示。

  1. 输入命令 sudo rmmod llaolao,这是移除驱动模块命令。输入dmesg可以看到进行了移除llaolao驱动。

    注意!!

    进行nullp操作后,会导致移除不了llaolao模块,这时重新启动就好了。
    有时某些原因会导致重启启动的时候卡住,按电源不放直到屏幕变黑,再重新启动就行了
作者:沈根成  创建时间:2023-07-12 10:20
最后编辑:Zhang Yinkui  更新时间:2024-11-15 17:44