自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 ubuntu虚拟机重启后,共享文件夹无法生效

7、重启完再次查看共享文件夹目录,之前设置的共享文件夹已经生效。1、首先确认共享文件夹是开启的,且是挂载的。原因:可能是对应的驱动在重启后并没有安装。6、确认共享文件夹设置并开启,重启。3、创建一个fuse模块。

2024-06-14 01:53:38 563

原创 解决vmware tools更新报错

当我安装vm tools的时候,报了这个("连接到更新服务器时发生证书错误,请检查您的Internet 设置或与你的系统管理员联系"),并且虚拟机上的安装vmtools的选项是灰色的时候。:SSL证书依赖于系统时间。如果系统时间不正确,可能会导致证书验证失败。命令:date,看输出的时间是否与ubuntu的系统时间一致。:更新服务器的证书可能过期或被系统认为是不可信的。:可能存在网络连接问题,导致无法正确连接到服务器。再次安装vm tools。

2024-06-14 00:43:36 1444

原创 vscode

https://marketplace.visualstudio.com/vscode

2024-06-13 10:09:43 215

原创 C语言 ---- typeof

总之,`typeof`是一个强大的编译器扩展,可以在某些情况下提高代码的可读性和可维护性,但使用时要注意它的限制和依赖性。- 当需要获取表达式的类型,并且代码只会在支持`typeof`的编译器上编译时,可以考虑使用`typeof`关键字。这里,`y`将会被声明为`int`类型,因为`typeof(x)`会被替换为`int`。- 在编写宏时,`typeof`可以帮助捕获参数的类型,以便进行类型安全的操作。这将创建一个类型为表达式`expression`的变量`var`。1. **获取表达式的类型:**

2024-04-18 23:03:25 426

原创 GPIO sysfs接口配置GPIO管脚,GPIO测试中断驱动步骤

如果一个gpio管脚可能并不需要这么麻烦,因为一时间只可能有一个管脚的中断,但是我当时写的是可以同时支持配置3个gpio管脚,因此我觉得比较麻烦,就没有用锁,而是直接在中断处理函数,在函数里对中断号进行一些处理,判断对应的中断是否来源此时正在去使能的中断号,同时enable_irq之前也做了判断。之前是写过一个测试驱动,在加载驱动的时候,是可以配置哪一个gpio管脚、并且可以配置gpio中断、输入输出方向,是否中断屏蔽,甚至还有去毛刺的功能,可通过加载驱动配置对应的寄存器实现。

2024-03-19 16:04:33 901

原创 SPI开源工具

(2)加载spidev.ko的bufsiz(缓存)默认是4096个字节,这个大小确实会影响spi的传输,我尝试过加载驱动的时候增大,timeout就不会出现了,但是这个大小也是有限制的,我理解应该是不能超过你的可用内存大小,但是具体是多少就不知道了。2、spidev_test是一个用户态工具,源码在linux已开源,通过/dev/下生成的spidev节点,系统调用内核的接口去实现spi的通信。(3)通过参数指定和物理环回这两个方法通过spidev_test命令输出的结果是不一样的。

2024-03-15 17:37:25 527

原创 dmidecode

dmidecode可以通过DMI去获取到主机的硬件信息。例如,查看BIOS的信息。

2024-03-15 15:12:36 322

原创 C语言 ---- 强制类型转换

3、char *型转换为int *型的时候,结果会变,因为占用的空间不同,char型只占一个字节,int型占4个字节,转换成int型之后,由于char型的数据只有一个字节,所以还有3个字节的数据需要补上,因此会导致结果变了。但是再从int *型转换为char *型,结果又有变回一样的,归根到底还是两个类型占用的空间不一样。像malloc的返回值为void *型,所以必须要强制类型转换。1、强制类型转换最好是显式转换。2、void *型不可以初始化。

2024-02-23 10:58:39 331 1

原创 IOMUX实现管脚切换

如图所示,芯片内部集成各个模式,通过IOMUX实现管理,跟GPIO的pinmux是类似的,IOMUX是通过配置对应寄存器不同的值切换不同的模式,根据不同的模块协议去发送对应的脉冲模拟对应的模块。对外只有一个pad引脚(真实可见的)。IOMUX的作用就是可以节省芯片资源,通过一个管脚实现多个低速总线模块的功能,甚至还能解决I2C挂死的问题(具体可参考我I2C防挂死方案的博客)。

2023-12-11 11:19:50 211

原创 git 解冲突

修改冲突内容。

2023-11-29 10:09:41 70

原创 git使用

git stash。

2023-11-29 09:59:44 62

原创 USB协议学习笔记

内核中使用结构 struct usb_host_endpoint 来描述,该结构包含真是的端点信息在另一个结构中(struct usb_endpoint_descriptor)每个USB设备都必须有一个控制端点(端点0),每个端点的方向是固定且是单向的(除了端点0)。主机到从机为OUT端点,从机到主机为IN端点。Linux提供了一个子系统叫USB核,便于驱动与USB核的交互。USB通信的基本方式就是端点,主机跟端点的数据传输就是管道(pipe)。接口(interface)端点(endpoint)

2023-11-29 09:55:59 123

原创 GPIO sysfs接口

可通过GPIO sysfs接口去配置GPIO的方向,电平等值。

2023-11-24 17:51:53 46

原创 i2c-tools使用指导

i2cdetect、i2ctransfer工具使用指导。

2023-11-24 17:50:19 427 1

原创 GPIO power button

通过GPIO物理按键(按下按键),向CPLD发送信号,CPLD通知CPU触发中断,调用内核对应的中断处理函数实现shutdown。如实现方案有问题可提出建议,该博客只是个人参与过该方案的一个浅浅的理解,记录一下而已。GPIO实现power button功能。GPIO节点信息可通过BIOS上报。

2023-11-17 18:16:07 57

原创 Linux的kernel command line

操作系统启动日志搜索kernel command line可查询command line,可查询grub里的启动命令的一些启动参数。

2023-11-17 17:23:12 99

原创 modprobe和insmod区别

modprobe会默认把该驱动的依赖的驱动都加载了,modprobe还会去到对应驱动的目录下找到该驱动,不需要指定绝对路径。insmod需要指定绝对路径,并且不会把依赖的驱动加载,需要手动加载。可通过modinfo i2c.ko查看该驱动依赖的驱动。指令:insmod i2c.ko。指令:modprobe i2c。

2023-11-16 18:20:39 54

原创 zcat查看操作系统配置项

zcat /proc/config.gz | grep XXX(需要查询的CONFIG)m:编译成驱动,通过加载驱动可把对应模块加载进内核。通过这个命令可看出内核里对应的配置项的值。加载:insmod XXX.ko。卸载:rmmod XXX.ko。n:没有设置该配置项。

2023-11-16 18:16:20 68

原创 USB协议学习

USB中文网 - USB技术开发交流 (usbzh.com)

2023-11-03 18:28:36 26

原创 I2C防挂死方案

只需要配置寄存器,可切换不同的模块,通过按照发送对应模块协议发送对应的脉冲去模拟对应的总线信号。1、CPU读取对端数据(如果是往对端写数据,总线是CPU拉着的,这时候CPU异常复位,总线也会跟着复位,触发不了挂死)在I2C总线通信的时候,如果对端器件没有复位端,在通信过程中CPU异常,导致数据没传输完,可能会造成类似挂死的状态。1、CPU异常复位可在使用i2ctransfer读取对端数据的时候,配置软复位寄存器触发挂死。5、该方案只是一个更优化的方案,是一个可选方案,并不是一个必须方案。

2023-11-03 18:20:47 552 1

原创 不一样的git log

可以把这个命令在.gitconfig这个文件下alias,还可以把一些常用的命令一起alias,例如git status等。

2023-10-13 09:49:52 28

原创 ftrace使用

spidev_test -s /dev/spidev0.1 (运行用户态工具,驱动调用到spidev_ioctl接口)7. 加卸载驱动,或者运行实例,让驱动程序走到要追踪的函数接口。2. 选用 function_graph 追踪器。1. 去到ftrace的目录。9. 查看trace日志。6. 打开ftrace。8. 关闭ftrace。3. 设置追踪的函数。4. 设置追踪的深度。

2023-09-04 15:18:49 53 1

原创 umount failed解决方法

检查修复文件系统:(fsck.ext4可检查和修复文件系统的完整性,坏块,丢失的链路,无效的inode等问题)当卸载文件系统失败的时候,有可能是块设备的缓冲区没有清空导致的。解决方法:umount -l /mnt。-l可强行将现在文件系统的缓存写回设备。插拔u盘的时候,盘符是有可能改变的。

2023-08-29 23:53:56 732 1

原创 启linux操作系统的时候限制内存

可以在grub的启动命令后面加入mem=XXXM这个参数即可。

2023-08-29 23:44:56 78 1

原创 替换内核rpm包

重启系统。

2023-08-29 23:41:09 70 1

原创 yum源配置

yum源所在路径:

2023-08-29 23:34:49 27 1

原创 devmem: mmap: Operation not permitted报错解决方法之一

config文件中设置了CONFIG_STRICT_DEVMEM=n才能获得对整个memory的访问权限,在默认情况下,CONFIG_STRICT_DEVMEM=y,这也就是为什么有的寄存器可以配置,有的却配置不了的原因。1、在/kernel/arch/arm64/configs/目录下,找到CONFIG_STRICT_DEVMEM该配置项所在的文件并且把值修改成n,再编译一个内核替换掉环境上的内核,即可正常使用devmem工具。

2023-08-29 23:29:26 2303 1

原创 服务器配置samba账号

3、检查samba状态(输入命令后打印有enable和running)5、修改密码(输入两次密码,第二次重复确认)4、打开samba配置文件,添加用户。1、先确定服务器上是否有yum源。6、本地创建映射网络驱动器。-a后面指定的是用户名。

2023-08-29 23:01:05 531 1

原创 dump acpi DSDT表

可查看操作系统下所有的acpi表。dump dsdt表。

2023-08-29 20:34:15 179 1

原创 Linux指令

readelf 可查看ELF格式文件的工具,查看二进制可执行文件、共享库、目标文件等。可以显示ELF文件各种信息,包括文件头、节表、符号表、重定位表等。strings 可用于在二进制文件提取ASCII字符串。包含程序的信息、调试信息、错误信息等。ldconfig 可用于配置、更新共享库。

2023-08-28 17:06:46 15

原创 call trace定位方法之一

calltrace是内核Oops问题的一部分,它是内核在发生错误时输出的一段调用栈信息,用于帮助开发人员定位问题。calltrace一般都是软件导致的问题。calltrace是提醒出现这个问题的风险性,而不是等出现这个问题才报calltrace,所以并不是所有的calltrace都会导致系统挂死。导致calltrace的原因有很多,常见的有:踩空指针,访问不存在的地址空间,中断异常等。addr2line -r tpm_tis_spi.ko 0x32c(最后的参数就是算出来的实际的符号的地址)

2023-08-14 22:23:57 4135

原创 request_irq 请求一个普通中断

在Linux内核中,requset_irq函数用于请求中断处理程序(IRQ)服务。其中,irqflag参数用于指定中断处理程序的类型,可以是IRQF_SHARED、IRQF_PROBE、IRQF_DISABLED、IRQF_SAMPLE_RANDOM等。例如GPIO,irqflag参数也可以等于GPIO的管脚的中断触发模式(rising、falling、both、high、low)。当irqflag参数为0时,表示请求的中断处理程序是一个普通的中断处理程序,没有特殊的标志或属性。

2023-08-14 21:31:36 111

原创 kill -9 杀不掉进程解决方法

当进程进入内核态的时候,通常会关闭中断(为了保证内核代码的原子性和可靠性),也会屏蔽所有的信号(防止信号处理程序在内核执行期间被调用,否则会导致不可预期的结果),包括SIGKIL,所以这个时候回使用kill -9发起的信号也一样会被屏蔽。但是信号会被记录在进程的信号挂起队列,进程切换回用户态的时会立即触发信号处理程序。在Linux中当你用kill命令向进程发送信号,并不是杀死的意思,-9表示无条件退出,但由进程自行决定是否退出,这就是为什么kill -9 终止不了系统进程和守护进程的原因。

2023-08-14 21:19:46 4918

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除