自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Robben.Han

嵌入式攻城狮

  • 博客(107)
  • 资源 (2)
  • 收藏
  • 关注

原创 netcore调用c++的dll的两种方法

托管型代码的对象在托管堆上分配内存,创建的对象由虚拟机托管。(C# )非托管型代码对象有实际的内存地址,创建的对象必须自己来管理和释放。(C++)

2023-01-18 14:04:16 1960 1

转载 MODBUS通讯协议解析及实例

modbus通讯协议解析

2022-12-09 11:41:09 4815

转载 什么是REST?以及RESTful的实现

什么是REST? REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解...

2022-04-14 10:19:53 1103

原创 c#调用c/c++的动态库的方法和问题

1,Linux平台下的so动态库ide:g++ 和 makefile源文件:cpp2,win平台下的dll动态库ide:vs源文件:cpp3,c#调用EntryPoint是函数名,你定义的是什么名字就写什么4,总结cpp的函数要用extern “C" ,不然编译器会修改函数名,导致无法找到入口函数;dll库的平台要和c#平台一致,负责加载库会失败;查看dll接口方法:vs-工具-命令行-开发者powershell ...

2021-10-29 15:32:40 726 1

原创 WSL不修改Windows主机名设置hostname的方法

WSL设置hostname,不修改Windows主机名参考文章:WSL设置新建文件/etc/wsl.conf内容如下,参考:[user]default=robben[network]generateResolvConf=falsehostname=Ubuntu注意:需要重启wsl才能生效,方法:重启WSL。...

2021-08-17 10:14:50 2280 2

原创 win10子系统wsl重启方法

WSL 子系统是基于 LxssManager 服务运行的。用管理员权限启动powershell,如下输入:net stop LxssManagernet start LxssManager

2021-08-17 10:10:01 2429

转载 Linux下修改文件系统的大小等属性

默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。tmpfs有以下优势:1.动态文件系统的大小。2.tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读.

2021-07-12 16:49:54 1097

原创 Linux下python导入库的常用方法

第一种:通过pip或者setup.py 安装 这种适用用常见的第三方库,可以通过Python的包管理工具pip直接安装,或者下载源码包后,使用其中的setup.py安装,就可以使用了。python setup.py buildpython setup.py install第二种:临时导入库 程序中使用”sys.path.append("具体路径")”,将库路径临时加入库路径。第三种:永久性导入库1、下载或者自己开发好需要的库文件,如: mylib.py2、查看py...

2020-10-09 15:36:33 8317

原创 chrome安装离线插件包

插件包为rar或者zip之类的压缩包1、解压缩到一个文件夹2、在Chrome的地址栏中输入:chrome://extensions/3、右上方的开发者模式按钮上打勾4、点击“加载正在开发的扩展程序”按钮,并选择刚刚解压的Chrome插件文件夹插件包为crx格式的压缩包直接拖放,不过有的可能不支持,需要修改系统设置。...

2020-04-12 10:40:58 5605 235

原创 linux下永久修改设备权限/dev/ttyS*

rc.local /etc/rc.local系统脚本,系统启动后执行,与是否登陆无关,所以优先级高于profile,可以指定执行程序的权限例如:修改ttyS0的权限chomd 777 /dev/ttyS0...

2020-03-31 11:35:13 3242 4

原创 使用jsoncpp时,发生terminate called after throwing an instance of 'Json::LogicError'的处理方法

出现这种错误的原因很多,原因也很明显,就是你使用了错误的类型处理数据,比如一个int你用string去赋值,或者读取一个不存在的member……最好的方法当然时修改你的读取函数,but,很多时候json数据时从别的地方读取的,它会不按定义好的规范来的。如果因为不规范导致程序退出就不好玩了是吧。所以,如果你不想程序退出,那就修改下jsoncpp的代码吧。比如asCstring()导...

2020-01-17 17:00:19 5457

原创 Linux的route命令使用总结

1、 查看本机路由表route2、添加一个默认路由route add default gw 192.168.1.1当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。3、 删除一个默认路由route del default gw 192.168.1.14、route 命令...

2020-01-10 13:56:23 319

原创 Linux下的串口通讯调试工具,程序代码示例

嵌入式领域,串口通讯是使用非常多的一种通讯协议了,所以一块串口通讯调试工具自然必不可少。这里主要是针对的嵌入式Linux系统,ubuntu之类的网上有很多,就不需要看下面的了。环境:Linux + c/c++说明:启动后,选择read或者write模式,整个通讯是基于16进制解析的,不支持其他的哦。write效果如下图:read效果如下图:核心代码:if(re...

2019-12-30 17:13:55 1216 31

转载 stty命令用法(设置串口)

stty用法:stty [-F 设备 | --file=设备] [设置]... 或:stty [-F 设备 | --file=设备] [-a|--all] 或:stty [-F 设备 | --file=设备] [-g|--save]输出或修改终端参数。 -a, --all 以可读性较好的方式输出全部当前设置 -g, --save ...

2019-12-19 11:49:58 2969

原创 eclipse开发stm32记录

目录(需要整套下载包的可以留言邮箱给我)安装eclipse + cdt安装GNU ARM Toolchain安装GNU eclipse ARM插件之前都是用mdk-keil来开发stm32的程序,很不幸,有个项目需要用到opcua通讯模块,而opcua这块的协议代码是ecilpse的,只好折腾下eclipse,先把opcua跑起来,再考虑下一步移植。(需要整套下载包的可以...

2019-11-27 11:57:51 408

原创 Linux下通过jsoncpp和socket解析和发送json数据的使用例程

目录1、json数据解析2、json数据生成3、json类型判断函数,判断key的类型函数1、json数据解析 Json::CharReaderBuilder rbuilder; Json::CharReader* reader = rbuilder.newCharReader(); Json::Value root; bool pa...

2019-11-19 16:01:29 1233

原创 使用visual stdio code开发Linux系统下的c/c++程序

首先说明,本文方法使用vscode作为编辑器,编译还是在Linux下进行,目前vscode或者vs等IDE开发Linux下的程序,都还不够成熟,只能编译相对简单的程序,部分复杂的功能无法使用,所以这里还是使用Linux系统本身去编译。其次,Linux下也有vscode的版本,但是个人感觉不好用,可能是软件的适配做的不好吧。环境:window10 +visual stdio code + ...

2019-11-05 14:14:51 821

原创 Linux下多线程的线程保护

目录一 开发环境二 互斥锁一 开发环境系统:Ubuntu16.04线程库:pthread语言:c/c++Linux下的线程保护,最常用的是互斥锁、条件变量、信号量和读写锁。先来试一下互斥锁吧二 互斥锁多线程之间可能需要互斥的访问一些全局变量,这就需要互斥的来访问,这些需要共享访问的字段被称作是临界资源,访问临界资源的程序段称作是临界区。实现线程间的互...

2019-10-29 11:02:29 1003

原创 关于tcp/udp数据包大小的选择问题

最近再使用UDP通讯时,有组数据是200029字节,测试发现server收不到数据查看sendto的返回结果,以及error信息:发现是发送失败,数组太大了,message too long,原来UDP一个包最大是65535个字节,出去各种ip头等的开销,最大发送数组为65507。(IP包头有一个16bit的长度, 对应的二进制最大值是2^16 -1,也就是说一个IP包整个长度的...

2019-10-24 10:10:18 1199

原创 Linux下的信号介绍

1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个Session。当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到S...

2019-10-21 14:47:11 283

原创 Linux下永久修改变量的方法

在使用armv5-linux-gcc的时候,老是提示:warning: environment variable 'STAGING_DIR' not defined首先找到此gcc的路径,然后通过:export STAGING_DIR=/usr/local/atmel/arm_v5te_gcc-4.8-linaro_eglibc_eabi/bin/::$STAGING_DIR这样...

2019-10-17 15:40:34 536

原创 Linux下通过shell创建用户和密码以及修改密码

目录1、Linux下的脚本编写2、Ubuntu下的脚本编写1、Linux下的脚本编写按照教程编写如上,运行提示:passwd: unrecognized option '--stdin'查了下,原来时Ubuntu不支持--stdin这个用法。2、Ubuntu下的脚本编写#! /bin/bashuseradd -m testech...

2019-10-15 11:19:39 2918

原创 pc-com串口(DB9)管脚定义和单片机uart串口

1、pc的串口com口,也就是RS-232接口定义(DB9)引脚 定义 符号1载波检测 DCD(Data Carrier Detect)2 接收数据 RXD(Received Data)3 发送数据 TXD(Transmit Data)4 数据终端准备好 DTR(Data Terminal Ready)5 信号地 SG(Signal Ground)6 数据准...

2019-10-14 16:51:17 2513

转载 让程序员崩溃的瞬间(非程序员勿入)

1. 公司实习生找 Bug2.在调试时,将断点设置在错误的位置3.当我有一个很棒的调试想法时4.偶然间看到自己多年前写的代码5.当我第一次启动我的单元测试时6.数据库的 Delete 语句忘了使用限定词 where...7.明明是个小 bug,但就是死活修不好.......

2019-10-14 11:15:06 449

原创 linux(Ubuntu)下.dotnet core 安装运行和报错解决

目录1、.net core runtime环境安装2、.net core程序运行3、报错解决运行提示:Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want ...

2019-10-10 10:47:45 4836 1

原创 keil-stm32报错:function call is not allowed in a constant expression

今天在调试一个stm32程序,将一个定长数组改为不定长数组的时候,编译报错:function call is not allowed in a constant expressionu8 usart1_recv = malloc(SRAMEX,USART!_REC_LEN);想了一下,原来是改行忘记放到函数里面,放到初始化函数中就OK了。...

2019-10-08 17:48:42 12343 3

原创 Linux-C/C++编程实现log显示系统时间示例程序

直接上代码吧:运行效果:

2019-09-24 14:07:54 537

原创 虚拟机Ubuntu提示Host SMBus controller not enabled的解决办法

sudo vim /etc/modprobe.d/blacklist.conf 末行插入:blacklist i2c_piix4 reboot以上,问题解决。

2019-09-16 09:18:33 850

原创 arm-linux-gnueabihf-gcc编译带ssl和lcrypto库时,找不到变量和库的解决方法

程序里使用了openssl的部分内容,系统装的是libssl-devsudo apt-get install libssl-dev使用gcc编译时,以前正常,程序调试ok后,用交叉编译工具编译到目标板时报错:看来是交叉工具的默认路径没有包含openssl的头文件,手动指定一下ARMINCLUDES := -I/usr/include/ARMINCLUDES += -I/...

2019-09-09 09:12:11 1852

原创 Linux开机运行脚本profile,rc.local

目录profilerc.local自定义脚本:my.bash profile 用户脚本,在用户登陆后执行,只有用户权限,所以只能执行用户权限下的程序,不登录就不会执行。 rc.local 系统脚本,系统启动后执行,与是否登陆无关,所以优先级高于profile,可以指定执行程序的权限 自定义脚本:my.bash 90表明一个优先级,越高表示...

2019-09-03 11:01:49 2373

转载 gcc指定头文件路径及动态链接库路径

目录一.#include <>与#include “”二.gcc指定头文件的三种情况:三.Linux指定动态库路径四、gcc -l 对动态库和静态库的使用方法是一样的,同一个库如果同时存在动态库和静态库,优先链接动态库,除非使用--static强制使用静态库。本文详细介绍了linux 下gcc头文件指定方法,以及搜索路径顺序的问题。另外,还总结了,gcc动态链接的方...

2019-09-03 10:06:52 1286

原创 嵌入式Linux下设置永久ip和临时ip地址的几种方法

目录永久-1:永久-2:临时:(reboot后设置失效)语法:永久-1:编辑文件:vi /etc/profile,添加:ifconfigeth0192.168.1.100 netmask255.255.255.0保存退出::wq重启:reboot或者service network restart永久-2:编辑文件:vi /etc...

2019-09-02 09:36:38 4579

转载 Makefile.am编写规则

目录概念1、编译可执行文件2、编译动态库文件3、编译静态库文件概念 Makefile.am是比Makefile更高层次的规则只需要指定要生成什么目标,依赖于什么文件,和要安装到什么目录。automake会根据Makefile.am来自动生成Makefile.in 。Makefile.am里边使用的都是宏,常见的有.PROGRAMS ;表示可执行文件.LIBR...

2019-08-30 15:24:17 1432

转载 SSL工作原理

关键词:SSL,PKI,MAC摘要:SSL使用数据加密、身份验证和消息完整性验证机制,基于TCP和其他的应用层协议提供可靠的连接安全保障。本文介绍了SSL后台、安全机制、工作过程和典型网络应用。缩略语: 缩略语 英文全名 中文解释 AES Advanced Encryption Standa...

2019-08-30 10:46:14 680

原创 C++中的.和::和:和->的区别

目录1、A.B A为对象或者结构体;2、A->B A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;3、::是作用域运算符,A::B表示作用域A中的名称B,A可以是命名空间、类、结构;4、:表示继承另一种是构造函数1、A.B A为对象或者结构体;此处,validationOptions是一...

2019-08-26 09:37:30 10287

转载 C++模板template用法总结

目录引言函数模板类模板模板专门化模板类型转换其他引言模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。函数模板在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下:vo...

2019-08-23 14:06:03 777

原创 为什么你的投资决定总是错的?

《观潮》苏轼庐山烟雨浙江潮,未到千般恨不消。到得还来别无事,庐山烟雨浙江潮。创作背景:此诗这是苏轼在临终之时给小儿子苏过手书的一道偈子。苏轼结束了长期流放的生活,从一个踌躇满志、一心从政报国的慷慨之士,慢慢变成一个从容面对、参透生活禅机的风烛老人。听说小儿子将去就任中山府通判,便写下了此诗。其实,错的不是决定本身,而是你的投资心态!...

2019-08-22 14:10:48 678 1

原创 h头文件重复引用的问题

目录编译main文件,出现问题:headerbum重复定义链接o文件报错,出现问题fun重复定义//main.c#include "header.h"#include "mytest.h"void main(){ mytest(); fun();}//header.hint headerNum=0;void fun(){ p...

2019-08-19 10:27:29 1810

原创 Linux-socket编程之非阻塞tcp程序示例和UDP程序示例

目录1、TCP通讯2、UDP通讯1、TCP通讯tcp是可靠通讯,需要先建立连接,再发送数据。connect阻塞模式下,一般是默认75s,但是因为有线程切换等原因,实际时间会更长。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/type...

2019-08-16 09:39:13 1728

原创 OPC UA编程开发------基础知识整理

目录1、OPC UA2、节点3、对象、变量和方法对象类型和变量类型简单对象类型简单变量类型复杂对象类型复杂变量类型4、编译1、OPC UAOPC UA(Unified Architecture,统一架构)是下一代的OPC 标准,通过提供一个完整的,安全和可靠的跨平台的架构,以获取实时和历史数据和时间。OPC UA接口协议包含了之前的 A&E,...

2019-08-14 14:29:20 7365 8

pic 12F1501 中文datesheet

pic 12F1501 中文datesheet

2017-08-22

lpc1768与dp83848双向通讯

修改过的easyweb程序,实现了双向通讯。服务器端的程序,在TCP连接后发送一段文字,然后会回发客服端发送的字符,数量上目前是10个字符,可以自己修改。新手仅供参考。

2014-04-12

空空如也

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

TA关注的人

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