自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (9)
  • 收藏
  • 关注

原创 jflash合并stm32f103之bin文件及hex文件

合并bin格式文件:1、file-> open data file, 选择boot文件, 地址从8000000开始。2、file-> merge data file, 选择app文件, 地址从程序开始执行地址开始,根据keil mdk工程里设置的地址来填写, 比如8004000。3、file-> save data file as... ,保存合并后文件(可选相应...

2019-07-26 15:27:55 1344

转载 C++又一坑:动态链接库中的全局变量

extern "C" { void dll_func() { foo_class::_.m += 100; printf("&foo_class::_ = 0x%llx, foo_class::_.m = %d\n", &foo_class::_, foo_class::_.m); } } ...

2019-07-25 11:00:49 3959

转载 共享库中的位置无关代码(PIC)

原作者:Eli Benderskyhttp://eli.thegreenplace.net/2011/11/03/position-independent-code-pic-in-shared-libraries/在之前的文章里我已经描述过在将共享库载入程序地址空间时需要特殊的处理。简而言之,在链接器创建共享库时,它不能预先知道这个库将在哪里载入。这给在库里访问数据与代码带来了麻烦,应该使...

2019-07-25 10:38:15 690

转载 Load-time relocation of shared libraries

This article's aim is to explain how a modern operating system makes it possible to use shared libraries with load-time relocation. It focuses on the Linux OS running on 32-bit x86, but the general pr...

2019-07-25 10:33:55 324

原创 STM32F103 SPI 主机模式分析

STM32F103的SPI模块,跟通用SPI芯片的工作模式有些区别,手册上也没有特别注明,所以光看手册有时候还不容易理解。STM32上的不同之处在于SPI模块工作在主机模式时,模块内部有一个控制脚必须由外部给它保持为高电平状态才能工作,为了方便描述这里就简称为CS_ENABLE脚。有了这个概念,里面的各种逻辑关系就比较清晰了。这里主要分析主机模式,从机模式没有什么特别之处,就简单带过了。先...

2019-07-22 19:07:40 1909

转载 STM32的启动分析

2019-07-22 12:29:11 245

转载 FreeRTOS的中断优先级配置小结

NVIC 的全称是 Nested vectored interrupt controller,即嵌套向量中断控制器。对于 M3 和 M4 内核的 MCU,每个中断的优先级都是用寄存器中的 8 位来设置的。 8 位的话就可以设置 2^8 = 256 级中断,实际中用不了这么多,所以芯片厂商根据自己生产的芯片做出了调整。比如 ST的 STM32F1xx 和 F4xx 只使用了这个 8 位中的高四位...

2019-07-22 11:44:23 981

转载 GNU 汇编语言

转自http://www.ibm.com/developerworks/cn/linux/l-assembly/一、简介作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。...

2019-07-22 11:14:09 3737 1

转载 可变参数__VA_ARGS__使用和va_list使用小结

1. #用来把参数转换成字符串#define P(A) printf("%s:%d\n",#A,A);#define SQUARE(x) printf("The square of "#x" is %d.\n", ((x)*(x)));2. ##运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组合成单个语言符号3. __VA_ARGS__ 是一个可变参数的宏,很...

2019-07-22 11:10:22 1571

原创 AIR720串口2收发数据问题

串口2收发数据测试时发现有时候完全没反应,查了很久的代码没找到原因,偶尔发现是供电不足引起的,因为4G模块连上USB口的话容易自动给电脑联网,浪费4g流量,所以升级完程序就断开了,结果导致供电不足,其他模块可能没问题,但串口模块就是不行,插上后问题解决,串口收发可靠稳定。...

2019-07-21 18:26:23 874

原创 编译成功但链接失败的原因

编译没有报错,但连接时出问题,错误提示很离谱,不是普通的找不到相关函数的错误,根本看不懂。仔细核对源代码,发现内部使用了自己的内存管理函数iot_os_malloc和iot_os_free,若果使用malloc和free函数,虽然编译不报错,但连接时会报奇怪的错误,替换后就没问题了。...

2019-07-21 18:23:23 2544

转载 安卓USB绑定RNDIS驱动的详细安装教程

安卓USB绑定RNDIS驱动怎么安装?大家知道我们的手机上有一个USB共享上网的功能,就是电脑可以通过数据线连接手机,然后手机USB共享网络,这样电脑就可以使用手机连接的WIFI上网了,下面我们来看看详细的操作过程方法/步骤 1 大家知道我们的手机上有一个USB共享上网的功能,就是电脑可以通过数据线连接手机,然后手机USB共享网络,这样电脑就可以使用手机连接的 WIFI上网了,当然有...

2019-07-16 20:21:23 6445 1

转载 memccpy

2019-07-16 16:54:09 1511

转载 物联网协议Coap协议介绍

COAP协议简介Coap(Constrained Application Protocol)是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252。COAP名字翻译来就是“受限应用协议”,顾名思义,使用在资源受限的物联网设备上。物联网设备的ram,rom都通常非常小,运行TCP和HTTP是不可以接受的。COAP协议特点1 COAP协议网络传输层由TCP改为UDP。C...

2019-07-15 20:22:09 1141

转载 C 库函数 - vprintf()

描述C 库函数 int vprintf(const char *format, va_list arg) 使用参数列表发送格式化输出到标准输出 stdout。下面的实例演示了 vprintf() 函数的用法。#include <stdio.h>#include <stdarg.h>void WriteFrmtd(char *format, ...)...

2019-07-15 10:13:25 506

转载 c语言中%hu,%hx是什么意思

这是输出格式符%hu代表以 unsigned short格式输出整数%hx 代表以16进制的 输出short类型的整数比如printf("%hu\n",-30); 会输出 65506printf("%hx\n",-30); 会输出FFE2// 结构体struct sockaddr_in sockaddr4;sizeof(struct sockaddr_in);sizeof(soc...

2019-07-15 09:57:04 19712 1

转载 拔掉网线时Socket的检查方法

最近在做有关于TCP采集程序时,发现在客户端与服务器通过TCP socket进行通信的时候,如果客户端应用程序正常或者异常退出时,服务器都可以在对应的socket通信连接上获得响应(如返回0,或者抛出异常)。但是,如果在客户端的网线被拔掉的情况下,那么默认情况下,服务器端需要很长的时间才会知道客户端的网线断掉。对于许多服务器应用程序来说,这么长的反应时间是不能允许的,在这种情况下通常使用“心跳机...

2019-07-11 16:48:55 1694

转载 recv函数返回值总结

函数原型:int recv( SOCKET s, char *buf, int len, int flags)功能:不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。参数一:指定接收端套接字描述符;参数二:指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据;参数三:指明buf的长度;参数四 :一般置为0。阻塞与非阻塞recv返回值没有区分,都...

2019-07-11 16:25:26 1356

转载 TCP网络编程中connect()、listen()和accept()三者之间的关系

https://blog.csdn.net/tennysonsky/article/details/45621341基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下:连接详情:connect()函数对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是...

2019-07-11 16:11:58 200

转载 非阻塞connect的代码示例

int conn_nonb(int sockfd, const struct sockaddr_in *saptr, socklen_t salen, int nsec){ int flags, n, error, code; socklen_t len; fd_set wset; struct timeval tval; flags ...

2019-07-11 16:06:11 170

转载 浅谈多进程多线程的选择(转)

关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更加合适就...

2019-07-11 16:03:13 166

转载 linux中read,write和recv,send的区别(转)

1、recv和send函数提供了和read和write差不多的功能。但是他们提供了第四个参数来控制读写操作.int recv(int sockfd,void *buf,int len,int flags)int send(int sockfd,void *buf,int len,int flags)前面的三个参数和read,write相同,第四个参数能够是0或是以下的组合:...

2019-07-10 20:25:57 790

转载 sockaddr和sockaddr_in详解

2019-07-10 20:24:15 1480

转载 linux网络编程二十:socket选项:SO_RCVTIMEO和SO_SNDTIMEO

2019-07-10 20:21:18 1280

转载 inet_aton和inet_network和inet_addr三者比较-《别怕Linux编程》之五

http://roclinux.cn/?p=1160知识背景:210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的IP地址。英语叫做binary data。(其实binary是二进制的意思)问题所...

2019-07-10 20:18:20 1006

原创 一个可以使用的公用MQTT测试服务器

找了很久才搜到,用mqttfx工具亲测通过:

2019-07-09 18:04:05 7181 4

原创 MQTT客户端工具MQTTfx

2019-07-09 17:18:31 1837

转载 Linux下动态链接库so文件覆盖导致coredump

1.为什么cp的方式更新运行中进程的so,程序会coredump 2.采用什么方式更新已经加载了的so,就可以避免coredump我们的公共组件绝大部分都支持so形式的自定义插件,比如s++,qzhttp,ttc。在不停进程更新so的时候往往会产生coredump,并且肯定core得莫名其妙,core得让人心碎。先看一下用cp的方式更新so的时候发生了什么事情strace cp ...

2019-07-09 12:28:16 1019

转载 为什么cp新的so文件替换老的so,程序会core掉的根本原因是什么?

2019-07-09 12:26:07 587

转载 hostent结构体图解

2019-07-09 11:07:17 444

转载 说一说为什么gethostbyname用完后不用释放内存

2019-07-09 11:03:33 973

转载 socket编程之gethostbyname获取IP列表和Host别名列表

gethostbyname 函数原型:struct hostent FAR * WSAAPI gethostbyname( _In_z_ const char FAR * name );gethostbyname 参数为一个域名,返回一个指向hostent 的指针hostent结构体内部包含了主机名、别名、IP地址列表等内容struct hostent { ...

2019-07-08 20:13:09 2102

转载 socket编程之inet_addr和inet_ntoa

inet_addr将字符串形式的IP地址 -> 网络字节顺序 的整型值inet_ntoa网络字节顺序的整型值 ->字符串形式的IP地址#define _WINSOCK_DEPRECATED_NO_WARNINGS#include<WinSock2.h>#include<iostream>using namespace std;#pragm...

2019-07-08 20:09:40 2757

原创 MQTT发布消息核心流程之一

2019-07-08 19:58:17 1385

原创 MQTT protocol level的处理

2019-07-08 19:48:37 737

转载 在C++的类中封装多线程

在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 在C语言中,我们使用pthread_create创建线程,线...

2019-07-07 18:26:07 1463

转载 C++之全局函数和成员函数互相转换

解析:成员函数会用this指针自动隐藏第一个操作数(左操作数)1、把全局函数转化成成员函数,通过this指针隐藏左操作数。  Test add(Test &t1,Test &t2) ==> Test add(Test & t2);2、把成员函数转化成全局函数,多了一个参数  vpid printAB() ==> ...

2019-07-07 18:22:42 1395

转载 几种用函数指针方式来访问类成员函数的方法总结

前提:假设成员函数不访问类的成员变量。环境:DEV-C++,别的环境有可能编译无法通过。代码如下:#include <iostream>using namespace std;class A{public: int add(int a, int b) { int c = a + b; return c; }...

2019-07-07 18:20:51 1888

转载 c++成员函数指针强制转换为一般函数指针出现问题

2019-07-07 17:50:05 1721

转载 C++虚函数表,虚表指针,内存分布

虚函数表和内存分布那一块转载自:https://blog.twofei.com/496/虚函数效率转载自:https://www.cnblogs.com/rollenholt/articles/2023364.html前言大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基...

2019-07-07 17:02:48 232

VS2017-吉比特can分析仪二次开发

吉比特CAN分析仪二次开发软件小工具,基于VS2017-VC++平台,演示了CAN总线的数据收发,仅供参考。吉比特CAN分析仪二次开发软件小工具,基于VS2017-VC++平台,演示了CAN总线的数据收发,仅供参考。

2019-01-29

VS2017-VC++版本校验和计算小工具

基于VS2017 VC++平台的校验和计算小工具软件,目前支持异或,累加2中算法。

2019-01-14

VS2017-MFC-生成二维码小程序

VS2017-MFC-生成二维码小程序,可以设置二维码的内容,和颜色。VS2017-MFC-生成二维码小程序,可以设置二维码的内容,和颜色。VS2017-MFC-生成二维码小程序,可以设置二维码的内容,和颜色。

2018-12-07

VS2017工程MFC子线程中更新控件的内容

VS2017工程,MFC子线程中更新控件的内容,采用消息机制来实现,简单易懂,非常方便新手的入门。

2018-12-06

VS2017-MFC子线程中更新控件的内容框架代码

VS2017工程,MFC子线程中更新控件的内容,采用全局函数的方法来实现,简单易懂,非常方便新手的入门。

2018-12-06

简单的画时钟程序源码

参考网上的的代码,进行了简化和修改,只使用了一个对话框界面,尽量使用少的函数调用。对新手来说具有一定的参考价值。

2018-12-02

VS2017平台下最简洁的基于C语言开发的串口接收程序测试代码

VS2017平台下最简洁的基于C语言开发的串口接收程序测试代码。VS2017平台下最简洁的基于C语言开发的串口接收程序测试代码。VS2017平台下最简洁的基于C语言开发的串口接收程序测试代码。

2018-11-09

VS2017平台下最简洁的基于C语言开发的串口发送程序

VS2017平台下最简洁的基于C语言开发的串口发送程序测试代码,修改简单灵活,方便用于各种串口调试。VS2017平台下最简洁的基于C语言开发的串口发送程序测试代码,修改简单灵活,方便用于各种串口调试。

2018-11-09

aes加密解密测试代码

aes加密解密测试代码,ubuntu12 gcc下测试验证通过。 这个代码是ST17H26 SDK中的,来自网上开源代码,为了兼容多种平台,里面的宏定义分支很多。

2017-10-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除