xiaozhuzqh

2019-2020 -1 20165213 20165224 20165311 实验四

任务一

学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
提交康奈尔笔记的照片(可以多张)

康奈尔笔记:

康奈尔笔记系统把一页纸分成了三部分:
右上最大的空间是我们平时做笔记的地方,你按照平时的习惯记录
就行了。
左边那竖着的一条空间叫做“线索栏”,是用来归纳右边的内容的,写一些提纲挈领的东西,这个工作不要在做笔记的时候做,而是在上完课之后马上回顾,然后把要点都写到左边,这样一方面马上复习了内容,另一方面理清了头绪。
下面那横着的一栏是用来做总结的,就是用一两句话总结你这页记录的内容,这个工作可以延后一点儿做,起到促进你思考消化的作用,另外也是笔记内容的极度浓缩和升华。

我的笔记:


任务二:

在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)

在实验过程中遇到一些问题,比如每次make clean的时候都出现遗漏分隔符。

在进行搜索之后发现存在的问题是命令前面没有加上tab键导致了错误,在修改了错误之后就可以make clean了,但是make的时候一直显示的是没有什么可以为modules做的,不知道是什么原因。

已下是各个文件的代码

makefile

ifeq ($(KERNELRELEASE),)
KERNELDIR ?= /lib/modules/$(shell uname -r)/build /内核代码编译路径/
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf *.o ~ core .depend ..cmd .ko .mod.c .tmp_versions
.PHONY: modules modules_install clean
else
obj-m := test_drv.o /
将生成的模块命名为test_drv.ko
/
endif

test.c

include <stdio.h>

include <stdlib.h>

include <string.h>

include <sys/stat.h>

include <sys/types.h>

include <unistd.h>

include <fcntl.h>

define TEST_DEVICE_FILENAME "/dev/test_dev" /* 设备文件名*/

define BUFF_SZ 1024 /* 缓冲大小 */

int main()
{
int fd, nwrite, nread;
char buff[BUFF_SZ]; /缓冲区/
/* 打开设备文件 /
fd = open(TEST_DEVICE_FILENAME, O_RDWR);
if (fd < 0)
{
perror("open");
exit(1);
}
do
{
printf("Input some words to kernel(enter \'quit\' to exit)

分类:

技术点:

相关文章:

  • 2021-05-18
  • 2021-11-21
  • 2022-02-27
  • 2021-07-18
  • 2021-12-22
  • 2022-02-06
  • 2022-12-23
猜你喜欢
  • 2021-08-02
  • 2021-09-10
  • 2021-10-06
  • 2021-06-21
  • 2022-02-11
  • 2022-12-23
  • 2021-09-19
相关资源
相似解决方案