- 博客(8)
- 收藏
- 关注
原创 gdb简单调试
gdb -q test1 启动gdb,打印gdb版本信息,界面较为干净;gcc -g test1.c -o test1 带gdb调试信息。的首地址的值,右边则是数据的长度。print 变量名 查看变量。n 单步调试(不进入函数)s 单步调试(进入函数)
2023-09-27 17:08:09 56 1
原创 linux加入环境变量
进入个人的根目录cd ~ 建立工具文件夹mkdir -p ~/.tools 将可执行文件./test放进工具文件夹cp -f ./test ~/.tools/ 将工具路径,加入到PATH环境变量中vim ~/.bash_profile,PATH=~/.tools:$PATH 执行source命令,生效环境变量source ~/.bash_profile
2023-08-31 10:02:41 113
原创 树莓派摄像头motion
sudo nano /etc/default/motion写start_motion_daemon=yes。sudo nano /etc/motion/motion.conf 改。浏览器192.168.3.11:8081。
2023-08-29 00:03:01 124 1
原创 Linux驱动-内核模块
解析模组,这时,内核在vmalloc区分配与ko文件大小相同的内存来暂存ko文件, 暂存好之后解析ko文件,将文件中的各个section分配到init 段和core 段,在modules区为init段和core段分配内存, 并把对应的section copy到modules区最终的运行地址,经过relocate函数地址等操作后,就可以执行ko的init操作了, 这样一个ko的加载流程就结束了。符号必须在模块文件的全局部分导出,不能在函数中使用,_GPL使得导出的模块只能被GPL许可的模块使用。
2023-08-28 15:48:04 255 1
原创 IIC通信
转载I2C使用两根信号线进行通信:一根时钟线SCL,一根数据线SDA。I2C将SCL处于高时SDA拉低的动作作为开始信号,SCL处于高时SDA拉高的动作作为结束信号;传输数据时,SDA在SCL低电平时改变数据,在SCL高电平时保持数据,每个SCL脉冲的高电平传递1位数据。IIC的物理层IIC一共有只有两个总线: 一条是双向的串行数据线SDA,一条是串行时钟线SCLSDA(Serial data)是数据线,D代表Data也就是数据,Send Data 也就是用来传输数据的。
2023-08-28 12:18:15 100 1
原创 Linux驱动入门 ioctl
2)type,即device type,表示设备类型,也可翻译成“幻数”或“魔数”,可以是任意一个char型字符,如’a’、‘b’、‘c’等,其主要作用是使ioctl命令具有唯一的设备标识。1)dir,即direction,表示ioctl命令的访问模式,分为无数据(_IO)、读数据(_IOR)、写数据(_IOW)、读写数据(_IOWR)四种模式。3)nr,即number,命令编号/序数,取值范围0~255,在定义了多个ioctl命令的时候,通常从0开始顺次往下编号。用户与驱动之间的ioctl协议构成。
2023-08-17 10:49:31 155
原创 linux系统调用
用户态调用write系统调用之后是怎么通过 file_operation结构体找到对应字符设备需要调用的write内核函数的。系统调用之后,内核会进行一系列的处理来将数据传递给对应的字符设备的内核函数。在字符设备的写操作函数中,会对传入的数据进行处理,并将数据写入设备的缓冲区或进行相关的操作。结构体中的函数指针进入设备的写操作函数。在该函数中,完成对数据的处理和设备的写操作。系统调用时,会进入内核态执行相应的内核函数。系统调用后,内核会根据文件描述符找到对应的字符设备,并通过。完成写操作后,返回给内核。
2023-08-09 11:30:46 114 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人