自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 ubuntu 20.04 虚拟机共享文件夹

1. vmware 配置共享文件夹(略)2. ubuntu安装open-vm-toolssudo apt-get install open-vm-toolssudo apt-get install open-vm-tools-desktopsudo apt-get install open-vm-tools-dkmsubuntu 查看是否设置成功vmware-hgfsclient : 显示共享文件夹名3. open-vm-tools-dkms 没有源a. 需要换源关于Ub.

2022-02-08 17:07:39 2854

原创 vim : Depends: vim-common (= 2:8.0.1453-1ubuntu1.8) but 2:8.1.2269-1ubuntu5 is to be installed

vim 安装时报错:ozzy@ubuntu:~$ sudo apt-get install vimReading package lists... DoneBuilding dependency tree Reading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if y

2022-02-08 15:53:19 1370 1

转载 Perforce 常用操作(转)

2.2.1.添加(Add)文件夹及文件1.在Workspace中选定要添加的文件夹/文件上右击,选择“Mark for Add”,添加文件。将添加文件行为显示在pending changelists工作区中。在工作区上增加好文件夹和文件后,图标上有个红色的加号标志,表明此时增加的文件夹和文件还仅仅存在客户端的工作区中,还没有提交到服务器上的仓库中。所以,右键点击需要提...

2019-06-25 16:52:24 1815

转载 sscanf用法

sscanf的高级用法 正则表达式

2019-06-05 15:02:23 146

转载 C++中strftime()的详细说明

我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下:size_tstrftime(char*strDest,size_tmaxsize,constchar*format,conststructtm*timeptr);我们可以根据format指向字符串中格式命令把timeptr中保存的时间信息放在strDest指向的字符串中,最多向...

2019-05-09 20:39:59 10842

转载 Linux获取当前时间

代码(可以把clock_gettime换成time(NULL))1 void getNowTime()2 {3 timespec time;4 clock_gettime(CLOCK_REALTIME, &time); //获取相对于1970到现在的秒数5 tm nowTime;6 localtime_r(&time.tv_se...

2019-05-09 20:38:54 2306

转载 Linux不能删除,报错”Device or resource busy”

我在配置Hadoop时,想重新格式化,把原来的文件都删了,结果发现不能删除,报了以下错误rm: cannot remove `name/current/.nfs00000000036a004e00000009': Device or resource busyrm: cannot remove `name/.nfs00000000036a00320000000a': Device or re...

2019-05-09 16:29:47 20473

转载 popen函数和system函数详解

1、popen函数我们先用man指令查一下popen函数:函数说明:(1)popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。(2)参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随后进程便可利用此文件指针来读取子进程的输出...

2019-03-21 17:59:50 519

转载 LOCAL_CFLAGS用法

小结项目中遇到的同一项目工程中编译不同选项的做法,使用LOCAL_CFLAGS。先介绍下LOCAL_CFLAGSLOCAL_CFLAGS += -DXXX 相当于在所有源文件中增加一个宏定义#define XXX本次方法:Android.mk中增加ifeq ($(PRODUCT_MODEL),XXX_A)LOCAL_CFLAGS += -DBUILD_MODEL1endi...

2019-03-10 14:24:45 7439

转载 Android中system.img的两种格式raw,sparse及其相互转换方法

搞Android的同学经常会接触到system.img。但是该文件经常以两种格式出现:raw和sparse。一种是raw ext4 image,即经常说的raw image,使用file观察它: 其特点是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载,因此比较大(一般1G左右)。$ file system.imgsystem.img:Linux rev ...

2019-03-08 11:59:01 1103 1

转载 Linux系统挂载存储只读改成读写

1、mount:用于查看哪个模块输入只读,一般显示为:[root@ubuntu ~]# mount/dev/cciss/c0d0p2 on / type ext3 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)tmpfs on /dev/shm type tmpfs (rw)/dev/dm-0 on /ho...

2019-03-07 10:58:04 2365

转载 android init进程分析 ueventd — 设备节点的创建、固件更新过程

ueventd主要是负责设备节点的创建、权限设定等一些列工作。服务通过使用uevent,监控驱动发送的消息,做进一步处理。ueventd实际和init是同一个binary,只是走了不同分支,可参看前一部分。ueventd的整体代码比较简单,主要是三部分:解析ueventd.rc 初始化设备信息 循环polling uevent消息主函数及相关功能如下如下:? 1 ...

2019-02-18 14:52:39 764

转载 USB四种传输模式

当USB插入USB总线时,USB控制器会自动为该USB设备分配一个数字来标示这个设备。另外,在设备的每个端点都有一个数字来表明这个端点。USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),事务有四种类型,分别是Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Trans...

2019-02-15 11:32:30 8219

转载 CAN协议,系统结构和帧结构

CAN:Controller Area Network,控制器局域网是一种能有效支持分布式控制和实时控制的串行通讯网络。CAN-bus: Controller Area Network-bus,控制器局域网总线技术 CAN总线系统结构CAN 控制器接收控制单元中微处理器发出的数据,处理数据并传给CAN收发器CAN收发器将数据传到总线 or 从总线接收数据给控制器CA...

2019-02-15 11:15:25 807

转载 AMBA总线协议AHB、APB、AXI对比分析

一、AMBA概述    AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构    AHB (Advanced High-performance Bus) 高级高性能总线    ASB (Advanced System Bus) 高级系统总线    APB (Advanced Peripheral Bus) 高级外围总线...

2019-01-29 17:46:19 1323

转载 git 撤销修改以及删除文件

撤销修改1、如果当你修改了代码,然后又发现修改错误以后,想撤销前面的操作的时候该怎么办呢?既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。如果用 git status 查看一下:你可以发现,Git会告诉你, git checkout -- file 可以丢弃工作区的修改:2、如果当你修改了代码,已经add到暂存区而没有进行c...

2019-01-29 15:19:22 160

转载 init.rc语法介绍

init.rc语法介绍1、init.rc是一个可配置的初始化文件,通常定制厂商可以配置额外的初始化配置,init.%PRODUCT%.rc2、init.rc是在$GINGERBREAD/system/core/init/init.c中读取的,它基于“行”,包含一些用空格隔开的关键字(它属于特殊字符)3、如果关键字中有空格,处理方法类似于C语言,使用/表示转义,使用“”防止关键字被断开,...

2019-01-28 17:29:59 511

转载 可变参数的宏定义

link: https://www.cnblogs.com/caosiyang/archive/2012/08/21/2648870.htmlTODO: 原理printf()和fprintf()这些输出函数的参数是可变的,在调试程序时,你可能希望定义自己的参数可变的输出函数,那么可变参数宏会是一个选择。C99中规定宏可以像函数一样带有可变参数,比如<span style...

2019-01-28 15:40:12 461

转载 线程同步之信号量(sem_init,sem_post,sem_wait)

信号量和互斥锁(mutex)的区别:互斥锁只允许一个线程进入临界区,而信号量允许多个线程同时进入临界区。不多做解释,要使用信号量同步,需要包含头文件semaphore.h。主要用到的函数:int sem_init(sem_t *sem, int pshared, unsigned int value);,其中sem是要初始化的信号量,pshared表示此信号量是在进程间共享还是线程间共...

2019-01-25 14:13:46 437

转载 linux编译命令——make -j8

项目越来越大,每次需要重新编译整个项目都是一件很浪费时间的事情。Research了一下,找到以下可以帮助提高速度的方法,总结一下。1. tmpfs有人说在Windows下用了RAMDisk把一个项目编译时间从4.5小时减少到了5分钟,也许这个数字是有点夸张了,不过粗想想,把文件放到内存上做编译应该是比在磁盘上快多了吧,尤其如果编译器需要生成很多临时文件的话。这个做法的实现成本最低,在Li...

2019-01-24 21:39:17 41528

转载 git pull --rebase

有一种场景是经常发生的。大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个。然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周。在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交。这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码。甚至是会面临很多冲突需要解决,而这个时候你可能还需要对冲突的部分...

2019-01-24 17:30:02 636

转载 Linux内核结构体--kfifo 环状缓冲区

1、前言  最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟发送。为了保证进程A减少等待时间,可以在A和B之间采用一个缓冲区,A每次将数据存放在缓冲区中,...

2019-01-18 22:04:45 400

转载 select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:         #include <sys/time.h> #include <unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_...

2019-01-18 18:12:39 230

转载 Linux字符设备驱动

Linux字符设备驱动 一、字符设备基础  字符设备 二、字符设备驱动与用户空间访问该设备的程序三者之间的关系 三、字符设备模型 1、Linux内核中,使用 struct cdev 来描述一个字符设备 动态申请(构造)cdev内存(设备对象) 初始化cdev的成员,并建立cdev和file_operations之间关联起来 注册cdev设备对象(添加到系统字符...

2019-01-18 18:11:25 174

转载 nor flash、 nand flash以及emmc的区别

之前一直没有搞懂nor flash、 nand flash以及emmc的区别 nor:NOR Flash需要很长的时间进行抹写,但是它提供完整的寻址与数据总线,并允许随机存取存储器上的任何区域,这使的它非常适合取代老式的ROM芯片。当时ROM芯片主要用来存储几乎不需更新的代码,例如电脑的BIOS或机上盒(Set-top Box)的固件。NOR Flash可以忍受一万到一百万次抹写循环,它同...

2019-01-16 23:00:13 348

转载 UART、SPI、I2C协议异同点

I2C、SPI、UART都是常见的低速板级通信协议,目前主流的SoC都内置了这些通讯协议的控制器,同样,各种传感器、Touch控制器、指纹模块、蓝牙模块、WIFI模块也都兼容这三种通信方式的一种或几种。对于这三种通信协议的差别,可以区分到非常细,包括信号的单位、传输协议中的封包格式等。  UART一般由TXD、RXD、GND三根线组成,是一种异步传输协议。无论是主机还是从机,均可以自由发送数据...

2019-01-16 22:13:24 773

转载 PCB制图-STM32的PVD、POR、PDR

下面对上面2张图和表格中的数据做一个简要的解释:1)PVD = Programmable Votage Detector 可编程电压监测器它的作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。在给出表格的上半部分就是可编程的监视阀值数据。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。供电下降的阀值与供电上升的PVD阀...

2019-01-16 20:33:53 679

转载 Android手机上Audio DSP频率低 memory小的应对措施

我在前面的文章(Android智能手机上的音频浅析)中说过Android手机上有一块专门用于音频处理的DSP,它的特点是频率低(一般几百MHZ)、内部memory小(通常不超过100k word)。要想让Audio DSP上放下更多的内容以及能流畅的运行,要有一些应对措施。今天就聊聊这些措施。 1,频率低的应对措施由于DSP的频率低,要想软件能流畅的运行,就得把运行时的load降下来。...

2019-01-15 11:30:11 424

转载 关于DMA,TCM(ITCM和DTCM)和Cache

DMADMA=Direct Memory Access。这是一种通过硬件实现的数据传输机制。简单的说,就是不在CPU的参与下完成数据的传输。DMA是一种硬件设备。这种设备的工作原理是这样的:——首先CPU告诉DMA设备,要有一堆数据需要传输,为了效率而请它出马。(DMA请求)——DMA收到CPU的消息,开始准备。此时CPU把数据源地址、数据目标地址、传输数据量、传输模式等等参数告诉它。...

2019-01-14 23:49:53 2064

转载 linux下core dump【总结】

1、前言  一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来学会了从core文件中分析原因,通过gdb看出程序挂再哪里,分析前后的变量,找出问题的原因。当时就觉得很神奇,core文件是怎么产生的呢?难道系统会自动产生,可是...

2019-01-13 22:01:55 109

转载 Android 开发之 ---- bootloader (LK)

LK是什么           LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码  ,little kernel 是小内核小操作系统。           LK 代码 在 bootable/bootloadler/lk 目录下           LK 代码结构           +app       ...

2019-01-13 22:00:22 330

转载 学习网址

linux学习博客 http://www.wowotech.net/Linux学习书籍  https://baijiahao.baidu.com/s?id=1601404998850288910&wfr=spider&for=pc

2018-12-20 15:59:34 764

转载 正则表达式 - 元字符

下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的...

2018-12-20 15:17:41 127

转载 正则表达式 - 语法

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。例如: runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。 runoo*b,可以匹配 runob、runoo...

2018-12-20 14:52:39 125

转载 QML进阶教程:四、状态(States)和过渡(Transitions)

状态:通常我们将用户界面描述为一种状态。一个状态定义了一组属性的改变,并且会在一定的条件下被触发。另外在这些状态转化的过程中可以有一个过渡(定义了这些属性的动画或者一些附加的动作,当进入一个新的状态时,动作也可以被执行)。 为了让用户界面看起来更加自然,我们需要使用动画效果来增加一些过渡。一个过渡能够被状态的改变触发。在QML中,使用State元素来定义状态,需要与基础元素对象(Item) 的...

2018-11-13 11:01:08 310

转载 QtConcurrent

本文以 Qt 中的 QtConcurrent::run() 函数为例,介绍如何将函数运行在单独的某一个线程中。1  QtConcurrent::run()  QtConcurrent 是一个命名空间,它提供了高层次的函数接口 (APIs),使得编写的程序,可根据当前计算机中实际的 CPU 核数,自动调整运行的线程数目。  下面是 Qt 中的自带例程 runfunction,对应于安装目...

2018-11-06 20:38:19 461

转载 selenium3环境搭建,Firefox与对应的geckodriver, chrome与对应的Chromedriver

声明:今天所写的内容,大部分是摘自其他人的博客或者CSDN内容,自己总结了一下,方便日后自己查询,也方便大家!Firefox与对应的geckodriver火狐下载:http://ftp.mozilla.org/pub/firefox/releases/geckodriver下载:https://github.com/mozilla/geckodriver/releases版本对应关系...

2018-11-04 19:46:38 2879

转载 Selenium的安装与Firefox配置以及Selenium基本用法(超详细)

前言先来看看Selenium的定义:Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏...

2018-11-04 17:32:29 1255

转载 C++ 字节对齐

C++结构体字节对齐今天在编程中碰到一个坑,搞的调试了半天,最后发现程序中在写数据和读取数据时结构体定义不一致导致读取出来的数据不对,最终问题是由于数据结构的自动字节对齐导致了两端数据差异。下面附上一篇结构体对齐的详解文章,原文链接为:C++结构体字节对齐前言####在计算机中数据存储和传输以位(bit)为单位,每8个位bit组成1个字节(Byte)。32位计算机的字长为32位,...

2018-10-24 16:55:42 424

转载 Linux中文件描述符fd与文件指针FILE*互相转换实例解析

这篇文章主要介绍了Linux中文件描述符fd与文件指针FILE*互相转换实例解析,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下本文研究的主要是Linux中文件描述符fd与文件指针FILE*互相转换的相关内容,具体介绍如下。1.文件描述符fd的定义:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有...

2018-10-24 11:18:07 1557

空空如也

空空如也

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

TA关注的人

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