- 博客(144)
- 资源 (17)
- 收藏
- 关注
原创 kali上安装dvwa
1、kali上默认安装了apache2与mysql,只需启动就好service apache2 start service mysql start2、进入/var/www/html目录,下载dvwa源码git clone https://github.com/digininja/DVWA.git3、由于kali默认使用的是MariaDB,需要设置数据库mysql> create database dvwa;Query OK, 1 row affected (0.00 se
2021-01-16 18:42:44 501
转载 swig与python
当你觉得python慢的时候,当你的c/c++代码难以用在python上的时候,你可能会注意这篇文章。swig是一个可以把c/c++代码封装为python库的工具。(本文封装为python3的库)c/c++实现功能 => c/c++封装c/c++函数 => 将前两者编译生成动态库 => python进一步封装(1)手动封装c函数1. 我把实现和封装放在一个文件中(add.c)。//add.c#include <python3.5/Python.h>/
2020-09-13 22:50:25 351
转载 解决cannot open shared object file: No such file or directory
linux下调用动态库.so文件时提示:cannot open shared object file: No such file or directory解决办法:1、此时ldd xxx查看依赖缺少哪些库 libmysqlcppconn.so.7 => not found libboost_system.so.1.64.0 => not found2、拷贝缺少的库到系统的库路径下...
2020-09-13 22:33:37 1013
转载 ubuntu16.04下配置apache2与php
(1)安装apache2命令sudo apt install apache2(2)测试是否安装成功浏览器地址栏输入“localhost”(3)安装最新版php命令sudo apt install php(4)配置apache2与php命令sudo apt-get install libapache2-mod-php(5)重启apache2命令sudo /etc/init.d/apache2 restart(6)测试php,借用W3School上的首个程序
2020-08-31 00:11:55 1309
转载 CGI输出中文乱码解决方法
问题描述:使用C语言编写CGI进行html文件输出时,在输出中文时会出现乱码的情况。解决方法:在前面对格式进行定义时加入对编码模式的定义:修改:printf("Content-type:text/html\n\n");为:printf("Content-type:text/html;charset=utf-8\n\n");...
2020-08-29 15:44:04 1004
转载 C++ CGI 库安装
(1)下载源码:ftp://ftp.gnu.org/gnu/cgicc/(2)安装方法$ tar xzf cgicc-x.y.z.tar.gz$ cd cgicc-x.y.z/$ ./configure --prefix=/usr$ make$ make install(3)libcgicc.so 和 libcgicc.a 库会被安装到/usr/lib目录下$ sudo cp /usr/lib/libcgicc.* /usr/lib64/(4)注意问题:执行ma.
2020-08-29 15:17:06 833
转载 Ubuntu 16.04上安装Apache Web服务器并配置c++ cgi
第1步:安装ApacheApache在Ubuntu的默认软件库中可用,因此我们将使用传统的软件包管理工具进行安装。我们将从更新本地包索引开始,以反映最新的上游更改。之后,我们可以安装apache2包:sudo apt-get updatesudo apt-get install apache2第2步:调整防火墙在我们测试Apache之前,我们需要修改我们的防火墙以允许外部访问默认的Web端口。假设您遵循先决条件中的说明,您应该配置一个UFW防火墙来限制对您的服务器的访问。在安装过程中..
2020-08-29 13:41:53 563
原创 stm32工程错误,包含core_cm3.h
在包含#include "core_cm3.h"时,前面加#include "stm32f10x.h"文件
2020-06-03 09:12:55 2345
转载 2.PendSV的触发
PendSV典型使用场合是在上下文切换时(在不同任务之间切换)。 我们先简单的写几段代码实现PendSV的中断触发,当然也会涉及到CM3内核汇编指令,自从开始挑战的那天起,你不如地狱谁入地狱!如何触发PendSV中断呢?从Cortex-M3权威指南手册上可以看到如下图所示,控制ICSR的28位置1便可以悬起PendSV 触发PendSV中断。 ...
2020-02-22 15:34:39 2039 2
转载 1.新建tinyOS工程并进行调试
1.建立工程在keil5中建立一个stm32F103的工程,可直接拷贝正点原子的工程模板,进行编译,无错误,无警告。2.编写测试代码#include "delay.h"#include "sys.h"u8 flag;int main(void){ delay_init(); //延时函数初始化 while(1) { flag = ...
2019-12-25 21:30:07 351
原创 获取QTextEdit 中的数据,保存到excel中
Qt控件QTextEdit中显示数据如上图所示,现在需要功能:读出控件中的数据,保存到excel中。bool MainWindow::exportToExcel(){ QStringList list; QString filepath=QFileDialog::getSaveFileName(this, QStringLiteral("文件保存"),"../",tr...
2019-12-23 19:30:24 1236 1
转载 kalman滤波理解二:预测和更新过程
这篇主要讲kalman滤波的预测和更新过程,首相强调以下上篇(kalman滤波理解一:理论框架)所强调的连个理论原则:预测过程符合全概率法则,是卷积过程,即采用概率分布相加; 感知过程符合贝叶斯法则,是乘积过程,即采用概率分布相乘;(一)预测过程假设有一辆小车在路上行驶,其状态有位置p,速度v,我们用一个列向量来表示此时的状态:如果我问你,经过时间后,其位置和速度分别是多少?...
2019-12-18 20:06:29 1630
转载 kalman滤波理解一:理论框架
关于kalman滤波的学习,一直不得要领,看了很多书和文章但总觉得理解不透,究其原因就是这些书和文章都是采用数学理论推导的方法,而没有从实际应用中出发,本文就将我理解的kalman滤波进行介绍,灵感来源是优达学城的无人驾驶课程,里面老师对kalman滤波的介绍让我耳目一新: kalman滤波的理论框架是全概率法则和贝叶斯法则,在设定中假设预测和感知均有误差,且均服从...
2019-12-18 19:50:21 401
转载 Keil调试局部变量显示"not in scope"的问题解决
今天在调试程序的时候,发现函数返回值赋值给变量时,变量值总是显示"not in scope",无法看到变量被赋的值。出现这种情况的原因是这个局部变量没被分配到内存,或者变量被编译器优化了。编译器优化级别高的时候,编译器为了优化,可能并没有按照我们想要执行的代码汇编。解决方法:降低Keil的编译优化选项,如下图所示,优化等级改为0(默认为3)。...
2019-12-14 13:44:42 10959 3
转载 Qt测算程序运行时间
【问题描述】程序运行时间是编程的一项重要指标,在QT中如何测算程序的运行时间呢?测试函数:#include <math.h> void function() { unsigned int i,j; double y; for(i=0;i<1000;i++) for(j=0;j<1000;j...
2019-12-02 15:07:30 265
原创 vscode 中使用git
1. 首先在电脑中安装git,点击会出现git bash here2、新建一个文件夹test,里面创建一个文件mian.c,打开vscode工作区此时点击代码管理,会出现3、点击vscode中的设置,输入git,编辑settings.json文件输入安装的git路径4、在test文件夹中打开给git here ,运行git init此时vscode就会出现...
2019-11-26 20:56:38 239
转载 正确理解Widget::Widget(QWidget *parent) :QWidget(parent)这句话
在讲解原因之前,先请大家看下面的一个例子:#include <iostream>using namespace std;class Base{public: Base() :m_num(0) { cout << "this is Base()" << endl; } Base(in...
2019-11-22 19:47:34 1789 2
原创 stm32——自定义HID设备
一、开发环境硬件平台:stm32f767软件平台:keil5,cubmx二、cubemx创建工程1、配置RCC2、USB_OTG_FS,选择Device_Only模式3、Middleware——USB_DEVICE4、配置一个外部中断按键作为输入5、配置时钟与生成代码三、工程代码修改1、打开usbd_custom_hid_if.c 文件,把CUSTOM_HID_Re...
2019-11-16 14:48:49 1744
原创 上位机——自定义HID设备与主机通讯
一、开发环境平台:vs2015头文件:#include <Windows.h>#include <SetupAPI.h>#include <hidsdi.h>#include <initguid.h>库文件:setupapi.libhid.lib二、开发流程1、获取HID设备的GUIDvoid __stdcall ...
2019-11-16 14:24:00 1991
原创 QT编译错误——cannot find file .pro
Cannot find file: D:\WorkArea\电梯检测毕设\scope\scopeV3\scope.pro.15:37:13: 进程"D:\Program\Qt\Qt5.8.0\5.8\msvc2015_64\bin\qmake.exe"退出,退出代码 2 。Error while building/deploying project scope (kit: Desktop ...
2019-10-14 15:40:40 1733
原创 signed 与 unsigned 关键字
#include <stdio.h> #include <string.h>int main(void){ signed char a[1000]; int i; for(i=0;i<1000;i++) a[i]= -1 -i; printf("%d\n", strlen(a)); return 0;}上面输出的结果为255;...
2019-08-31 21:52:32 367
转载 微机中验证负数以补码存储程序
1. 相关基础知识负数的补码等于它的反码加1,即在其反码的最低位加1就为该数的补码,且在计算机中负数以补码形式进行存储。已知 1、int型占4字节(32位二进制)char型占1字节(8位二进制)2、字符在内存中以ASCII形式存储(A的为65,C为67)3、在内存中低地址存低位,高地址存高位2. 具体内容先规定一个int型负数...
2019-08-31 16:57:13 255
转载 智能指针(2)——share_ptr
1. 智能指针分3类:今天只唠唠shared_ptrshared_ptr unique_ptr weak_ptr2.下表是shared_ptr和unique_ptr都支持的操作操作 功能描述 shared_ptr<T> sp 空智能指针,可以指向类型为T的对象 unique_ptr<T> up 空智能指针,可以指向类型为T的对象 ...
2019-08-30 21:31:26 201
转载 智能指针(1)——简介
1 . 为什么有智能指针?c++程序员需要自己善后自己动态开辟的内存,一旦忘了释放,内存就泄露。智能指针可以帮助程序员"自动释放"自己开辟的内存。2. 从哪里看出来智能了?int *p = new int(11);auto_ptr<int> pa(p);//auto_ptr已经不推荐使用//delete p;上面的代码把p交给智能指针auto_ptr管理后,就不需...
2019-08-30 20:31:19 102
转载 排序算法1——冒泡排序
1 冒泡排序介绍冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!2 冒泡排序图文说明...
2019-08-19 21:45:55 92
原创 opencv交叉编译
查看文档:https://blog.csdn.net/qq_30155503/article/details/79983630注意:(1)编译好的include,lib的路径与放在开发板中的路径要一致(2)为了编译通过,我在变编译中把arm-linux-gcc 从4.4.1升级到了4.5.1,运行成语的过程中出现了libstdc++.so.6: version `GLIBCXX_3.4...
2019-08-16 09:51:49 359
原创 Ubuntu14.04升级cmake版本的方法
1. 可去http://www.cmake.org/files查找需要的版本。$ sudo apt-get install build-essential$ wget http://www.cmake.org/files/v3.11/cmake-3.11.3.tar.gz$ tar xf cmake-3.11.3.tar.gz$ cd cmake-3.11.3$ ./configur...
2019-08-14 19:31:18 847
原创 GSLX680驱动的移植实践
将gslX680触摸屏驱动移植到自己的开发板上(对应的源码文件gslX680.c),并且实现可以使用make menuconfig进行动态的加载和卸载因为触摸屏设备属于一种典型的输入设备,所以他的驱动源码最好是放在drivers\input\touchscreen这个目录下,这样是最规范的。(1)定义一个宏名,譬如CONFIG_TOUCHSCREEN_GSLX680(2)mach文件中添...
2019-08-13 21:47:41 841
转载 什么是驱动?
一、什么是驱动?(1)驱动一词的字面意思(2)物理上的驱动(3)硬件中的驱动(4)inux内核驱动。软件层面上的驱动广义上是指:这一段代码操作了硬件去动,所以这一段代码就叫硬件的驱动程序。狭义上驱动程序就是专指操作系统中用来操控硬件的逻辑方法的部分代码。而我们这里讲的驱动就指的是这个狭义上的驱动。二、Linux驱动的体系架构(1)分离、分层思想(2)驱动的上面是系统调用...
2019-08-13 17:57:08 7444
转载 LINUX驱动常用的模块操作命令
1. 常用的模块操作命令(1)lsmod(list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表(2)insmod(install module,安装模块),功能是向当前内核中去安装一个模块,用法是insmod xxx.ko(3)modinfo(module information,模块信息),功能是打印出一个内核模块的自带信息。,用法是modinfo xxx....
2019-08-13 17:03:00 389
转载 编译驱动的MAKEFILE解析
一个典型的编译驱动模块的Makefile文件如下所示:KERN_DIR = /root/driver/kernelobj-m += module_test.oall: make -C $(KERN_DIR) M=`pwd` modules.PHONY: clean clean: make -C $(KERN_DIR) M=`pwd` clean解析:(1)KERN...
2019-08-13 16:46:55 418 1
原创 嵌入式软件工程师面试(3)
1、Norflash与Nandflash的区别(1)NAND闪存的容量比较大(2)NORflash采用内存的随机读取技术。各单元之间是并联的,对存储单元进行统一编址,所以可以随机访问任意一个字。既然 是统一编址,NORflash就可以芯片内执行,即应用程序可直接在flash内运行,而无需先拷贝到RAM。(3)NOR flash有更快的读取速度,NAND flash有更快的写、擦除速度...
2019-08-12 20:55:57 472
转载 进程与线程的一个简单解释
1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。3.进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。4.一个车间里,可以有很多工人。他们协同完成一...
2019-08-12 20:14:32 103
原创 Qt 在arm下的移植
1 Tslib移植1.1 源码下载1.2 解压 tar -xvf tslib-1.4.tar.gz1.3 配置# cd tslib# ./autogen.sh# echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache # mkdir /opt/tslib# ./configure --prefix=/opt/ts...
2019-08-12 16:59:45 768
原创 嵌入式软件工程师面试(2)
1、int main(void){ unsigned int a = 6; int b = -20; char c; (a+b>6)?(c=1):(c=0);}则c=1,但a+b=-14;如果a为int类型则c=0。原来有符号数和无符号数进行比较运算时(==,<,>,<=,>=),有符号数隐式转换成了无符号数(即底层的补码不变...
2019-08-12 10:18:28 216
原创 嵌入式软件工程师面试(1)
1、int a[10]={1,2,3,4,5,6,7,8,9,0}; int *p=&a[1]; 则p[6]等于82、整数数组清零bzero函数函数原型:void bzero(void *s, int n);功能:将字符串s的前n个字节置为0,一般来说n通常取sizeof(s),将整块空间清零。char str[10];bzero( str, sizeof(...
2019-08-11 21:37:49 433
转载 Linux 系统应用编程——文件I/O
1. 简介 Linux操作系统是基于文件概念的。文件是以字符序列构成的信息载体。根据这一点,可以把I/O设备当做文件来处理,因此,在磁盘上的普通文件进行交互所用的统一系统调用可以直接用于I/O设备。这样大大简化了系统对于不同设备的处理,提高了效率。Linux中的文件主要分为6种:普通文件、目录文件、符号链接文件、管道文件、套接字文件和设备文件。那么,内核如何区分和引...
2019-08-11 20:25:47 152
转载 framebuffer驱动框架分析
1. framebuffer简介1.1. 裸机中如何操作LCD?1.1.1 驱动器&控制器(1)LCD驱动器一般和LCD显示面板集成在一起(本来是分开的,做面板的是只做面板的,譬如说三星、LG、台湾的友达、奇美都是做面板的;驱动器也由专门的IC厂商生 产;集成厂商买来面板和驱动器后集成在一起做成LCD屏幕),面板只负责里面的液晶分子旋转透光,面板需要一定的模拟电信号来控制液晶分子...
2019-08-10 21:13:01 529
转载 Linux字符设备中的两个重要结构体(file、inode)
对于Linux系统中,一般字符设备和驱动之间的函数调用关系如下图所示上图描述了用户空间应用程序通过系统调用来调用程序的过程。一般而言在驱动程序的设计中,会关系 struct file 和 struct inode 这两个结构体。用户空间使用open()系统调用函数打开一个字符设备时(intfd = open("dev/demo", O_RDWR))大致有以下过程:在虚拟文件系统...
2019-08-08 20:14:48 155
转载 终于理解list_entry和list_for_each_entry
内核中经常采用链表来管理对象,先看一下内核中对链表的定义struct list_head { struct list_head *next, *prev; };一般将该数据结构嵌入到其他的数据结构中,从而使得内核可以通过链表的方式管理新的数据结构,看一个例子: struct example { member a; struc...
2019-08-08 18:43:19 1573
my_usb.rar
2019-11-16
tslib-1.4.tar.rar
2019-08-12
基于Qt的人脸识别
2018-12-01
ST 传感器驱动
2018-09-19
Qt5开发及实例
2018-06-08
QT平台下模拟qq通信
2018-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人