【嵌入式】位操作 --设置比特位,清除比特位

位操作(Bit manipulation)嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。 最佳的解决方案如下: #define BIT3 (0x1 &lt...

2019-03-15 13:32:46

阅读数 50

评论数 0

Git基本使用指南

前言 开发过程中会遇到各种各种的问题,我们必须要代码稳定,这个时候就需要版本管理工具了,有了版本管理工具,遇到bug的时候,就可以自己新开一个分支然后在分支上解决该 bug, 解决之后然后在合并到开发分支就好。既能保证现有代码的质量还能更好的解决问题。 以前的开发方式比较混乱,好多人都在往一个...

2019-03-15 10:34:12

阅读数 47

评论数 0

C语言中的0U或1U是什么意思?

最近学STM32的芯片,官方例程中很多地方有0U/2U/4U...这类的表示,刚开始有些迷茫,细查之后得知,都是C放言默认的数据类型表示. 在C语言中,数值常数默认为int型,当数值常量后边有U/UL/f等尾缀时,代表指定其数据类型. 0U 表示 无符号整型 0 1U 表示 无符号整型...

2019-03-04 10:10:57

阅读数 1111

评论数 0

【C语言】巧用goto语句计算键盘输入字符长度

今天研究goto语句,突然看到有网友说用goto语句来计算键盘输入字符长度,觉得挺好用,在此贴出来:        #include<stdio.h> int count; void getCharLength() { printf(&q...

2019-02-14 14:25:26

阅读数 47

评论数 0

ram和flash

名词解释: x86     inter 为代表   采用的多为冯.诺依曼体系 PC机  或者说是arm和dsp 等处理器,都是采用的哈弗总线  RAM:常说的运行内存,关机重启以后里面的数据会清空。 flash:关机重启以后数据不会清空。 1、x86的pc机和单片机Cpu运行的时候的程序...

2019-01-02 11:42:43

阅读数 55

评论数 0

C语言回调函数详解

回调函数   在C语言编程中,我们经常听到回调函数(callback function)一说。对于C语言新手而言,回调函数可能是一个比较难于理解的东西。今天我将通过一个实际例子,来讲解什么是回调函数,为什么要用回调函数。 回调函数究竟有什么作用呢?      说到这里,就有了用户和开发者之...

2018-12-29 14:38:33

阅读数 235

评论数 0

排序算法---快速排序详解

最近面试遇到技术面 有问道快排的算法,回来以后我总结了一下,如下。 算法介绍:       设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是...

2018-10-13 22:05:21

阅读数 41

评论数 0

C++中vector的基本操作

创建一个空的 vector vector<int> V; 添加元素 (注意 push_back 和pop_back只能在尾部添加和删除,不能操作头部) V.push_back(3.1415926); V.push_back(string(&am...

2018-09-13 22:33:03

阅读数 98

评论数 0

git 指令操作

进入第一步  git init 第二步      git config 查看git属性      git status 放入暂存区    git add  +文件名    提交                      git commit    也可以git commit   -a   ...

2018-08-21 15:28:58

阅读数 53

评论数 0

fork和vfork函数的异同点

由于fork完整地拷贝了父进程的整个地址空间,因此执行速度是比较慢的,为了提高效率,Unix系统设计者创建了vfork。  vfork也创建新进程,但是不产生父进程的副本,他通过允许父子进程可访问相同物理内存而伪装了对进程地址空间的真实拷贝,当子进程需要改变内存中数据父进程,这就是著名的“写操作...

2018-08-20 20:13:32

阅读数 59

评论数 0

TCP和UDP的优缺点比较

1、TCP与UDP区别总结: 1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 Tcp通过校验和,重传控制,序...

2018-08-20 20:00:21

阅读数 351

评论数 0

进程和线程的区别

线程和进程各自有什么区别和优劣呢? 进程是资源分配的最小单位,线程是程序执行的最小单位。 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个...

2018-08-20 19:47:07

阅读数 36

评论数 0

C语言中volatile关键字详解

volatile关键字详解,以及在嵌入式中的应用 volatile 关键字的作用是作为指令关键字,确保本条指令不会因为编译器的优化而省略,且要求每次直接读值。 关键字 volatile 是与 const 绝对对立的。二、在嵌入式中使用volatile 变量如果加了 volatile 修饰,则会从内...

2018-08-20 19:40:09

阅读数 66

评论数 0

OSI七层模型详解

转自    https://blog.csdn.net/yaopeng_2005/article/details/7064869

2018-08-20 15:09:34

阅读数 64

评论数 0

快速排序算法解析

一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换; 4)从i开始向后搜索...

2018-08-20 11:28:37

阅读数 71

评论数 0

C语言中整数转字符串输出

#include<stdio.h> #include<string.h> void convert() {     if(n < 0)     {         str[0] ='-...

2018-08-17 17:12:50

阅读数 412

评论数 0

New 和malloc的区别

今天来说一说面试题  malloc 和 new 的区别 从好几个方面来讲:          属性不同 New是C++的关键字,需要编译器支持,而malloc是库函数  需要头文件支持 参数不同 使用new操作符申请内存分配时候不用指定内存块的大小,编译器会根据类型信息自行计算,而...

2018-08-16 18:49:34

阅读数 46

评论数 0

Linux 系统的开机启动顺序(板子的启动顺序)

加载BIOS   - >   读取MBR    ->   boot loader    -   >   加载内核    -  > 启动init进程  ->启动内核模块   -  &...

2018-08-13 17:04:42

阅读数 171

评论数 0

linux驱动的并发控制

1、原子操作(atomic) 2、自旋锁(spin_lock) 3、信号量(semaphore) 4、互斥体(mutex) 5、中断屏蔽   并发控制: 并发: 指的是多个执行单元同时、并行被执行 竞态: 而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访...

2018-08-09 11:33:32

阅读数 57

评论数 0

字符设备驱动 --静态/动态申请设备号

  静态设备号申请:     申请设备号, from --- 要申请的设备号,  count --- 申请几个设备, name --- 设备名字 int register_chrdev_region(dev_t from, unsigned count, const char *name...

2018-08-07 19:39:48

阅读数 100

评论数 0

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