- 博客(51)
- 资源 (6)
- 收藏
- 关注
原创 linux应用睡眠之nanosleep
nanosleep()则是Linux中的系统调用,它是使用定时器来实现的,该调用使调用进程睡眠,并往定时器队列上加入一个timer_list型定时器,time_list结构里包括唤醒时间以及唤醒后执行的函数,通过nanosleep()加入的定时器的执行函数仅仅完成唤醒当前进程的功能。Linux中并没有提供系统调用sleep(),sleep()是在库函数中实现的,它是通过调用alarm()来设定报警时间,调用sigsuspend()将进程挂起在信号SIGALARM上。select的精度是微妙,精确。
2023-11-24 15:08:01 279
原创 一次性 strip文件系统的库和可执行文件
find rootfs/ -type f -exec sh -c “file {} | grep -Pi ‘: elf (32|64)-bit’ > /dev/null” ; -print | xargs -n1 arm-linux-nt9856x-strip
2023-11-17 10:35:15 36
原创 glibc内存泄漏
某些应用程序频繁调用malloc函数申请内存空间,且申请空间的大小差别比较大,使用完成后通过free函数释放内存空间,但内存空间依然缓存在glibc中,没有归还操作系统,导致系统内存不足。
2023-11-02 10:13:19 74
原创 I2c控制器数据收发函数举例
i2c_transfer–>__i2c_transfer–>master_xfer(i2c控制器驱动初始化的时候注册的函数)2、写数据和读数据都是通过master_xfer该函数设置中断标志位,使能中断,然后注册的中断处理函数会读写数据。1、写数据,master_xfer函数直接写寄存器发送数据,读数据,配置寄存器使能中断,在中断处理函数中接收数据。各个芯片的实现不一样,大致分为两种。以下是第二种方式的举例说明。
2023-10-28 15:38:39 86
原创 uart串口协议
并且由于数据是在传输线上定时的,不同的设备之间可能时钟存在偏差,偏差的积累可能会导致数据位的传输错误,所以数据定时发出停止位可以有效校正时间的偏差,停止位越多,校正的效果越好。2)当有数据发送时,先发送起始位,即将TxD拉低并维持1位时间,接收方在检测到起始位下降沿,等待1.5位后开始一位一位检测数据。3)发送数据,UART数据一帧可以是5,6,7,8位等,一般是8bit,一个字节。数据位:数据位的宽度可能有5,6,7,8位,一般8位会用的比较广泛(跟ACSII码有关,一个ASCII字符为8bit)。
2023-10-28 11:28:48 24
原创 spi协议简化说明
spi通信是全双工SPI接口一般使用四条信号线通信:SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)MISO: 主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。MOSI: 主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。SCLK:串行时钟信号,由主设备产生。CS/SS:从设备片选信号,由主设备控制。它的功能是用来作为“片选引脚”,也就是选择指定的从设备,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。
2023-10-28 11:08:37 31
原创 spi_async 与spi_sync区别
spi_async 异步:使用spi_async()函数,它也可以用于原子上下文spi_sync 同步:使用 spi_sync函数,它可能处于睡眠状态,不用在中断上下文中,借助完成量机制,完成spi的同步通信操作(主要借助完成量的complete、wait_for_completion这两个接口,休眠不能用在中断上下文,中断或原子上下文可以用try_wait_for_completion()和completion_done()都可以在IRQ或原子上下文中安全调用)
2023-10-26 10:33:26 358
原创 关闭getty的自动登录
不然终端串口每次登陆的时候,输入用户名就自动登录了,不用输入密码,telnet还是要输入密码的。loginutils/getty.c注释掉下面的代码,busybox编译的时候修改文件。
2023-10-08 14:45:14 144
原创 irq_set_chained_handler_and_data和devm_request_irq区别
irq_set_chained_handler_and_data和devm_request_irq区别
2023-09-18 10:49:51 291
原创 内存映射IO空间的读写函数readl_relaxed和readl差别
readX()/writex()和readX_relaxed()/writeX_relaxed()
2023-09-15 13:50:21 292
原创 version magic ‘5.10.0 SMP mod_unload aarch64‘ should be ‘5.10.0-svn199 SMP
svn上传之后下载编译内核的时候内核版本会多一个svn199的后缀,但是驱动没有重新编译,这个时候就对不上了。注释 掉# echo “$res”
2023-08-03 16:07:49 527
原创 ip6tables v1.4.21: can‘t initialize ip6tables table `filter‘: Table does not exist
ip6tables v1.4.21: can’t initialize ip6tables table `filter’: Table does not exist (do you need to insmod?)Perhaps ip6tables or your kernel needs to be upgraded.
2023-08-03 15:57:29 540
原创 海思芯片内核支持usb转网络功能,iptable转发请求
3、这样访问主机192.168.8.12:8080端口的时候就能映射到usb从机的ip7.19.7.20:80端口。
2023-07-24 09:43:50 406
原创 错误iptables v1.6.1: can‘t initialize iptables table `nat‘: Table does not exist
内核增加以下两个配置,最后CONFIG_IP_NF_NAT=y。
2023-07-21 17:13:59 1010
Hi3516DV300 专业�-Smart IP Camera SoC 用户指南+HiMPP媒体处理软件 V4.0 开发参考
2023-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人