houshaoyun的博客

个人学习技术总结

排序:
默认
按更新时间
按访问量

17.arm架构的异常与中断

注:以下内容学习于韦东山老师arm裸机第一期视频教程 一.arm架构的异常与中断的处理    1.1 ARM对异常的处理流程         1.1.1 软件初始化             a. 设置中断源,让他可以产生中断             b. 设置中断优先级       ...

2018-08-09 08:19:02

阅读数:137

评论数:0

16.C语言及ARM中堆栈指针SP设置的理解与总结

1.什么是栈 百度这么说: 栈是一种特殊的线性表,是一种只允许在表的一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶。表的另一端称为栈底。栈顶的当前位置是动态的,对栈顶当前位置的标记称为栈顶指针。当栈中没有数据元素时,称之为空栈。栈的插入操作通常称为进栈或入栈,栈的删除...

2018-08-09 08:10:40

阅读数:19

评论数:0

13.CentOS 7.3 Xinetd服务的安装与配置

一、Linux守护进程与初始化进程 1. 什么是守护进程 Linux服务器的主要任务就是为本地或远程用户提供各种服务。通常Linux系统上提供服务的程序是由运行在后台的守护进程(Daemon)来执行。一个实际运行中的Linux系统一般会有多个这样的程序在运行。这些后台守护进程在系统开机后就运行...

2018-08-08 08:23:19

阅读数:33

评论数:0

12.RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比

最近一段时间一直在研究rtsp和rtp,现在写博客总结一下,也是对知识的一种巩固吧。 rtsp的协议的请求流程及格式请参考一下链接:http://blog.csdn.net/u010425035/article/details/10410851 下面是我用VLC播放器获取海康NVR视频的截图(...

2018-08-07 13:55:03

阅读数:184

评论数:0

四字节内存对齐

首先我们先看看下面的C语言的结构体: typedef struct MemAlign { int a; char b[3]; int c; }MemAlign;     以上这个结构体占用内存多少空间呢?也许你会说,这个简单,计算每个类型...

2018-08-04 08:20:30

阅读数:23

评论数:0

高手进阶,终极内存技术指南——完整/进阶版 I

老實話,我個人覺得這兩篇文章真的寫的很不錯,前段時間在study關於DDR內存的初始化以及其相關知識的時候,詳細學習了它。個人很佩服原文的作者能夠寫出這麼深刻的文章。(應該說,這篇文章把DDR2的spec翻譯了大部份,對於我們BIOS工程師而言,是一篇不錯的資料。)下面是原文。 两篇文章的出处是...

2018-07-21 08:06:32

阅读数:92

评论数:0

同步通信和异步通信的区别

同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。同步是指:发送方发出数据后,等接收方...

2018-07-10 08:16:23

阅读数:35

评论数:0

15.UART协议

UART简介 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART通信在工作中相当常见,项目中需要生成uart信号,在博客中记录下。uart是异步通信,因为它只有一根线就可以数据的通信。不像SPI,I2C等同步传输...

2018-07-10 08:06:15

阅读数:22

评论数:0

1.Linux Makefile 生成 *.d 依赖文件及 gcc -M -MF -MP 等相关选项说明

1. 为什么要使用后缀名为 .d 的依赖文件?在 Makefile 中, 我们的依赖关系可能需要包含一系列的头文件。 比如 main.c 源文件内容如下:#include "stdio.h" #include "defs.h"...

2018-07-09 17:21:48

阅读数:27

评论数:0

15.同步与互斥的概念

现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:都需要访问/使用同一种资源多个任务之间有依赖关系,某个任务的运行依赖于另一个任务这两种情形是多任务编程中遇到的最基本的问题,也是多任务编程中的核心问题,同步和互斥就是用于解决这两个问题的。...

2018-07-05 08:40:38

阅读数:26

评论数:0

11.使用信号量完成互斥操作

一、首先:我们要知道信号量是什么?       信号量的本质是数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。这是书本上介绍的信号量的概念,自己的理解比较简单:   ...

2018-07-04 08:39:27

阅读数:31

评论数:0

14.C语言中time函数和localtime获取系统时间和日期

C语言中time函数和localtime获取系统时间和日期             可以通过time()函数来获得计算机系统当前的日历时间(Calendar Time),处理日期时间的函数都是以本函数的返回值为基础进行运算。1. time 函数    返回1970-1-1, 00:00:00以来经...

2018-07-02 15:34:45

阅读数:22

评论数:0

5.fcntl函数详解

功能描述:根据文件描述词来操作文件的特性。#include <unistd.h>#include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, ...

2018-06-29 08:11:03

阅读数:25

评论数:0

5.使用printf来调试程序

#define OUT_PRINTF(...) \ do { \ printf("\e[0;32m%s@line%d\t:", __FU...

2018-06-28 10:02:44

阅读数:28

评论数:0

4.使用assert函数来调试程序

我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。  在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句:if(...

2018-06-28 09:29:24

阅读数:46

评论数:0

串口、COM口、TTL、RS-232的区别详解

Point:  1、串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。  2、接设备的时候,一般只接GND RX TX。不会接Vcc或者+3.3v的电源线,避免与目标设备上的供电冲突。  3、PL2303、CP2102芯片是 USB 转 TTL...

2018-06-27 17:32:16

阅读数:38

评论数:0

2.1立即数的判断方法一

在ARM汇编的数据处理指令中经常会使用到常数,而ARM汇编中规定使用的常数必 须是立即数。ARM立即数的是由一个8位的常数循环右移偶数位得到的,其中循环右移 的位数由一个4位2进制的两倍表示,公式如下:immediate=immed_8&<(2*rot...

2018-06-27 16:17:46

阅读数:38

评论数:0

1.MQTT协议介绍

MQTT协议摘要MQ遥测传输(MQ Telemetry Transport,MQTT)是一个轻量级的基于代理的发布/订阅式消息传输协议,它的设计目标是开放、简单、轻量和易于实现。这些特征使它适用于各种受限环境,比如,但不限于:网络代价昂贵,低带宽或不可靠。在嵌入设备中运行,处理器和内存资源有限。 ...

2018-06-27 14:53:20

阅读数:28

评论数:0

5.MQTT再学习 -- 交叉编译与移植

先说明一下,遇到的问题。我之前在 Ubuntu12.04 gcc 下可以搭建 mqtt 服务器生成的 libmosquitto.so.1。参看:MQTT再学习 -- 搭建MQTT服务器及测试现在我要在 DM368 的交叉编译器 arm-none-linux-gnueabi-gcc  链接共享库 l...

2018-06-27 14:49:25

阅读数:57

评论数:0

4.MQTT再学习 -- MQTT 客户端源码分析

MQTT 源码分析,搜索了一下发现网络上讲的很少,多是逍遥子的那几篇。参看:逍遥子_mosquitto源码分析系列参看:MQTT libmosquitto源码分析参看:Mosquitto学习笔记一、目录结构首先我们还是来看一下 mosquitto-1.4.14 的源码目录结构我们主要关注 clie...

2018-06-27 14:48:25

阅读数:47

评论数:0

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