linux
昂德森科技
因为热爱,所以拼搏。
展开
-
libmodbus使用
然后编译,一个是头文件路径,一个是动态库路径,我在编译完后,移植到arm开发板上遇到一个问题/dev/ttyUSB3找不到了,就是串口直接都不见了,最后拔电重启一下就好了,接着配置modbus-slave。它的安装可以,但是编译测试看不太懂,我没跟着它的编译,完了后把/lib下的。执行成功如下,读取出了保持寄存器的值。放到开发板的/usr/lib下。原创 2024-05-05 16:13:04 · 423 阅读 · 0 评论 -
嵌入式Linux串口通信
显示出所有的串口,这些串口能够使用的前提是你必须连接好硬件,我刚开分配了一个RS232串口用作调试,用SecureCRT上连接了网口和RS232的串口用作终端连接开发板,以为这样就可以实现开发板给XCOM串口软件发送消息,我还试着以为用在PC端口使用vspd虚拟两个端口,一个com1,一个com2,然后理所当然认为com2映射到了ttyUSB2,但是这样是错误的,因为你硬件连接的都不对,这一点困扰了我很久,原创 2024-04-17 20:08:22 · 378 阅读 · 0 评论 -
遇到ubuntu设置交叉编译环境的问题
今天交叉编译器一直没安装成功,环境变量也配置了还是不对,最后发现Ubuntu是64位的要装。原创 2024-01-31 22:04:13 · 619 阅读 · 0 评论 -
进程间的通信-管道
管道是UNIXIPC的最老形式。并且所有的UNIX系统都提供此通信机制,但是管道由两种限制:1 它是双工的,只能向一个方向流动。2 它只能在具有公共祖先的进程之间使用,一个管道由一个进程创建,然后该进程fork,出来的父子进程之间就可以用管道管道是由pipe函数创建的#include <unistd.h>int pipe(int fileds[2]);//成功返回0 失败-1fileds[0]是为读而打开fileds[1]是为写而打开fileds[1]的输出是filed是[0原创 2021-08-05 22:19:28 · 92 阅读 · 0 评论 -
unix漏桶的实现
漏桶就是好比一个装有水的桶,往下漏水,但是一次只能漏一点点水,直到漏完,就好比程序中有100000条数据也只能一次读10条那样读。#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#incl原创 2021-08-03 16:30:25 · 79 阅读 · 0 评论 -
MFC中stdafx.h
这个大佬对这个头文件理解很深刻,转载一下https://www.cnblogs.com/MuyouSome/p/3380033.html转载 2021-08-03 11:10:38 · 216 阅读 · 0 评论 -
具有竞态条件的程序
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <unistd.h>static void a1(char*);int main(void){ pid_t pid; if((pid=fork())<0){ perror("fork error\n"); }else if((pid=fork())==0){ a1("out from child\原创 2021-08-03 08:31:57 · 90 阅读 · 0 评论 -
fork函数
由fork产生的新进程叫做子进程,该函数被调用一次,但是返回两次,子进程会返回0,而父进程返回子进程的进程ID。子进程是父进程的复制品,子进程获得父进程数据空间、堆和栈的复制品,这只是子进程的拷贝,父进程不与他共享这些存储空间部分,如果正文段是可读的,那么父子进程只共享正文段。#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>int glob=原创 2021-08-02 21:46:29 · 107 阅读 · 0 评论 -
longjmp对自动 寄存器 易失变量的影响
简单来说setjmp函数,如果直接调用返回0,如果从longjmp调用返回非0.longjmp 函数的功能是从 jmp_buf 结构体中恢复由 setjmp 函数保存的上下文,该函数不返回,而是从 setjmp 函数中返回。参数 env 是由 setjmp 函数保存过的上下文。参数 val 表示从 longjmp 函数传递给 setjmp 函数的返回值,如果 val 值为0, setjmp 将会返回1,否则返回 val。longjmp 不直接返回,而是从 setjmp 函数中返回,longjmp 执原创 2021-08-02 17:10:37 · 127 阅读 · 1 评论 -
命令行参数
c语言中int main(int argc,char **argv)到底是什么:其实第一个参数是标准输入的参数个数,第二个是标准输入的参数内容。看例子:#include <stdio.h>#include <stdlib.h>int main(int argc,char** argv){ for(int i=0;i<argc;i++){ printf("argv[%d]: %s\n",i,argv[i]); } exit(0);}...原创 2021-08-02 15:36:25 · 73 阅读 · 0 评论 -
atexit函数
#include <stdlib.h> int atexit(void (*function)(void));这个函数如同Java中的析构函数一样,先调用的后执行,后调用的先执行。例子如下:#include <stdlib.h>#include <stdio.h>static void my_exit1(void),my_exit2(void);int main(void){ if(atexit(my_exit2)!=0){ perror("..原创 2021-08-02 15:26:58 · 94 阅读 · 0 评论 -
oudhdr.h无法找到与Windows与ubuntn复制粘贴问题的解决
unix学习过程中找不到ourhdr.h文件首先我先来介绍一下什么是ourder.h文件,这就是作者自己写的一个库,比如unix或Linux中unistd.h这就是系统自己的函数库,这些库函数都在/usr/include中,所以我们要想编译含有ourhdr.h的c文件,必须手动导入库以下是ourhdr.h的库文件:/Our own header, to be included after all standard system headers/#ifndef __ourhdr_h#define原创 2021-05-31 20:19:17 · 179 阅读 · 0 评论