自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 linux 条件变量

在多线程编程中仅使用互斥锁来完成互斥是不够用的, 如以下情形: 假设有两个线程 t1 和 t2, 需要这个两个线程循环对一个共享变量 sum 进行自增操作,那么 t1 和 t2 只需要使用互斥量即可保证操作正确完成,线程执行代码如所示: pthread_mutex_t sumlock= PTHREAD_MUTEX_INITIALIZER;void * t1t2(void)...

2019-09-03 12:39:00 270

转载 多线程编程 ------ 互斥量

1. 创建互斥量pthreads 使用 pthread_mutex_t 类型的变量来表示互斥量,同时在使用互斥量进行同步前需要先对它进行初始化,可以用静态或动态的方式对互斥量进行初始化。 (1)静态初始化 对于静态分配的 pthread_mutex_t 变量来说,只要将 PTHREAD_MUTEX_INITIALIZER赋给变量就行了。 pthread_mutex_t...

2019-09-02 19:50:00 376

转载 线程相关笔记

当主线程先于其它进程执行 pthread_exit()时,进程还不会退出,只有最后一个线程也完成了,进程才会退出。执行exit()或者在主线程执行return,会立即终止进程的执行。pthread_create()的第四个形参是线程函数的形参一个可“join”的线程所占用的内存仅当有线程对其执行立pthread_join()后才会释放,因此为了避免内存泄漏,所有线程...

2019-08-30 21:06:00 258

转载 realloc ------ 扩大malloc得到的内存空间

char* p = malloc(1024);char* q = realloc(p,2048);现在的问题是我们应该如何处理指针 p。 刚开始按照我最直观的理解,如果就是直接将 p = NULL;。 到最后只需要释放 q的空间就可以了。因为最近在做个封装。结果在做单元测试的时候发现。有时候我在 free(q); 的时候会出错。这样我就郁闷了。后来仔细一跟踪,发现 reall...

2019-08-11 14:01:00 435

转载 gcc 消除未使用变量的警告

我们写代码的时候经常需要遇到一些情况,参数暂时没用到。但是这个参数必须存在。例如linux下线程实体函数void *thread_xx(void *arg)如果不处理,gcc编译时就会报"warning: unused parameter 'arg' [-Wunused-parameter]"的警告改成如下形式可以解决此问题void *thread_xx(__attribute__(...

2019-07-23 17:40:00 1594

转载 GCC 编译参数

-s这个参数会把符号表从最终的可执行文件中删除。没有符号表,你就不能用gdb调试了,但是程序会更小-O0不做任何优化,这是默认的编译选项-c 只编译不链接,产生.o文件,就是obj文件,不产生执行文件-w关闭所有警告信息-W和-Wall开启所有警告,一般一起使用-fmessage-length=0默认情况下,gnu工具链编译过程中,控制台输出的...

2019-07-23 17:16:00 183

转载 星际争霸 2 快捷键

空格Space:将视野移动到最近一次或上一次警告区域退格Backspace:将视野移动到本方基地CTRL+鼠标右键:(选择单位时)移动攻击A:移动攻击D:卸载所有单位到指定地点C:返还资源(是否是销毁建筑)P:巡逻CTRL+数字键:(选择单位时)对选定的单位进行编队SHIFT+数字键:(选择单位时)将选择的单位追加编入到...

2019-04-29 23:07:00 1119

转载 快捷键

选中区域创建图层:ctrl+j调整图层大小:ctrl+T使图层处于激活状态;按 shift 再调整图层大小可以以任意长宽比例快速选择:如果选择过多,按 Alt选择移除;Ctrl+D取消选择蒙版:黑色隐藏,白色显示去污:五点修复画笔工具仿制图章工具:使用来自画像其他部分的像素绘画转载于:https://www.cnblogs...

2019-04-29 21:48:00 57

转载 PS - 安装

https://www.isharepc.com/10255.html转载于:https://www.cnblogs.com/god-of-death/p/10786533.html

2019-04-28 20:57:00 84

转载 VMware 多个虚拟机多个外网IP

1111111111转载于:https://www.cnblogs.com/god-of-death/p/10722744.html

2019-04-17 12:24:00 1581

转载 CC1310 笔记

GPIO控制:#include <ti/drivers/GPIO.h>GPIO_init() 函数会调用 结构体实例GPIOCC26XX_config,把需要使用到的GPIO放一起,然后通过排列编号设置某个GPIO。或者#include <ti/drivers/PIN.h>UART:遗留问题:无法正常使用UART_writeP...

2019-02-28 19:03:00 739

转载 pthread 线程立即取消的两种方法

1.相关函数介绍a.int pthread_cancel(pthread_t thread)发送终止信号给thread线程,如果成功则返回0,否则为非0值。发送成功并不意味着thread会终止。b.int pthread_setcancelstate(int state, int *oldstate) 设置本线程对Cancel信号的反应,state...

2019-02-22 18:11:00 339

转载 进程间信号的接收和处理 ------ sigaction 的使用

linux内核会发射一些信号,应用程序可以捕捉信号执行特定函数int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 成功:0;失败:-1,设置errnoact:传入参数,新的处理方式。oldact:传出参数,旧的处理方式。struct sigact...

2019-02-22 16:29:00 95

转载 ubuntu 默认 root 密码

安装完Ubuntu后忽然意识到没有设置root密码,不知道密码自然就无法进入根用户下。到网上搜了一下,原来是这麽回事。Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码。我们可以在终端输入命令 sudo passwd,然后输入当前用户的密码,enter,终端会提示我们输入新的密码并确认,此时的密码就是root新密码。修改成功后,输入命令 su root,再输入新的...

2019-02-20 16:29:00 89

转载 SCP ----- 实现两个linux主机间数据通信

----------转载于:https://www.cnblogs.com/god-of-death/p/10405875.html

2019-02-20 12:49:00 303

转载 Exynos 4412

用于Exynos4412启动的SD卡布局第0个扇区是保留扇区(Reserved),第1到第16扇区共8KB的空间存放BL1(E4412_N.bl1.bin),从第17到第48扇区的16KB空间用于存放BL2(u-boot-spl.bin),之后的扇区可以根据实际需求自己安排。SPL(BL2)  SPL是uboot第一阶段执行的代码。 主要负责搬移uboot第二阶段的...

2019-01-25 19:04:00 255

转载 uImage

linux内核经过编译后会生成一个ELF格式的可执行程序,叫vmlinux或vmlinuz,是原始的未经任何处理加工的原版内核ELF文件;嵌入式系统烧录的一般不是这个vmlinuz/vmlinux,而是要用objcopy工具制作成烧录镜像格式,经过制作加工成烧录镜像的文件就叫Image(这个制作烧录镜像主要目的就是缩减大小,节省空间)。原则上Image就可以直接被烧录到Flash上进行启...

2019-01-24 18:36:00 385

转载 tty

tty一词源于Teletypes,或teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘和显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,他有多种类型,通常使用tty来简称各种类型的终端设备。tty0就是/dev/console,/dev/console指向当前虚拟控制台,/dev/tty0是当...

2019-01-18 11:22:00 82

转载 busybox编译

sync.c:(.text.sync_main+0x7c): undefined reference to `syncfs'Coreutils—>sync选项去掉nsenter.c:(.text.nsenter_main+0x1b0): undefined reference to `setns'Linux System Utilities—>nsenter,...

2019-01-17 18:34:00 210

转载 linux basic ------ dd 和 cp 的区别

问:看了一些关于dd和cp的命令,但是我始终无法明白dd和cp之间有什么不同?不是都可以看成是备份的作用么?还有什么区别呢?答:1、dd是对块进行操作的,cp是对文件操作的。2、比如有两块硬盘,要将第一块硬盘内的数据复制到第二块硬盘上dd if=/dev/hda of=/dev/hdc bs=4 count=1024bs表示每次复制的块大小count表示要复制的次数这样第...

2019-01-15 20:16:00 5846

转载 Linux设备树(六 memory&chosen节点)

六 memory&chosen节点根节点那一节我们说过,最简单的设备树也必须包含cpus节点和memory节点。memory节点用来描述硬件内存布局的。如果有多块内存,既可以通过多个memory节点表示,也可以通过一个memory节点的reg属性的多个元素支持。举一个例子,假如某个64位的系统有两块内存,分别是• RAM: 起始地址 0x0, 长度 0x80000000 (2...

2019-01-15 11:36:00 546

转载 Linux设备树(五 根节点)

五 根节点一个最简单的设备树必须包含根节点,cpus节点,memory节点。根节点的名字及全路径都是“/”,至少需要包含model和compatible两个属性。model属性我们在属性那节已经说过是用来描述产品型号的,类型为字符串,推荐的格式为“manufacturer,model-number”(非强制的)。根节点的model属性描述的是板子的型号或者芯片平台的型号,如:mode...

2019-01-15 11:31:00 530

转载 Linux设备树(四 中断)

四 中断中断一般包括中断产生设备和中断处理设备。中断控制器负责处理中断,每一个中断都有对应的中断号及触发条件。中断产生设备可能有多个中断源,有时多个中断源对应中断控制器中的一个中断,这种情况中断产生设备的中断源称之为中断控制器中对应中断的子中断。一般情况中断产生设备数量要多于中断控制器,多个中断产生设备的中断都由一个中断控制器处理,这种多对一的关系也很像一个树形结构,所以在设备树中,...

2019-01-15 10:49:00 565

转载 Linux设备树(三 属性)

三 属性(property)device_type = "memory"就是一个属性,等号前边是属性,后边是值。节点是一个逻辑上相对独立的实体,属性是用来描述节点特性的,根据需要一个节点由0个,1个或多个属性表示节点的特性。一个属性由名字和值两部分组成。和节点的名字类似,规范要求属性名字由1到31个字符组成。和节点名字字符的种类有些区别,不允许有大写字母,增加了问号和井号两个字符。不...

2019-01-15 10:29:00 340

转载 Linux设备树(二 节点)

二 节点(node)的表示首先说节点的表示方法,除了根节点只用一个斜杠“/”表示外,其他节点的表示形式如“node-name@unit-address”。@前边是节点名字,后边是节点地址。节点名字的长度范围是1到31,可以使用的字符在ePAPR规范中有说明,包括:0-9 数字a-z 小写字母A-Z 大写字母, 逗号. 句点(英)_ 下划线+ ...

2019-01-15 10:19:00 193

转载 Linux设备树(一 概述)

一 概述设备树(Device tree)是一套用来描述硬件属相的规则。ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡ARM平台应该参考其他平台如PowerPC的设备树机制描述硬件。因为在此之前,ARM平台还是采用旧的机制,在kernel/arch/arm/plat-xxx目录和kernel/arch/a...

2019-01-15 10:12:00 236

转载 内核与ramdisk到底是什么关系

ramdisk一个作用就是用来解决boot过程中mount根文件系统的“先有鸡还是先有蛋”的问题的。一般来说,根文件系统在形形色色的存储设备上,不同的设备又要不同的硬件厂商的驱动,比如intel的南桥自然需要intel的ide/sata驱动,VIA的南桥需要VIA的ide/sata驱动,根文件系统也有不同的文件系统的可能,比如ubuntu发行版可能一般用ext3,suse可能就不是了,不...

2019-01-12 15:19:00 602

转载 数组指定初始化器

C99增加了一个新特性:指定初始化器。利用该特性可以初始化指定的数组元素。例如,只初始化数组中的最后一个元素。对于传统的的C初始化语法,必须初始化最有一个元素之前的所有与还俗,才能初始化它:int arr[6]={0,0,0,0,0,212];//传统的语法而使用C99的新特性:int arr[6]={[5]=212};这样写和上面的结果是一样的,由于前几个元素没有初始化...

2019-01-04 16:00:00 115

转载 linux driver ------ platform模型,驱动开发分析

一、platform总线、设备与驱动 在Linux 2.6 的设备驱动模型中,关心总线、设备和驱动3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。 一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、...

2019-01-04 11:31:00 92

转载 linux driver ------ 字符设备驱动 之 “ 创建设备节点流程 ”

在字符设备驱动开发的入门教程中,最常见的就是用device_create()函数来创建设备节点了,但是在之后阅读内核源码的过程中却很少见device_create()的踪影了,取而代之的是device_register()与device_add(),将device_create()函数展开不难发现:其实device_create()只是device_register()的封装,而devi...

2019-01-03 18:15:00 109

转载 STM32 ------ 串口 数据位长度 和 奇偶校验位

USART_InitStructure.USART_WordLength 的值是数据位长度+一个奇偶校验位(如果无奇偶校验则不加一)转载于:https://www.cnblogs.com/god-of-death/p/10207190.html

2019-01-02 10:11:00 972

转载 linux 内核代码结构

1、ARM的核心代码保存在arch/arm目录下2、ARM SoC core architecture code保存在arch/arm目录下3、ARM SOC的周边外设模块的驱动保存在drivers目录下4、ARM SOC的特定代码在arch/arm/mach-xxx目录下转载于:https://www.cnblogs.com/god-of-death/p/1018125...

2018-12-26 19:43:00 87

转载 iTOP4412开发板相关内容

处理器:exynos4412转载于:https://www.cnblogs.com/god-of-death/p/10176069.html

2018-12-25 19:48:00 61

转载 linux driver ------ GPIO的驱动编写和调用

判断哪些文件被编译进内核:1、通过 make menuconfig 查看2、比如查看gpio类型的文件,输入 ls drivers/gpio/*.o,有生成.o文件表示被编译进内核在编写驱动程序之前要保证该GPIO口没有被其他程序占用,若被占用则需要取消编译那个驱动程序。/arch/arm/mach-exynos/include/mach/gpio-ex...

2018-12-24 18:37:00 904

转载 html ------ label 标签的 for 属性

<form> <label for="male">Male</label> <input type="radio" name="sex" id="male" /> <br /> <label for="female">Female</label> <input ty...

2018-12-19 10:42:00 98

转载 STM32F4 ------ RTC

如果只执行HAL_RTC_GetTime(),读取完后时间不再跑,需要执行如下:HAL_RTC_GetTime() HAL_RTC_GetDate()转载于:https://www.cnblogs.com/god-of-death/p/10026399.html...

2018-11-27 14:54:00 145

转载 Altium Designer 18 ------ 常用功能记录

PCB选中某条线路,按一下 Tab 键选中整条线路PCB中,按 “N” 键选择隐藏或显示某个网络配置Altium Designer 18 教程所需的捕捉网格的值:G显示Snap Grid菜单,您可以在其中选择英制或公制值(请注意菜单中显示的快捷方式)Ctrl + Shift + G打开“ 捕捉网格”对话框Ctrl + G打开笛卡尔网格编辑器对话框,将Sna...

2018-11-23 16:44:00 395

转载 loopback(回环)

Loopback接口是一个虚拟网络接口,在不同的领域,其含义也大不一样。1. TCP/IP协议栈中的loopback接口在TCP/IP中回环设备是一个通过软件实现的虚拟网络接口,它不与任何硬件相关联。loopback接口一般被完整的集成在计算机系统的内部网络框架中。IP协议中的loopback地址RFC2606中明确指出了loopback地址的标准域名为lo...

2018-11-09 11:36:00 1903

转载 socket编程 ------ UDP服务器

void vLANcommunication( void *pvParameters ){ int32 listenfd; do{ listenfd = socket(AF_INET, SOCK_DGRAM, 0); if(listenfd == -1) { ...

2018-11-08 15:58:00 80

转载 C语言#和##操作符使用方法

1、#操作符 1:#操作符用于预处理阶段,将宏参数转换为字符串,只有宏定义中使用(#define) 使用方法: #define STRING(x) #x printf("%s\n",STRING(Hello World!...

2018-11-06 20:20:00 138

空空如也

空空如也

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

TA关注的人

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