- 博客(85)
- 资源 (6)
- 收藏
- 关注
原创 黑群晖918+ DSM7.0.1手动安装RTL8125BG网卡及驱动
由于之前使用redpill的引导,不能自动识别RTL8125BG网卡,当时卖家老板说arpl引导可以直连,由于不想从新换引导,所以尝试自己编译驱动解决。
2024-02-27 18:11:02
7359
原创 编译Micropython固件For树莓派Raspberry Pi Pico
由于想把自己编写的py文件打包的固件中,所以记录下如何编译micropython固件和打包。最简单的方式就是在你的树莓派上进行,我用的是RP Pi2。然后在\micropython\ports\rp2\执行。将需要打包的py文件放在。
2023-09-02 14:15:57
1174
原创 OpenWRT配置Taiscale后,开机启动后Taiscale无法正常启动
在启动tailscale时,检测到新的版本,并且是amd64的版本,很大可能是版本跟自己本地下载的不匹配,新下载的版本放在/tmp目录下。OpenWRT配置Taiscale后,开机启动后Taiscale无法正常启动。ifconfig也没办法看到网卡。这时候需要把新下载的tailscaled 替换掉本地的/usr/bin/tailscaled。原因:下载的Taiscale版本不对。
2023-08-01 00:55:12
2295
原创 群晖虚拟机OpenWRT配置Taiscale
后面会下载对应系统的Tailscale,然后分配网站,然后复制打开对应网站,绑定tailscale账号,显示sussess即可。参考:https://github.com/adyanth/openwrt-tailscale-enabler。
2023-07-31 22:22:41
1887
原创 Qt使用curl库
1.官网下载源代码:https://curl.haxx.se/download.html2.使用mingw编译mingw版本:进入源码目录:curl-7.32.0\libmingw32-make -f Makefile.m32将生成:libcurl.a、libcurl.dll和libcurldll.a 三个文件。将文件复制到个人工程的debug或release目录。3.编译msvc版本,打开cmd,进入VS对应的C:\Program Files (x86)\Microsoft Visua
2021-12-04 09:54:31
3258
原创 raspberry 2B红外遥控测试和按键记录
本人参考了:https://www.freemindworld.com/blog/2013/130316_raspberry_pi_with_remote_control.shtml前言:本人使用树莓派2B板,红外接收模块为:1传感器采用HX1838,灵敏度高2 工作电压5V3 输出形式:数字量输出模块接口说明1 VCC 外接3.3V-5V电压(可以直接与5v单片机和3.3v单片机相连)2 GND 外接GND3 IN 外接单片机I/O口,I/O口已设计10K上拉电阻1.第
2021-11-30 22:20:00
482
原创 树莓派raspberry 2b 继电器控制、GPIO环境设置
1.首先确定GPIO库已经安装,可以参考:https://blog.youkuaiyun.com/sxhexin/article/details/948890792.用2种方式测试:1)wiringpi 库测试目前该库已经不维护了,官网无法下载。安装包gpio readall代码如下:使用了GPIO29.#include <wiringPi.h>#include <stdio.h>#define GPIO_NUM 29int main(){ int c
2021-11-27 00:12:27
723
原创 树莓派2B 配置无线wifi dhcp 静态IP,同时开机启动
环境:2015-05-05-raspbian-wheezy版本1.修改vi /etc/network/interfaces添加一下语句,删除其他跟wlan0相关的codeallow-hotplug wlan0iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf2.vi /etc/wpa_supplicant/wpa_supplicant.conf修改wifi账号和密码country=CNn
2021-11-26 20:49:14
1827
原创 Ubuntu下SVN+apache2搭建加密服务的SVN服务器
安装SVN/apach2 sudo apt install subversion apache2 libapache2-svn创建SVN的Repository svnadmin create /home/test/svn/repo/test将apach2的运行用户名称加入到当前创建SVN目录的群组.apach2的运行用户名称可以在以下文件中设置:/etc/apache2...
2019-07-23 16:45:46
480
1
原创 Tomcat配置登陆权限
#1.下载commons-codec库http://commons.apache.org/proper/commons-codec/download_codec.cgi#2.将该库导入到对应webapp目录下对应的工程目录下,如:cp /home/sscr/commons-codec-1.11/* /opt/apache-tomcat/webapps/xxcode/WEB-INF/lib/...
2018-12-18 14:35:00
1134
原创 Ubuntu 14.04 搭建OpenGrok环境,并支持多项目工程
OpenGrok是一个快速、便于使用的源代码搜索与对照引擎。它帮助你搜索,对照,定位你的源代码树。它能够识别各种程序源文件格式和版本控制历史记录。搭建环境依赖: 1.opengrok-1.1-rc33.tar.gz PS:rc35后脚本开始从shell切换到python 2.universal-ctags 3.apache-tomcat-8.5.32 4.OpenJDK 1.8 ...
2018-08-13 15:03:21
4003
1
转载 Ubuntu 14.04上 通过源安装 OpenJDK8
先列一下按照网上高人步骤,后记录上遇到的问题。 1. 添加openjdk8的第三方源 sudo add-apt-repository ppa:openjdk-r/ppa 2. 执行更新 apt-get update 3. 安装openjdk8 sudo apt-get install openjdk-8-jdk 4. 选择版本 sudo update-alternatives –c...
2018-08-13 10:51:24
1394
原创 虚拟机桥接PC机无线网络,实现虚拟机系统、PC和开发板在同一网络
1.虚拟机桥接设置: ps:如果虚拟机桥接网络有故障可以通过如下恢复默认设置。 2.打开虚拟机下的linux系统,确认ip是否跟PC端的无线网络在同一ip段下: 3.确定开发板也连接到了同一网络。4.相互ping,确定网络都互通了!
2018-04-05 17:18:10
846
原创 开发板学习笔记
1.烧录:开发板linux整个烧录包括以下步骤: - u-boot 启动程序:当你拿到一块开发板时,如果连uboot都没有,那就可以称为裸机,无法运行,这时我们需要使用Jlink连接开发板的JTAG口和电脑USB口来进行uboot烧录。 - uImage 内核:当你烧写好uboot后,那么uboot需要加载linux的内核,此时也需要烧写uImage内核。 - filesystem 文件系统:
2018-04-05 17:02:24
380
原创 Qt下使用DbgHelp和SetUnhandledExceptionFilter来获取Crash log/dump文件
第一步:在pro中链接LibLIBS += -lDbgHelp第二步:在main源文件中添加#include <windows.h>第三步:在main源文件中创建回调函数:LONG CreateCrashHandler(EXCEPTION_POINTERS *pException){ //创建 Dump 文件 QDateTime CurDTime = QDateTime::curre
2017-11-05 17:30:12
4910
5
原创 Qt下MSVC/Mingw平台dump/crash log报告调试方法差异
经过测试发现,对于MSVC/mingw平台的log到处方法有所不同,下面来介绍下2个平台构建的差异和方法:1.MSVC使用平台:MSV2015 1.第一步:编译构建是添加以下"CONFIG+=force_debug_info" "CONFIG+=separate_debug_info" 这样编译以后可生成*.pdb文件将dump文件和*.pdb及map文件放在同目录下,使用vs2015打开d
2017-11-05 17:11:30
6156
4
原创 欢迎使用优快云-markdown编辑器
Qt5+以后,增加了Profile构建和release、Debug的差异Debug:配置了debug调试qmake.exe G:\xxx\xxx.pro -spec win32-msvc2015 "CONFIG+=debug" "CONFIG+=qml_debug" && E:/Qt/Qt5.8.0_msvc2015/Tools/QtCreator/bin/jom.exe qmake_allR
2017-11-05 13:28:21
390
3
原创 execve的用法
#include<unistd.h>main(){char * argv[ ]={"ls","-al","/etc/passwd",(char *)0};char * envp[ ]={"PATH=/bin",0};execve("/bin/ls",argv,envp);}
2016-05-15 22:11:05
1008
原创 C/C++标准误导篇
1.使用宏定义时,能否使用自加或自减#define SQ(a) ((a) * (a))void main(){ int a = 6; int b; b = SQ(a++); printf("%d %d \n",a,b); return;}结果:8 36 这样写很容易误导以为a已经自加,b=49,实际上是使用宏后在自加,这样写是不规范的,应该在使用
2016-05-14 21:22:43
341
原创 线程与进程篇
线程与进程1.使用线程是如何防止出现大的波峰。 答:意思是如何防止同时产生大量的线程,方法是使用线程池,线程池具有可以同时提高调度效率和限制资源使用的好处,线程池中的线程达到最大数时,其他线程就会排队 等候。
2016-05-14 21:14:34
391
原创 网络及协议篇
网络及协议篇 1.Internet采用哪种网络协议?该协议的主要层次。 TCP/IP协议(Transmission Control Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础 主要层次:数据链路层、网络层、传输层、应用层 数据链路层: 这是TCP/IP软件的最低层,负责接收IP数据报并
2016-05-14 21:14:00
772
原创 代码编写篇
代码编写篇1.写一个float x 与零值的比较的if语句; 这里主要存在一个float精度的问题,尽量少用“==”或者“!=”来比较float/double#define FLT 1e-6float x=0.00003;if((x >= FLT)) { //x大于0} else if( x >= (-FLT) || x <= FLT ) { //x = 0} else {
2016-05-14 21:13:25
356
原创 数据结构篇
数据结构篇 1.什么函数不能声明为虚函数。 虚函数定义: 虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public,在基类的类定义中定义虚函数的一般形式: virtual 函数返回值类型 虚函数名(形参表) { 函数体 } 虚函数作用: 虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基
2016-05-14 21:12:38
309
原创 算法篇
算法篇1.什么是平衡二叉树。 它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。常用算法有红黑树、AVL、Treap、伸展树等。在平衡二叉搜索树中,我们可以看到,其高度一般都良好地维持在O(log2n),大大降低了操作的时间复杂度。2.冒泡排序算法的时间复杂度是什么。 O(n^2),可以通过程序来验证 小于10000个数据的数组用它不会超时(
2016-05-14 21:12:00
320
原创 内存堆栈篇
内存堆栈篇 1.全局变量与局部变量在内存中是否有区别。 参考 变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。 按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。 按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后
2016-05-14 21:10:51
418
原创 基本知识了解
基本知识了解 1.描述实时系统的基本特性。 资源可以随时动态分配,处理能力强,速度较快 1)高精度计时系统 计时精度是影响实时性的一个重要因素。在实时应用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确的计算一个时间函数。这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。 2)多级中断机制 一个实时应用系统通常需要处理多种外
2016-05-14 21:09:46
485
原创 常用类型名称篇
常用类型名称篇 知识点1:auto,register,extern,static,对应两种存储期:自动存储期和静态存储期。 auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。1.static的用途。特点: static局部变量的”记忆性”与生存期的”全局性”对于函数来说,具有隐藏功能,也就是该函数只
2016-05-14 21:08:19
1076
原创 指针篇
C++面试参考1 ·指针篇1.写一个数组指针与指针数组,并说出齐区别。2.函数指针与指针函数的区别。3.指针与引用的区别和相同点。4.指针的&和*5.函数的传值和传值区别6.理解一个指针的指针和一个指向数组指针的指针7.空指针能赋值吗?8.”()”,”[]”,”*”的优先级。9.理解数组指针和指针数组的内存分布。10.给出结果:struct Test{ int Num; char *
2016-05-14 21:06:41
446
原创 树莓派设置静态无线IP以及去掉启动时的dhcpcd
vi /etc/network/interfaces如下:# interfaces(5) file used by ifup(8) and ifdown(8)# Please note that this file is written to be used with dhcpcd# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd
2016-05-10 16:41:15
9494
1
原创 对通过用户输入的值,并遍历一次,将用户输入的值倒过来,单向链表进行逆向
typedef struct node_{ char c; struct node_* next;}abc;abc* SetHead(abc* head){ abc* a,*b,*c; a = head; c = (abc*)malloc(sizeof(abc)); if(a->next == NULL) { c->next =
2016-04-25 00:14:22
627
转载 段错误信息的获取
1 dmesg dmesg可以在应用程序crash掉时,显示内核中保存的相关信息。如下所示,通过dmesg命令可以查看发生段错误的程序名称、引起段错误发生的内存地址、指令指针地址、堆栈指针地址、错误代码、错误原因等。以程序2.3为例:panfeng@ubuntu:~/segfault$ dmesg[ 2329.479037] segfault3[2700]: segfault at 80484e
2016-04-25 00:01:03
1270
原创 指针之示例大集合
参考//这里也是传递的是一个指针,指针是通过传值的,但是我们将这个值赋值给一个指针的指针//也就是把这个地址转换为一个保存在一个指针中的地址,那么这个指针就指向这个地址了//这个副本是 char**类型的,也就是指针p保存的值为一个指针,所以传送过来的值就保存在//这个char**类型的p的地址下,也就是重新将传过来的实参地址,转换为一个指针,//然后保存在形参指针里面void GetMe
2016-04-24 17:20:57
447
原创 面试题大集合
C++面试参考1 ·指针篇1.写一个数组指针与指针数组,并说出齐区别。2.函数指针与指针函数的区别。3.指针与引用的区别和相同点。4.指针的&和*5.函数的传值和传值区别6.理解一个指针的指针和一个指向数组指针的指针7.空指针能赋值吗?8.”()”,”[]”,”*”的优先级。9.理解数组指针和指针数组的内存分布。10.给出结果:struct Test{ int Num; char *
2016-04-24 00:57:19
791
转载 书面格式解惑篇
///////////////////////书写格式解惑篇//////// 一 通常的函数调用 一个通常的函数调用的例子: //自行包含头文件 void MyFun(int x); //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]) { MyFun(10); //这里是调用MyFun(10);函数
2016-04-24 00:38:24
534
原创 指针函数与函数指针
参考: 参考1 ·指针函数:返回值为指针或者地址的函数 格式:类型说明符 * 函数名(参数…)·函数指针:指向函数的指针,该指针指向函数的地址 格式:类型说明符 (*函数名或指针的变量名)(参数)需要注意:声明时,括号不能丢,否则意义就不一样了;如下:char* GetChar(char* c); // 指针函数char (*GetChar)(cjar* c); // 函数指针实例:摘
2016-04-24 00:01:14
399
转载 指针数组和数组指针的内存布局
一、指针数组和数组指针的内存布局初学者总是分不出指针数组与数组指针的区别。其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是一个指针,在32 位系统下任何类型的指针永远是占4 个字节。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下任何类型的指针永远是占4 个字节,至于它指向的数组
2016-04-23 21:59:05
488
TCP/DUP点对点群聊QQ
2014-11-13
TCP/DUP实现群聊点对点聊天
2014-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人