嵌入式
cao849861802
这个作者很懒,什么都没留下…
展开
-
linux通过原始套接字直接发送arp请求报文,linux并不能学习到arp表项
而是通过代码直接发送icmp报文,发送icmp报文如果发现没有arp信息的时候系统会自己发送arp请求,通过这样的方式linux系统才能学到arp表项也就是arp -a才有ping的表项;问题:由于我这边需要让linux系统学习到arp表项,所以想着通过代码直接发送arp请求(利用原始套接字),其他设备回复arp报文之后,我以为linux就会记录到arp表项,现象是arp表项并没有;原创 2023-02-21 13:30:20 · 643 阅读 · 0 评论 -
ubuntu apt-get源替换
1.备份源文件cp /etc/apt/sources.list /etc/apt/sources.list.bak2. 修改apt-get源文件vi /etc/apt/sources.list删除文件中所有内容,然后替换为如下内容;deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.ustc.edu.cn/ubuntu/ xenia.原创 2021-11-24 16:40:21 · 1300 阅读 · 0 评论 -
redis ,hiredis, XREAD 使用代码实例
#include "stdio.h"#include "stdlib.h"#include "string.h"#include "hiredis.h"static redisReply *redisCliRceiveMsg(redisReply *reply){ int i = 0; redisReply *childReply = NULL; redisReply *retReply = NULL; while(reply) { if(reply->type == .原创 2021-10-20 15:48:49 · 686 阅读 · 0 评论 -
net-snmp,Mib2c构建.C和.H文件,标量,一维表量,二维表量,表量索引
1.移动mib文件到mibs下Mibs文件夹路径:/media/build/net-snmp/net-snmp/share/snmp/mibs2.Export新的mib文件export MIBS=INFO-DEV-MIBmib文件名为:INFO-DEV-MIB.txt3.查看mib文件书写格式是否正确snmptranslate -Tp -m /media/build/net-snmp/net-snmp/share/snmp/mibs/ZINFO-DEV-MIB.txt如果这一原创 2021-10-15 13:16:49 · 794 阅读 · 0 评论 -
Net-snmp安装开发流程
1. 下载net-snmp包(源码)官网:Net-SNMPDownload:Net-SNMP我这里下载的是version:5.9.1,文件名:net-snmp-5.9.1.zip2. 解压net-snmp-5.9.1.zipunzip net-snmp-5.9.1.zip如果没有unzip命令则安装zip,apt-get install zip3.配置编译net-snmpcd net-snmp-5.9.1#./configure后其他选项可以直接回车#--pre原创 2021-10-15 11:29:35 · 2724 阅读 · 0 评论 -
onos安装
1.下载网址onos源码下载git clone https://gerrit.onosproject.org/onosbazel工具下载原创 2021-09-13 10:08:47 · 1488 阅读 · 2 评论 -
LINUX 格式输出系统时间代码
#include <stdio.h>#include <string.h>#include <time.h>int main(){ time_t timep; struct tm *tmp; time(&timep); tmp = localtime(&timep); printf("%d-%d-%d %d:%d:%d\n",1900 + tmp->tm_year,1 + tmp->tm_.原创 2021-08-25 10:34:25 · 486 阅读 · 0 评论 -
no buffer space available,errno==55,ENOBUFS解决方法
这个报错的原因是默认的Linux设置的socket的发包的skb的设置的大小太小了,而代码这边短时间操作太多的发送,然后导致内核的skb未来的及释放就会发生这个报错;参考:https://blog.csdn.net/cao849861802/article/details/117713712解决办法:1.可以通过减少报文的发送,或者延长发包的间隔的办法,让底层慢慢释放skb的空间;2.通过上层配置修改skb的可分配空间的大小,这个值默认是8 * 1024:发送socket:int si原创 2021-06-08 19:34:59 · 3410 阅读 · 0 评论 -
PING SO_SNDBUF,配置ICMP的时候的内核底层相关代码
icmp与SO_SNDBUF相关的发送部分:函数调用链为:icmp_send() -> icmp_push_reply() -> ip_append_data() -> __ip_append_data()在__ip_append_data()函数中的其中一段代码为:if(atomic_read(&sk->sk_wmem_alloc)) <= 2 * sk->sk_sndbuf) skb = sock_wmalloc(sk,原创 2021-06-08 19:24:18 · 754 阅读 · 0 评论 -
c语言十六进制打印结构体
使用十六进制打印结构体的时候发现每次打印都是出来八个字符,如下:typedef struct temp{ int aa; long bb;}TEMP;void printMsg(){ int i; TEMP message; char *fp = (char *)&message; for(i = 0; i < sizeof(TEMP); i++) { printf("%02x ",fp+i); }原创 2021-05-17 13:13:24 · 2237 阅读 · 0 评论 -
imx6ul usb转串口调试(代码)
这里需要注意的是,当usb转串口模块插到usb上面/dev下面才能有设备,拔了设备就没了,所以操作的时候要注意。#include <stdio.h> //标准输入输出,如printf、scanf以及文件操作#include <stdlib.h> //标准库头文件,定义了五种类型、一些宏和通用工具函数#include <unistd.h> //定义 read write close lseek 等Unix标准函数#in.原创 2020-12-24 10:15:57 · 819 阅读 · 0 评论 -
imx6ul gpio中断接收(代码)
gpio这里的调试要注意的是管脚的功能配置,需要更改设备树文件;更改设备树文件:https://blog.csdn.net/cao849861802/article/details/111604277然后注意gpio的计算比如gpio2_8(2-1)*32 + 8 = 40这个计算公式可以算出操作的gpio管脚是哪个。#include "fcntl.h"#include "stdio.h"#include "poll.h"#include "string.h"#includ.原创 2020-12-24 10:13:00 · 433 阅读 · 0 评论 -
imx6ul uart8路串口调试(代码)
uart这里的调试要注意的是管脚的功能配置,需要更改设备树文件;更改设备树文件:https://blog.csdn.net/cao849861802/article/details/111604277其他问题:这里是操作的232的配置,如果想做485的最好用硬件来直接做485,因为我这边用软件尝试了几次都未成功。#include <stdio.h> //标准输入输出,如printf、scanf以及文件操作#include <stdlib.h> .原创 2020-12-24 10:07:54 · 778 阅读 · 0 评论 -
imx6ul i2c调试(代码)
i2c这里的调试要注意的是管脚的功能配置,需要更改设备树文件;更改设备树文件:https://blog.csdn.net/cao849861802/article/details/111604277设备树文件修改好了,才能在/dev下看到i2c设备比如i2c-0,i2c-1;我这边读写设备是个e2prom,然后注意地址和传入长度,代码中的设备地址是从第七位开始的,因为读写位已经整合到了其他地方,所以地址有效的只有七位,第一位设置一定为0#include <errno.h&g..原创 2020-12-24 09:55:09 · 573 阅读 · 2 评论 -
imx6ul 设备树文件
这个设备树文件的路径名字为:linux-4.1.15\arch\arm\boot\dts\imx6ul-14x14-evk.dts然后修改里面的管脚要参照的文件是:linux-4.1.15\arch\arm\boot\dts\imx6ul-pinfunc.h这个h文件中的内容标识了各个引脚可以配置成什么功能比如:MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28MX6UL_PAD_UART4_RX_DATA__I2C1_SDA这两个,在下划线前面的内容是相同的,也就.原创 2020-12-24 09:47:50 · 2402 阅读 · 0 评论 -
imx6ul can调试(代码)
下面是我的代码,然后代码呢实际的使用 需要注意,如果重新设置了can的引脚对应关系,需要重新配置设备树文件;然后注意can0SystemInit和can1SystemInit中的频率,125000,这个可以修改和从机相同的频率用来通信;can_id这个是表示can的id这个发送接收的对应要注意;#include <sys/ioctl.h>#include <fcntl.h>#include <unistd.h>#include <sys/ioc原创 2020-12-24 09:20:36 · 978 阅读 · 0 评论