2017-06-09 - 1、在/proc/partitions中存放着U盘的设备名称,如sda,sdb2等,以sd开头。 major 主设备号,比如一个U盘有3个分区,主设备名为sda,major为8,分区的major也为8,minor则为分区号,sda1,sda2,minor值为1 ,2 sda的minor为0,name即为设备名,连接/dev./设...
2017-06-09 - 1、介绍/proc/mounts 如何利用/proc/mounts知道已经挂载上的设备呢,我们先来看看/proc/mounts都有啥东西 解释一下,第一列是设备路径,比如说/dev/sda1,第二列是挂载点(即设备挂载到的目录),第三列是以什么文件系统挂载。 2、编代码读取前3列 #include...
2017-06-09 - 1、介绍/proc/filesystems /proc/filesystems里存放着本台机器Linux系统支持的文件挂载系统,不同的linux系统可能会得到不同的结果。 2、简要代码 #include stdio.h #include stdlib.h #include string.h static char chFstypeInfo[][10] = { {ext3}, {ext2}...
2017-06-08 - Dlib是一个C++编写的工具包,它包含了机器学习算法以及一些用来解决现实复杂问题的工具,可以广泛应用于机器人、嵌入式设备、手机,甚至高性能计算中,可以在其官网了解更多。这里下载它来试用一下,下载后解压,目录结构如下: 在examples目录下是C++的一些...
2017-06-08 - cpu: s3c2440(arm9) Linux内核:linux-3.0 开发板:fl2440 开发模块:LED 前言:之前为了学习了解驱动的写法,所以编写与测试过led驱动,然而linux3.0的内核已经有了这个led驱动,所以我们只需要使能移植到我们的fl2440开发板上即可 1.源码修改 查看fl2440开...
2017-06-08 - IC总线仅使用SCL,SDA两根信号线实现设备间的数据交互,被广泛应用于微控制领域芯片与芯片之间的通信,如EEPROM,实时时钟,小型LCD等与CPU之间的通信。 I2C协议 I2C利用两根总线根据自己的通信协议实现数据交互 起始信号:当SCL为高期间,SDA由高到低的跳变...
2017-06-08 - cpu: s3c2440(arm9) Linux内核:linux-3.0 开发板:fl2440 开发模块:USB-DEVICE(gadget) 前言:生活中我们经常会将智能手机用数据线插上pc,然后PC对智能手机识别为存储设备,进而我们可以进行读写文件,那么本文介绍的技术就是如何将fl2440开发板模拟成类似...
2017-06-08 - 开发板:fl2440 Linux内核:linux-3.0 1.添加USB结构体变量,加厂商ID和设备ID [zoulei@CentOS linux-3.0]$vim arch/arm/mach-s3c2440/mach-smdk2440.c --- mach1-smdk2440.c 2017-04-15 06:12:36.061000246 -0700 +++ mach2-smdk2440.c 2017-04-15 06:21:30...
2017-06-08 - 最近因为要提取很多图片,自己的图片的数据集采用的是LFW Face Database,该数据集如下图所示。 在lfw的文件夹下,有很多的子文件夹,每一个子文件夹有一个或几张的图片,现在我需要把所有的图片提取到其他的文件夹下,并把所有的图片规范的重命名。因为这里...
2017-06-07 - 校园网在windows和手机上都有客户端了,不用很麻烦的每天打开电脑后必须要打开网页登录。但是在Linux和mac上还没有同学做这个应用,所以写了个脚本可以凑合先用着。 ################################################################### # author: wangbin...
2017-06-05 - 条件变量是实现线程间同步的一种方法,条件变量用来自动阻塞一个线程,直到收到收到一个cond信号或其它特殊情况发送,条件变量使用的时候必须与互斥量同时使用,这是为了保证条件量在线程间操作的原子性。 1、创建一个条件变量cond: int pthread_cond_init(...
2017-06-02 - 最近在在用codeblock 用C语言完成数据结构的上机习题,发现有一些常见的代码在无法用gcc编译成功,但是在vc6.0 却可以编译通过,原因是使用了不同的编译器的缘故。 例如使用了引用类型的函数参数,以及2重指针,用gcc均无法编译通过,但是用C++ 的编译器是可...
2017-06-02 - 进入xx.cpp的目录,运行shell指令: dpkg --configure -a apt-get install autoconf autoscan cp configure.scan configure.ac vim configure.ac 在configure.ac中,需要添加AM_INIT_AUTOMAKE宏,send_rtp是最后生成的文件名,别的不用管,xx.cpp有一个就行...
2017-05-31 - 有名管道的读写有阻塞和非阻塞两种,可以在open()时指定,下面我们对各种情况进行一些讨论。 //写进程 #include sys/types.h #include sys/stat.h #include errno.h #include fcntl.h #include string.h #include stdio.h #define FIFO_NAME /tmp/myfifo mai...
2017-05-29 - 主机操作系统:CentOS 6.7 交叉编译环境:arm-Linux-gcc 开发板平台:fl440 linux内核版本:linux-3.0 之前我的根文件系统挂载起来之后,在开发板上输入ifconfig -a 发现我的以太网卡什么都没有,后来我一个朋友告诉我需要添加网卡驱动,于是通过上网查资料...
2017-05-29 - 任务场景 文件夹下持续进入文件,每隔10分钟进行文件清理操作,压缩转移至备份服务器。 实现代码 #!/bin/bash targetDIR=/aaa backDIR=/bbb cd $ targetDIR for name in * do nowTime=`date +Y%m%d_%H%M%S` cd $name if ls *.txt /dev/null 21 ; then mv *.t...
2017-05-29 - mbedtls简介 ARM mbedtls使开发人员可以非常轻松地在(嵌入式产品中加入加密和 SSL/TLS 功能。它提供了具有直观的 API 和可读源代码的 SSL 库。该工具即开即用,可以在大部分系统上直接构建它,也可以手动选择和配置各项功能。 mbedtls 库提供了一组可单独使...
2017-05-27 - 最近需要更改一段C++的程序,其中使用到了C语言的线性代数库lapack,在window上的使用(在官网下载的CLAPACK-3.1.1-VisualStudio版本,打开工程分别编译,将生成的lib路径和文件放入到工程属性的链接器中),成功运行。但是在linux上安装时,却遇到了问题,纠...
2017-05-27 - 你是否厌烦了那些使用复杂语言编写的、难以部署的、总是在不停构建的解决方案?Golang 是解决这些问题的好方法,它和 C 语言一样快,又和 Python 一样简单。 但是你是如何使用 Golang 日志监控你的应用程序的呢?Golang 没有异常,只有错误。因此你的第一印...
2017-05-27 - Python-mode 是一个 Vim 插件,它使你能够在 Vim 编辑器中更快的利用包括 pylint、rope、pydoc、pyflakes、pep8、autopep8、pep257 和 mccable 在内的各种库来写 Python 代码,这些库提供了一些编码功能,比如静态分析、特征重构、折叠、补全和文档等。 推荐...
2017-05-25 - 这个教程将带领大家使用命令行创建 Hello World 应用程序 下载编译器 每个 release 都有一个独立的编译器版本,我们可以在GitHub Releases下载(https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2) 当前最新版本是 1.1.2-2 手动安装 解压下载好的...
2017-05-25 - 说实话,虽然对shell编程包括awk有所了解,但是对sed的多行与一行的处理还是不甚理解,在网上搜罗了一篇文章觉得还不错,记录一下: 今天一个工程师问我,怎么将一个文件中的多行转换成一行。我给出了如下三种方法: 1.采用awk awk BEGIN{RS=EOF}{gsub(/\n/,...
2017-05-24 - 开发高性能网络程序时。windows开发人员们言必称iocp,linux开发人员们则言必称epoll。大家都明确epoll是一种IO多路复用技术,能够很高效的处理数以百万计的socket句柄,比起曾经的select和poll效率高大发了。 我们用起epoll来都感觉挺爽,确实快,那么。它...
2017-05-23 - 分析的源码:九鼎为s5pv210移植过的Linux+qt4.8的kernel,内核版本号2.6.35。 建立映射表的三个关键部分: 映射表 映射表建立函数 映射表建立函数被调用 1.映射表 具体物理地址和虚拟地址的值相关的宏定义,也就是文章《随笔Linux字符设备驱动开发基...
2017-05-23 - subsys_initcall是一个宏,定义在Linux/init.h中。经过对这个宏进行展开,发现这个宏的功能是:将其声明的函数放到一个特定的段:.initcall4.init subsys_initcall __define_initcall(4,fn,4) 以下文件在/include/linux/init.h: 分析module_init宏,可以看...
2017-05-23 - 一、编译步骤 解压下载的GDAL源程序(//m.ajphoenix.com/linux/18914.html),并在命令行中切换到解压目录。 tar -xzvf gdal-2.1.3.tar.gz cd gdal-2.1.3 GDAL可通过configure来实现一些自定义配置,可通过./configure h命令来查看。--prefix=path表...
2017-05-23 - 最近看《Linux System Programming》看到关于File Descriptor的描述,看Java文档感觉似是而非不太清楚,从linux方面就很容易理解了。 FileDescriptor 一个打开的文件通过唯一的描述符进行引用,该描述符是打开文件的元数据到文件本身的映射。在Linux内核中,...
2017-05-22 - 背景介绍:我们已经有一套代码在windows和android上编译通过了,目前需要将这些代码在MacOS和Linux上编成动态链接库,所以直接使用android的编译宏,少量修改即可正常编译。这里只是介绍如何使用CLion进行跨平台编译。 1.使用CLion的Import Project from Sou...
2017-05-22 - 1.首先,从github上下载leveldb源码的zip文件 使用命令 #wget https://codeload.github.com/google/leveldb/zip/master 2.下载完后,使用#file master查看,发现它是一个.zip文件,所以要使用#unzip master来解压缩,解压缩后会在当前文件下生成一个leveldb-...
2017-05-20 - 以下是用C++提取Linux内存的使用率的代码: //程序实现的功能是,通过把内存使用的情况读入文本文件再存入变量 #includestdio.h #includeunistd.h #includestdlib.h #includeiostream #includefstream #includestring.h using namespace std; class A{ publi...
2017-05-20 - 以下是用C++提取Linux的cpu的利用率的代码: #include stdio.h #include unistd.h #include stdlib.h #includeiostream #includefstream using namespace std; class A{ public: //int c; void display() { system(top -n 1 |grep Cpu | cut -d -f 9 cpu.txt...
2017-05-19 - 背景 测试环境 Fedora 2524 CentOS 7 目测 Deepin 并没有坑 而Ubuntu可能也存在这个问题(也有类似abrt的二进制文件) 前言 从Windows平台下转到到Linux下的C/C++开发可能第一个接触到的新名词就是段错误 首先是一段神秘代码 #include stdio.h int main(void)...
2017-05-19 - 网上的旋转显示都是这种方法: #include QApplication #include QGraphicsView #include QGraphicsProxyWidget #include ./form.h int main(int argc, char *argv[]) { QApplication a(argc, argv); Form *form = new Form; QGraphicsScene *scene = new QGr...
2017-05-18 - 通过学习已经学会了GCC的一些基础的命令,以及如何将C语言源代码编译成可执行文件。 我们已经知道在linux环境下编译源码时,常会有以下三个步骤: ./configure make make clean 执行./configure时,会检查系统的配置等,得到相关的有用的信息,生成Makefile...
2017-05-16 - 你想成为开源项目中得意满满、功成名就的那个人吗,那就要遵守下面的潜规则。 正如体育界不成文的规定一样,这些规则基本上不会出现在官方文档和正式记录上。比如说,在棒球运动中,从比分领先时不要盗垒,到跑垒员跑了第一时也不要放弃四坏球保送。对于圈外...
2017-05-16 - 在最开始移植Linux内核的时候,发现自己配置的内核编译出来启动信息十分的杂乱无章。但是厂家提供的Linux镜像文件下载到开发板中,打印的信息十分清晰。它在打印内核启动信息之前都会先打印一个时间信息出来! 下面来看看怎么配置Linux内核: 首先在Linux内...
2017-05-16 - 利用工作之便,今天研究了kernel下cmdline參数解析过程。记录在此。与大家共享。 Kernel 版本:3.4.55 Kernel启动时会解析cmdline,然后依据这些參数如console root来进行配置执行。 Cmdline是由bootloader传给kernel。如uboot。将须要传给kernel的參数做成...
2017-05-16 - 微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己实现一个简单的原生Linux程序运行器, 这个运行器在用户层实现, 原理和Bash On Windows不完全...
2017-05-13 - 本文主要介绍如何在树莓派(ubuntu mate系统)下写第一个c程序。 两种方式:一是emacs;二是vi。 一、用emacs写c程序 1:打开终端,输入 emacs hello-em-world.c 如果你还没有安装,会出现以下提示,如图: 那么再在终端输入 sudo apt install emacs24 如图...
2017-05-12 - 0.环境平台 操作系统平台: Linux leaf 4.4.0-75-generic #96-Ubuntu SMP Thu Apr 20 09:56:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 相关工具语言:vim,gcc,C语言 1.程序源代码 xpleaf@leaf:~/operation/1$ cat pflag.c #include unistd.h #include p...