Linux 应用开发之杂碎
Linux 应用开发之杂碎
rjszcb
不断学习变成牛
展开
-
Linux 信号异步通知,kill_fasync,fasync,fasync_helper,signal,.之按键驱动中断异步通知应用层方式
在这个例子中:当mydev_read()有数据可读时,它调用mydev_handler(),mydev_handler()调用kill_fasync(),传入&async_queue异步通知链表,kill_fasync()遍历该链表,对每个回调都发送SIGIO信号,注册的进程收到SIGIO信号,知道有数据可读,进行读取。当异步事件发生时,驱动调用kill_fasync(),该函数会遍历fp链表中的所有回调,对每个回调,向对应的进程发送sig信号,这样,注册的进程就收到通知,进行后续IO操作。原创 2021-02-02 20:31:03 · 181 阅读 · 0 评论 -
Linux 提供了多种定时器机制,允许应用程序执行定时任务
注册信号触发处理函数,定时器触发时,发送SIGALRM信号,hander处理函数接收后,处理。Linux 提供了多种定时器机制,允许应用程序执行定时任务。setitimer 是其中之一,它允许设置定时器来在指定的时间间隔内定期触发信号。原创 2024-08-22 09:14:50 · 181 阅读 · 0 评论 -
Linux 支持程序在运行时动态加载和卸载共享库,动态链接库
Linux支持动态链接库(共享库)的概念,允许程序在运行时动态加载和卸载共享库。这有助于减小可执行文件的大小,共享代码,提高代码的可重用性。通过这个函数,搜索要调用的函数名,返回函数指针。原创 2024-08-22 09:08:41 · 198 阅读 · 0 评论 -
linux 应用层调用shell指令api.之popen 和system
popen 和system测试。原创 2023-11-21 16:43:25 · 253 阅读 · 0 评论 -
yffs2,jffs2、ext4,ubi根文件镜像的格式的区别和优缺点
yffs2,jffs2、ext4,ubi根文件镜像的格式的区别和优缺点,不同的介质,如nand,norflash,inad,emmc,不同的格式正在酝酿。原创 2021-07-14 15:07:25 · 1069 阅读 · 1 评论 -
linux C代码调用shell命令方法
主要有三种方法:exec函数簇,system函数以及popen函数,其中需要注意的是,exec函数簇的函数执行成功后是无返回的,一般需要和fork()函数同时使用。在使用时需要另外的fork一个进程。 popen() 函数通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程。这个进程必须由 pclose() 函数关闭,而不是 fclose() 函数。exec函数簇:函数原型:#include <unistd.h> extern char **原创 2021-06-21 15:57:11 · 927 阅读 · 0 评论 -
HiPQTools工具HiPQStitchingTool标定(二)
一、挑件海思文档重要描述1、拼接原理:使用HiPQTools工具HiPQStitchingTool进行图像拼接,就要先进行标定,确定相机之间的位置关系,和畸变校正,前面写的文章中,介绍了,使用opencv的surf特征匹配和最佳缝合线算法,进行处理,然后离线计算获得参数,查表法进行图像拼接存在局限性,只能适合静态的放置相机,和纹理丰富的场景,安防监控,不适合运动的场景,比如车载运动的全景场景。全景拼接的基本方法是将各路采集的图像按照对应的镜头模型投影到虚拟球面,进行拼接融合,然后再通过设置的投影方原创 2022-01-04 13:20:35 · 3505 阅读 · 12 评论 -
C语言开机后或第一次满足条件不再执行高级写法
g_char = SX_FALSE;int main(int argc, char *argv[]){ HI_S32 s32Ret = 0; int fd0 = -1; char *filename0 = NULL; char buf[10]={0}; int audioret = -1; filename0 = "/dev/tlv320aic31"; SX_U32 ts0 = get_sys_ms(); SX_U32 oldMs = ts0; SX_U32原创 2021-11-10 17:15:15 · 613 阅读 · 0 评论 -
linux 应用层,执行shell脚本命令
linux 应用层,执行shell脚本命令1、system如:system("./root/ko/reloadko.sh");在我的根文件系统下,存在一个脚本文件,reloadko.sh,重新卸载,加载音频驱动。这个脚本在root/ko目录下,当然,这些ko驱动也要放在ko目录下,否则,运行不了,找不到。或下面的命令:hisi的支持的对gpio操作的shell命令system("himm 0x12345678 0");system函数:函数原型:#include <stdlib原创 2021-11-18 17:24:09 · 599 阅读 · 0 评论 -
Hi3521DV100 编译环境和SDK安装
一、安装交叉编译工具链\Hi3521DV100R001C01SPC040\ReleaseDoc\ReleaseDoc\zh\01.software\board\目录下找到指导文档,PDF文件1.3.2 安装交叉编译工具链将hisi提供的SDK包解压开,在Hi3521DV100R001C01SPC040/arm-hisiv500-linux,有一个压缩包,解压开得到交叉编译工具包执行命令,sudo ./arm-hisiv500-linux.install,进行安装,安装完将会看到在PATH=/o原创 2021-06-22 14:20:04 · 713 阅读 · 1 评论