自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 S5PC100 时钟配置

转载请注明来源:http://blog.chinaunix.net/uid-26833883-id-3730404.html 驱动数字电路运转的是时钟信号,时序电路都需要一个外部时钟信号来驱动,完成计时,同步,计数,时序控制等各种功能。像CPU也是时序信号驱动来完成各种运算的,而且像ARM带的模块大部分都与时序有关,因此理解时钟信号对于底层编程非常重要。一、

2015-06-29 20:51:55 565

转载 ARM 浮点运算

ARM 浮点运算:很多时候我们要处理的数据,不仅仅是整数和字符串,还有浮点数即小数。在多媒体数据处理方面表现的更多。是不是所有的CPU都支持,浮点运算呢?答案:不是。我们常常听到硬浮点和软浮点,这些到底说的是什么呢?下面我们就来一探究竟吧。在这里我们说的是ARM核浮点运算。(1)硬浮点(hard-float)编译器将代码直接编译成硬件浮点协处理器(浮点运算单元FPU)能识别的指令,

2015-06-29 20:47:01 935

原创 汇编与C混合编程(6.19)

一  异常放回IRQ/FIRQ pc  软中断异常pc  预取指令终止异常 指令1指令2 指令3指令4  lr : 保存的是指令3的地址 pc  取数据终止异常 指令1指令2 指令3指令4 指令5  lr : 保存的是指令4的地址 pc  未定义异常指

2015-06-29 20:44:57 421

转载 算术移位和逻辑移位

算术移位和逻辑移位:unsigned int i = 8;int main(){i = i//输出结果i = 64}上面的变量i是采用逻辑移位还是算术移位呢?逻辑移位,简单理解就是物理上按位进行的左右移动,两头用0进行补充,不关心数值的符号问题算术移位,同样也是物理上按位进行的左右移动,两头用0进行补充,但必须确保符号位不改变但我们好奇的是“i和“i>>3”到底采用

2015-06-29 20:43:39 1004

转载 GNU ARM伪指令

一、.global 伪指令该伪指令的含义是让.global 修饰的符号对连接器可见,也就是说,一个函数或变量通常情况下只在文本文件内有效,当需要在外部引用该文件里的某一个函数或变量时,必须首先将该函数或变量使用.global伪指令进行声明。例如:.gloabl _start.global  main_start :    b main 这里的_start要被外部的链接脚

2015-06-29 20:42:39 712

转载 ARM异常处理

ARM异常处理:只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM内核保存当前的处理器状态,这样当处理程序结束是可以恢复执行原来的程序。注意:如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常 。ARM支持的异常种类:一、异常的进入与退出当一种异常发生时,硬件就会自动执行如下动作:(1)将CPSR保存到相应异常模

2015-06-29 20:41:54 2987 1

原创 ARM寻址方式(6.18)

一  ARM的寻址方式寻址:数据存放在哪里[1]立即数寻址 [2]寄存器寻址[3]寄存器移位寻址[4]寄存器间接寻址[5]基址变址寻址前索引后索引自动索引[6]相对寻址[7]多寄存器寻址[8]堆栈寻址二  CPSR/SPSR操作指令[1]读CPSR/SPSRMRS  r0,cpsr  =>r0  

2015-06-29 20:39:19 384

原创 Makefile编写(6.17)

一  Makefile编写目标:依赖文件命令工作原理:make读取Makefile文件,找到指定的目标[1]依赖文件是否存在依赖文件存在,则判断依赖文件和目标谁更新,如果此时依赖文件比目标文件新[说明依赖文件发生了修改]则执行底下的命令依赖文件不存在,则在Makefile寻找生成依赖的文件目标,有执行对应的目标生成依赖文件,然后执行底下的命令,没有则报错

2015-06-29 20:37:37 362

转载 ARM指令集

常用的ARM指令集:我们知道CPU能直接识别的是机器码,也就是0和1组合的东东。不同的组合代表不同的含义,CPU就做不同的事情。按照道理来说,我们写的代码都应该是0和1组成的东西,但是如果真的是那样,那结果....。人类是聪明的,发明了汇编语言,汇编语言是用一些助记符,来代替机器码。当然,汇编语言是不能给CPU识别的,需要编译器将其编译成机器码。汇编语言是和特定的CPU关联的,不同的CPU

2015-06-29 20:35:52 2240

原创 ARM基础知识(6.16)

一 ARM工作模式u(usr)  s(sys)  a(abt)  u(udf)  f(fiq)  i(irq)  s(svc)  m(mon)非特权模式:usr模式特权模式  :除了usr模式异常模式  :abt,udf,fiq,irq,svc安全监控  :mon 特权模式特点:它可以访问ARM核内部受限制的资源,也可以自由切换到其他模式

2015-06-29 20:33:53 529

转载 计算机系统

一、计算机系统(1)基本概念计算机系统可以分为硬件系统和软件系统。硬件系统:计算机的实体部分,可以实现计算机最基本的操作行为软件系统:使计算机实现各种功能的程序集合。包括系统软件、应用软件两大类。可以认为,计算机就是在我们所写的软件系统控制下运行。(2)计算机的组成按照冯.诺伊曼理论,计算机主要由存储器、运算器、控制器、输入设备和输出设备5大部分组成。 

2015-06-29 20:32:07 388

转载 ARM 流水线技术

ARM 流水线技术:常常在讲ARM流水线的时候,很多同学就很晕,后来调查了一下,大多数同学都是不同熟悉指令导致的。为了让大家更好的流水线,在这里先简单的介绍ARM的一部分指令集。一、部分ARM指令在学ARM指令之前,要知道一个常识,就是我们的指令可是直接给ARM核执行的,每条指令都应该包含两部分内容:(1)执行的指令 (2)操作的数据。思考,此时我们把数据都存储在哪里呢?要想回

2015-06-29 20:29:44 3683

转载 ARM core 介绍

一、ARM处理器的特点(1)支持的数据类型A.字节          8bitB.半字         16bitC.字             32bit(2)采用32位精简指令集(RISC)处理器架构ARM处理器可以工作在两种状态:A . ARM状态 指令长度为32位,这种状态执行的是字对齐方式的ARM指令B.Thumb状态  指令长度为16位,这种状态

2015-06-29 20:28:12 2362

原创 Linux网络应用综合项目(6.15)

在线英语词典功能:服务端源码:seqlite.h#ifndef __SQLITE_H__#define __SQLITE_H__int sqlite_find_user(sqlite3 *db, const char *name, char *passwd);int sqlite_insert_user(sqlite3 *db, const char *name, const

2015-06-16 20:24:45 488

原创 Linux网络异常处理(6.12)

[1] 网络异常处理    1. 客户端出了问题(死机、重启了、网络断了...)    2. 服务端出了问题(死机、重启了、网络断了、内存耗尽、...)    3. 网络不正常        解决办法: 心跳包        心跳包的实现方法:    1. 利用TCP协议的KeepAlive(TCP协议实现的心跳包)       见《tcp_keepalive》

2015-06-16 20:14:41 985

原创 Linux IO模型(6.11)

[1] I/O模型    进程操作文件时, 文件没有就绪(ready)    (    read--文件(设备或通讯)没有数据,    write--文件(设备或通讯)已满,    recv/recvfrom--套接字缓冲区空时(流式套接字),没有接收到数据包(报文套接字)    send/sendto--套接字缓冲区已满(流式套接字)    )时,操作系统会,采取如下

2015-06-11 20:21:00 445

原创 Linux服务器模型(6.10)

[1] 服务器模型    1. 轮询(循环)       用一个任务(一个进程或线程为多个客户端轮流服务)           2. 并发(同时处理)       给每个客户端开启一个任务,专门为它服务       [2] 文件服务器(并发)[函数说明]int sprintf(char *str, const char *format, ...); //

2015-06-11 20:16:32 291

原创 Linux TCP通信详解&UDP聊天室(6.9)

[1] TCP通信原理(见"4.tcp"目录)    TCP通信分服务端和客户端:    服务端: 建立服务,等待客户端连接,响应客户端的请求    客户端: 连接服务端,请求服务端    具体原理如下:    1. 建立连接      《三次握手.bmp》           2. 断开连接      《四次挥手.bmp》        3. 运行(服

2015-06-11 20:07:31 1219

原创 Linux Tcp/ip UDP基本概念(6.8)

[1] 历史    1. 网络的产生       1957                     Sputnik       1958                     国防高级项目研究局(Defense Advanced Research Projects Agency 简称: DARPA)       1968                     ARPAnet(N

2015-06-08 20:26:27 633

原创 System V IPC对象 共享内存、消息队列、信号灯集(6.7)

System V IPC对象 共享内存、消息队列、信号灯集原理:进程都是通过IPC对象唯一的名字,称为键key,找到IPC对象,但内核还是通过IPC对象的ID来找到它.不同进程只要获得同一IPC对象的键key,就可以实现操作同一IPC对象,从而实际进程间通信-------------------------------------------------------

2015-06-08 20:22:08 490

原创 Linux进程间通信(6.5)

进程通信方式 一.无名管道  (1)创建无名管道 #include int pipe(int pipefd[2]);功能:创建无名管道 参数:pipefd 获得文件描述符,pipefd[0]:用于读管道,pipefd[1]:用于写管道传参方法 int pfd[2];if(pipe(pfd) 返回值:成功返回

2015-06-08 20:14:31 453

原创 Linux多线程编程(6.4)

线程:轻量级的进程,是调度的最小单位,线程是共享同一进程地址空间多个可独立被调度运行的任务一 多线程  与 多进程的区别 1.在一个进程中创建的多个线程,共享同一个进程的资源,各线程独立被内核调度 2.多个进程是独立地址空间相同点:1.都参与统一的调度 2.都有自己的ID,一组寄存器的值  不同点:线程间共享统一个进程的地址空间 ,进

2015-06-08 19:56:32 468

原创 Linux进程概念&相关系统调用(6.3)

一 进程和程序区别 程序:存储在磁盘上可执行指令的集合,是一个文件.典型格式elf 进程:程序的一次执行过程,伴随资源的分配和释放进程执行的时候需要的资源:内存,时间片,CPU ,文件二 Linux 进程 (1)进程数据组成:|            程序              |          系统            |

2015-06-03 19:13:54 877

原创 Linux库函数(6.2)

库:函数库是实现了某一类功能的若干的函数的数据和二进制代码的集合库中虽然是函数的二进制代码集合,但不能独立执行,可能被载入内存,和其它程序结合起来执行linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻和使用方式不同静态库的代码在编译过程中已经被载入可执行程序,因此生成的可执行体积较大。共享库的代码是在可执行程序运行时才载入内存的,在编译过

2015-06-02 19:58:15 332

原创 Linux文件I/O(6.1)

/*------IO-day 2--------------------------------------*/Unix文件基础一、出错处理:全局错误码errno /*{{{*/函数出错会置errno,调用者根据errno的不同值可判断出错原因使用时需要 errno.h 头文件strerror() - 映射errno对应的错误信息perror() – 输出用户信

2015-06-02 19:30:04 444

空空如也

空空如也

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

TA关注的人

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