- 博客(23)
- 资源 (1)
- 收藏
- 关注
转载 ARM架构与体系学习(二)——3级流水线
看到汇编中很多关于程序返回与中断返回时处理地址都很特别,仔细想想原来是流水线作用的效果。所以,决定总结学习下ARM流水线。ARM7处理器采用3级流水线来增加处理器指令流的速度,能提供0.9MIPS/MHz的指令处理速度。PS:MIPS(Million Instruction Per Second)表示每秒多少百万条指令。比如0.9MIPS,表示每秒九十万条指令。MI
2017-11-14 12:50:38
465
转载 malloc原理和内存碎片
当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作: 1、检查要访问的虚拟地址是否合法 2、查找/分配一个物理页 3、填充物理页内容(读取磁盘,或者直接置0,或者啥也不干) 4、建立映射关系(虚拟地址到物理地址) 重新执行发生缺页中断的那条指令 如果第3步,需要读取磁盘,那么这次缺页中断就是majflt,否则就是minflt。 内存分配的原理从操作
2017-10-27 12:03:31
376
转载 字符指针与字符数组真正的区别
问题缘起先看一个示例示例1#include int main() { char *p = "hello"; char q[] = "hello"; printf ("p: %s\n", p); printf ("q: %s\n", q); return 0;}上面的例子会给出这样的输出p: helloq:
2017-10-27 11:17:33
269
转载 c语言中rand()函数的用法笔记
最近在学着用c写一些小程序,过程中遇到很多问题,在网上查很多大神的讲解,以及查阅vs2010的帮助文档。在此做个笔记,以便今后查阅,备忘。感谢无私奉献讲解的大神们!一、rand()rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。rand()会返回一个范围在0到RAND_MAX(32
2017-10-27 11:12:22
917
转载 关于malloc(0)的返回值问题--这两天的总结与实践篇
malloc() allocates size bytes and returns a pointer to the allocated memory. The memory is not cleared. If size is 0, then malloc() returns either NULL, or a unique pointer value that can later be suc
2017-10-26 15:12:30
1618
原创 1.判断是否为闰年
/************************************* 1、从键盘输入一个 年份 判断是否为闰年 闰年 :1 能被400整除 2 能被4整除 且不能被100整除 **************************************/# include void main(){ int year; puts(
2017-10-18 15:12:11
717
原创 typeof、offsetof、container_of的解释
链表是内核最经典的数据结构之一,说到链表就不得不提及内核最经典(没有之一)的宏container_of。container_of似乎就是为链表而生的,它的主要作用是根据一个结构体变量中的一个域成员变量的指针来获取指向整个结构体变量的指针,最典型的应用就是根据链表节点获取链表上的元素对象。container_of的宏定义如下:#define contain
2017-10-18 12:49:55
262
转载 getchar、scanf以及缓冲区的概念
1、getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了。 getch()和getche()是conio.h中的库函数,它的作用是从键盘接收字符,getchar带有回显。 与前面两个函数的区别在于: getchar()函数等待输入直到按回车才结束(前提是缓冲区没有数据),回车前
2017-09-28 12:43:18
321
原创 C语言堆栈入门——堆和栈的区别
C语言堆栈入门——堆和栈的区别在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大
2017-09-28 00:23:07
213
原创 C语言中scanf函数与输入缓冲区之间的关系
讨论下scanf函数,输入缓冲区的关系 样例来源于算法竞赛入门经典第一章实验部分的内容,经过测试发现scanf函数对于整形数据在读入时会过滤掉 空格符 、换行符 和 水平制表符。按照提示,如果b的值非法,比如说输入一个字符‘s’,那么会出现什么结果呢?void scanf_buffer(void){ int a , b; while( scanf("%d%d",&a
2017-09-27 23:53:35
703
1
转载 ESP8266调试-P2P(AP模块与STA模块通信)
ESP8266有三种模式可以选择,AP/STA/AP+STA, 下面我们要实现的是模块与模块之间点对点的通信通信的三个过程1. 建立WiFi连接 a. 首先一个模块配置为AP模式,开启WiFi热点,(可以设置WiFi名称、密码和加密方式) b. 然后另一个模块配置为STA模式,连接到上面的热点(要是手机、带有无线网卡的电脑直接连接到上面的热点) 2. 建
2017-09-24 22:23:40
2102
转载 宏定义中的 ## ... __VA_ARGS__
宏定义中的##操作符和... and _ _VA_ARGS_ _1.Preprocessor Glue: The ## Operator预处理连接符:##操作符Like the # operator, the ## operator can be used in the replacement section of a function-like macro.Additio
2017-09-20 23:43:38
681
原创 stm32存储结构& 存储器映射
问题: 1 什么是存储器映射?是怎么一个运作过程? 2 stm32总体架构 3 CM3内核结构1 STM32系统结构 要想深刻理解STM32的存储器,需要首先知道STM32的系统结构。如Figure 1,是STM32系统结构框图。根据STM32
2017-09-11 08:08:42
860
原创 Linux下的tar压缩解压缩命令详解
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到
2017-08-15 20:05:42
183
WordPress企业站
2014-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人