按类别查询搜索结果
关于关键词 的检测结果,共 16553
NEXPON | 2019-02-04 23:26:36 | 阅读(3190) | 评论(0)
软中断是可以被硬中断打断的,有一点需要注意:假设当前有3个softirq处于pending状态,然后__do_softirq正在处理第1个软中断,这个时候硬中断发生了,硬中断里面trigger了1个新的更高优先级的softirq,当中断返回的时候,检查in_interrupt不为0,所以不会重新调用do_softirq,而是返回中断前的__do_softirq中。软中断的注...【阅读全文】
NEXPON | 2019-02-03 16:29:44 | 阅读(2640) | 评论(0)
网卡是用结构体net_device表述的,通过函数register_netdev来注册具体的网卡。mini2440的的网卡放在driver/net/dm9000.c中。网卡的数据发送在net_device->netdev_ops中定义。net_device->netdev_ops也是一个结构体(const struct net_device_ops *netdev_ops),其定义了如下操作:struct net_device_ops { n...【阅读全文】
NEXPON | 2019-02-03 15:13:47 | 阅读(1750) | 评论(0)
网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。这一层的存在使得上层协议独立于具体的设备。【阅读全文】
NEXPON | 2019-02-02 12:56:12 | 阅读(2570) | 评论(0)
Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。【阅读全文】
sailingnew | 2019-01-31 15:54:13 | 阅读(1010) | 评论(0)
gdbserver linux【阅读全文】
aquester | 2019-01-29 11:21:27 | 阅读(7620) | 评论(0)
 在main函数中,return和exit经常混用,两者的一个区别:return会执行statck unwinding,而exit不会。如果触发了信号,exit也同样不会做stack unwinding,除此之外异常如果没有相应的catch,也同样不会有栈展开(stack unwinding)。原因是C++编译器只会在遇到“}”或“return”时,才会安插...【阅读全文】
aquester | 2019-01-27 23:41:14 | 阅读(73320) | 评论(0)
目录1. 前言 22. 结论 23. volatile应用场景 34. 内存屏障(Memory Barrier) 45. setjmp和longjmp 41) 结果1(非优化编译:g++ -g -o x x.cpp -O0) 52) 结果2(优化编译:g++ -g -o x x.cpp -O2) 66. 不同CPU架构的一致性模型 67. x86-TSO 78. C++标准库对内存顺的支持 7...【阅读全文】
aquester | 2019-01-25 19:53:05 | 阅读(46830) | 评论(0)
在进行Linux C/C++编程时,可调用的sleep函数有好多个,那么究竟应当调用哪一个了?下表列出了这几个函数间的异同点,可作为参考: 性质精准度线程安全信号安全...【阅读全文】
aquester | 2019-01-24 14:53:04 | 阅读(16191) | 评论(0)
在C和C++中,变参格式化函数虽然非类型安全,但却十分便利,因为得到广泛使用。对于常见的size_t类型要用“%zu”,ssize_t用”%zd“,int64_t用“% ”PRId64,uint64_t用“% ”PRIu64,long用"%ld",long long用"%lld",示例:const int64_t datetime = INT64_C(20190124144930);printf("datetime: %" PRId64"\n", dateti...【阅读全文】
aquester | 2019-01-24 14:36:09 | 阅读(48560) | 评论(1)
AES为Advanced Encryption Standard的缩写,中文名:高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,用来替代DES。基于std::string实现的C++包装类,使用得应用AES算法十分简单。完整源代码链接:https://github.com/eyjian/libmooon/blob/master/include/mooon/utils/aes_helper.h...【阅读全文】
密林三木 | 2019-01-13 12:32:54 | 阅读(4200) | 评论(0)
虚拟机硬件配置:CPU: 4Core内存: 4G关机状态下新增两块网卡修改虚拟机配置:修改文件:DPDK-FWD.vmxhpet0.present = "true"numa.vcpu.maxPerVirtualNode = "1"ethernet1.virtualDev = "vmxnet3" #e1000e只支持网卡单队列,vmxnet3支持网卡对队列,DPDK_18_05_1也支持此网卡...【阅读全文】
sxwdj521 | 2019-01-10 11:46:51 | 阅读(2950) | 评论(0)
【C/C++】 BLE状态
dixiaobing | 2019-01-10 10:28:33 | 阅读(660) | 评论(0)
链路层的状态机一共有五种状态:    1.standby State    2.Advertising State    3.Scanning State    4.Initiating State    5.Connection State    链路层的状态机同一时刻只能处于一种状态...【阅读全文】
Dong_绍宁 | 2018-12-25 14:48:34 | 阅读(2100) | 评论(0)
#if 属于条件编译指令的一种,意义是,如果#if后面的表达式为真,就编译接下来的内容,否则跳过。需要以#endif 结尾。出现的意义是:注释用的/**/会与邻近的/**/匹配,导致代码不够强壮。添加 #if 0 。【阅读全文】
fangdikui | 2018-12-21 20:09:57 | 阅读(4510) | 评论(0)
       前言:嵌入式项目需要升级功能,升级范围有应用升级,系统升级,外设固件升级,升级包的下载等,每一项升级都包含以下流程,检测安装包,提示用户是否升级,升级过程中提供进度,提示用户升级完成。      经过几次尝试后,发现用if多个分支已不能很好的管...【阅读全文】
轨迹16 | 2018-12-12 16:19:31 | 阅读(43210) | 评论(5)
#include <stdio.h>struct Test {int len;char data[0];};int main(){char str[] = "abc";Test* t = (Test*)malloc(sizeof(struct Test) + sizeof(str));t->len = sizeof(str);memcpy(t->data, str, sizeof(str));printf("len: %d\n", t->len);printf("data: %s\n", t->data);free(t);}...【阅读全文】
zds05 | 2018-12-06 15:17:30 | 阅读(840) | 评论(0)
linux动态库依赖关系,你知道多少,你知道你经常链接一些无用的so进来吗,他们对程序有哪些影响。本文正是探讨这些问题。使用源码例子,呈现给你,娓娓道来【阅读全文】
zds05 | 2018-12-06 15:16:03 | 阅读(830) | 评论(0)
我们知道linux链接so有两种途径:显示和隐式。所谓显示就是程序主动调用dlopen打开相关so;这里需要补充的是,如果使用显示链接,上篇文章讨论的那些问题都不存在。【阅读全文】
可怜的猪头 | 2018-12-05 16:20:26 | 阅读(1000) | 评论(0)
转自博客 http://blog.chinaunix.net/uid-2512245-id-3549886.html     当一个源程序由多个源文件组成时,根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。 1 内部函数(又称静态函数)     如果在一个源文件中定义的函数,只能被本文件中的函...【阅读全文】
aquester | 2018-12-05 11:26:51 | 阅读(3850) | 评论(0)
寄存器说明:rdi 存第1个参数(值或地址)rsi 存第2个参数rdx 存第3个参数rcx 存第4个参数r8 存第5个参数r9 存第6个参数rax 第1个返回值r...【阅读全文】