- 博客(5)
- 收藏
- 关注
原创 驱动开发日记——入门到入职3
在编写串口驱动的时候,可以通过ioctl完成数据bit为设置,波特率设置,停止位设置等。linux内核想要将数据的读写和设备的控制分开。ioctl专门用来进行设备的控制的。接下来可以通过read/write完成数据的收发工作。使用ioctl向内核传递字符组 char [128];使用ioctl完成结构体的读写。
2024-04-26 00:24:28
183
1
原创 驱动开发日记——入门到入职2
arm-linux-gnueabihf-gcc test.c (将/usr/include/head.h拷贝到交叉编译工具路径下)crw-r--r-- 1 root root 235, 0 3月 28 11:18 /dev/mycdev。空间和内核空间数据传输的话通过copy_to_user/copy_from_user。nfs :通过nfs挂载根文件系统--->/home/linux/rootfs。来操作内核空间,内核的安全性无从保证。比如让通过内核空间的指针指向用户空间的时候,如果用户空间。
2024-01-28 08:00:00
794
原创 驱动开发——入门到入职1
在内核中有两个模块demoA和demoB.如果demoA模块中实现了add函数,此时demoB模块是可以调用demoA中的add函数的,因为两个模块都运行同一个3-4G的内核空间,但是demoB如何拿到demoA中的add函数那?通过导出符号表完成。
2024-01-20 17:27:33
1131
1
原创 基于tcp通信在客户端上下载服务器的某个文件的小练习(附带粘包问题及解决方案)
一个小练习题提示:以下是本篇文章正文内容,下面案例可供参考TCP通信的流程不变,唯一需要处理的只有数据的解析,即如何判断服务器是否有要下载的文件,这时就需要对open这个函数的灵活使用,其返回值为 -1 时,错误码中ENOENT就可以判断文件是否存在,如下图:另外一点就是在判断结束时发的信息可能粘包,所以定义一个结构体定长发送来解决这个问题。
2023-03-04 15:40:06
292
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人