自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

转载 音频基础知识

音频基础知识

2016-03-25 14:55:34 757 1

原创 C++访问控制和继承关系

在基类中,public和private访问控制标号具有pupia

2014-09-21 17:19:58 648

转载 字符编码笔记:ASCII,Unicode和UTF-8

字符编码笔记:ASCII,Unicode和UTF-8作者: 阮一峰今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符

2014-09-05 10:47:57 628

原创 嵌入式C语言关键字volatile以及cache对数据一致性的影响

1、数据一致性是一个重要的问题,它定义了不同的CPU、系统总线所有的master看到的是相同的一片内存。 2、因为cache的存在,以及编译器对某些C语言语句的优化,使得CPU对某个内存变量的修改不能立刻更新到内存,或者其他系统的master修改了内存变量,但是CPU仍然使用cache中的值或者寄存器中的值来代表变量,此时就发生了数据一致性的问题:不同的系统总线master对同一个变量看到

2013-10-08 12:54:52 3172

转载 linux-find-命令

今天一个很偶然的机会看到了linux中的find命令,然后我在网上搜索了一下这方面的内容,为了方便大家学习参考,我就总结一下,一上午的劳动成果,呵呵!首先是find的语法:find [起始目录] 寻找条件 操作还有种表述方式:find PATH OPTION [-exec COMMAND { } \;]因为find命令会根据我们给的option,也就是寻找条件从我们

2013-09-18 16:30:14 563

转载 嵌入式软件测试的十种方法

在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。很多年前,一位开发人员为了在对嵌入式有更深层次的理解,向Oracle询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢?  Oracle面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌入式开发

2013-09-17 10:59:06 1098

原创 JTAG仿真时,查看内存的读写出错

1、最近在调试引导代码,需要将flash中的bin镜像搬到DRAM中运行。于是首先是JTAG仿真运行,可是写入内存的数据和源数据不对应,修修改改,仍未解决,实在想不出问题出现在哪里。最后不用调试,直接将源数据和写入内存的数据printf出来对比,结果发现,源数据和写入内存的数据时一样的,也就是写入正确,只是调试时,发生了错误。2、不知道这个调试是什么原理,为什么会有这样的影响?

2013-09-16 14:34:37 1452

原创 ARM函数调用约定

1、函数调用约定主要涉及参数如何传递、返回值如何传递、返回地址如何保存以及不要破坏调用函数的上下文。那么在ARM中,这些约定规则是什么样呢? 2、测试程序如下:static int fun_a(uint32_t a, uint32_t b, uint32_t c){ a = b + c; b = a + c; c = a + b; return fun_b(a,b,

2013-09-13 14:45:19 4235

原创 ARM局部变量初始化

1、程序片段如下:extern int main( void ){ uint32_t const_a = 0x12345678; uint32_t const_b = 0x87654321; uint32_t const_c = 0x04; while(1) { fun_a(const_a, const_b, const_c); fun_b(const_a, con

2013-09-13 14:06:14 2253

原创 USB协议学习笔记

1、前言USB,英文Universal Serial Bus,通用串行总线。用于链接主机和各种不同外设,以提供简洁、统一的接口,并支持热拔插。USB作为一种串行总线技术,必须解决串行总线的两个问题:1)总线上设备的寻址问题2)通信编码、通信格式问题举个简单的例子,多个设备都链接在总线上,USB主机在总线上发送一个数据时,那个设备应该响应、接收?即设备寻址问题USB,作为一种

2013-09-06 17:23:46 1605

转载 汉明码编码的纠错原理

汉明码编码的纠错原理 1.        简介:当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。2.        汉明码的定义和汉明码不等式:设:m=数据位数,k=校验位数为,n=总编码位数=m+k,有Hamming不等式:1.  

2013-09-03 10:28:46 11591 1

转载 高手解读振荡电路和振荡条件及常用振荡器

http://www.ednchina.com/ART_8800508344_11_20014_AN_a88fa3b5.HTM

2013-09-02 10:57:41 1010

转载 手机摄像模组产业链

一、手机摄像模组产业链:1.手机相机模组的组成。摄像头的成像过程就是将光信号数字化的过程。光线首先通过镜头,到达感光元件可能是CCD,或者是CMOS,两者的作用都是将光线转换为数字信号,然后数字信号被传送到一个专门的外理器(DSP),进行图像信号增强以及压缩优化后再传输到手机或者其它存储设备上,那么由此可以看到其中的每一个设备都对摄像头的整体性能有影响。手机相机模组主要由镜头(lens

2013-08-30 11:05:30 7341

原创 SAMA5D3X芯片学习之---GPIO边缘中断注意事项

1、SAMA5D3X芯片的IO可以产生输入的边缘/电平中断,其使用的是事件探测器:从上图可以看到,输入信号同时输入5个探测器,分别是:上升沿探测、下降沿探测、高电平探测、低电平探测、以及边缘(同时使能上升沿和下降沿)探测。然后通过选择寄存器选择产生中断的探测器。2、如果要使能弄个PIN引脚上的单个边缘中断(也就是要么只是上升沿产生中断,要么只是下降沿产生中断),必须要配置P

2013-08-15 11:56:00 1566

原创 CACHE启用与否对DMA编程的影响

1、直接内存存储DMA可以在不需要CPU的干预下完成数据的转移。通常而言DMA控制器具有系统内部总线的Master接口,如果仅在系统内部总线的接口而言,DMA控制器和CPU的地位是一样的,就是都可以通过系统总线访问内存、外设。2、假设需要DMA将外设输入的数据移动到内存的某个地址,DMA所进行的数据移动过程对CPU透明,即CPU感觉不到内存中某个地址的内容发生了变化。如果CPU已对此地

2013-08-14 17:02:10 850

转载 IIC和SPI总线协议

IICvs SPI         现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。   

2013-08-13 15:32:10 804

转载 ARM处理器模式切换(含MRS,MSR指令)

1.1.1   ARM处理器模式切换(含MRS,MSR指令)除了用户模式和系统模式,其余模式下都有一个私有SPSR保存状态寄存器,用来保存切换到该模式之前的执行状态,之所以用户模式和系统模式没有SPSR是因为,通常CPU大部分时间执行在用户模式下,当产生异常或系统调用时会分别切换进入另外几种模式,保存用户模式下的状态,当切换回原先模式时,直接回复SPSR的值到CPSR就可以了,因此,用户模式和

2013-08-10 21:24:47 969

转载 虚拟内存,MMU/TLB,PAGE,Cache之间关系

虚拟地址VA到物理地址PA以页page为单位。通常page的大小为4K。物理页面成为page frame。查看应用程序进程的地址空间,可以看到分为很多段,比如代码段(只读)、数据段(读写)、堆、共享库(其中进一步分段)、栈空间等。整个应用程序的地址空间不会用满4GB,因为还有一部分是内核空间,应用程序不能访问。再打开一个相同的应用程序查看其进程的地址空间,也是类似的,甚至是一样的。

2013-08-07 10:31:44 5179 1

原创 SAMA5D3X芯片的NandFlash控制器(NFC)操作详解

1、Nandfash不能直接挂在地址总线上,要读写NandFlash必须按一定的步骤发送命令、地址,然后接着是数据的输入/输出等操作,所以现在大部分的SOC芯片都集成了专用与访问NandFlash的控制器(NFC)。 2、一般的SOC芯片的NFC具有命令寄存器、地址寄存器,其中命令寄存器用来存放将要发送到NandFlash的命令,而地址寄存器就是和命令相对应的NandFlash操作地址。但

2013-08-05 15:47:38 2494

原创 ARM异常向量表中LDR指令、LDR伪指令的来龙去脉

1、问题引出在ARM开发中,异常向量表(或者称为中断向量表)处在一个关键的位置,因为它控制了ARM芯片复位时的跳转地址,也即是调到哪里去执行启动代码。一般来说,异常向量表的形式如下Vector: LDR pc, =resetHandler ; Reset LDR pc, Undefined_Addr ; Undefi

2013-08-01 12:51:08 3008

原创 IAR IDE学习之---关于工程设置中“program entry”作用的猜想

1、问题一个工程包含众多源文件,需要指定一个入口地址,如IAR IDE中默认的入口地址(符号或者标号)"__iar_program_start"(在$TOOLS_DIR$\arm\lib目录下的cstart.s文件中定义)。对于一般程序而言,入口地址就是程序首先被执行的指令(函数)。然后,在嵌入式系统中,必须考虑芯片复位时的异常向量表,在异常向量表中的复位异常跳转的地址,也是程序首先执行的地址

2013-07-31 17:30:28 6932 1

原创 IAR IDE学习之---启动文件(cstartup)与输入\输出重定向方法

1、DLIB,我猜应该是Dynamic Library。DLIB runtime environment就是运行时环境。2、什么是运行时环境。IAR给出的官方回答是:“The runtime environment is the environment in which your applic ation executes. The runtime environment

2013-07-30 10:24:56 4168

转载 解析IAR的ILINK链接器icf配置文件

一、简单的概括icf的文件,其主要包括以下几个内容,即:(1)可编址的存储空间(memory);(2)不同的存储地址区域(region);(3)不同的地址块(block);(4)section的初始化与否;(5)section在存储空间的放置。上面几点内容,如果你对照实际icf文件都会找得到,建议大家尝试下,会让你受益匪浅的。 二、icf常用命令:-------

2013-07-29 14:41:39 2479

原创 ATMEL SAMA5D3X系列的内存重映射

1、先看看SAMA5D3X系列的结构框图可以看到链接A5内核和Internal ROM、Internal RAM、外部DDRAM以及Nandflash的是中间的系统总线:Multi-Layer Matric。由此可想到,CPU访问内存时发出的地址线要经过这个系统总线Multi-Layer Matric处理,总线Multi-Layer Matric可以实现地址重映射。2、在S

2013-07-29 11:41:43 1846

原创 VMware tools 共享文件夹安装时:What is the location of the directory of C header files (install VMware tools)

安装VMware共享文件夹时,执行sudo ./vmware-install.pl时,遇到:What is the location of the directory of C header files....错误,表明没有安装过程找到当前内核的C头文件,执行以下命令:sudo ln -s /lib/modules/`uname -r`/build/include/

2013-07-28 02:20:45 696

原创 IAR IDE学习之---注意出错提示信息

近段时间学习ATMEL的SAMA5DX系列新品,这是A5的芯片。配用ATMEL的官方评估板,看了两三天,大概知道了启动流程、以及镜像下载方法,接着想自己写段小程序跑跑。于是到ATEML官网下载了评估板的配套代码,下载了IAR环境下的软件包,安装后,在IAR的安装目录下插入ATMEL的代码结构,里面包含了很多针对评估板开发的例子程序。打开工程,简单配置文件,编译,擦!,在链接阶段出现了“

2013-07-28 02:15:00 1537

原创 嵌入式中main函数起来之前,startup要完成的初始化过程

1、芯片复位,启动代码运行,启动代码进行初级硬件初始化等,最重要的是设置堆栈指针,如图2、初始化0值变量,将对应内存初始化为0,这些内存对应在程序中的“int i= 0”的变量地址,图示3、初始化非零变量,例如“int j = 6;”这样的语句对应的内存应该初始化为6,在启动程序中,从ROM中的Initializers段复制到对应的内存,图示

2013-07-27 15:59:24 1435

原创 ATMEL SAMBA USB to COM

atmel  AT91 SAMBA 引导时,通过USB Device端口和PC链接,PC提示安装USB驱动,驱动在SAM-BA安装目录下的drv下

2013-07-27 14:44:50 1591

转载 视频基础知识

基础知识1 视频    静止的画面叫图像(picture)。连续的图像变化每秒超过24帧(frame)画面以上时,根椐视觉暂留原理,人眼无法辨别每付单独的静态画面,看上去是平滑连续的视觉效果。这样的连续画面叫视频。    当连续图像变化每秒低于24帧画面时,人眼有不连续的感觉叫动画(cartoon)。电影、电视和录像已属于较为传统视听媒体,随着计算机网络和多媒体(multime

2013-06-08 23:10:37 1058

转载 关于C/C++中表达式求值顺序的深层次问题

裘宗燕:C/C++ 语言中的表达式求值经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5:a = 4; cout C++ 不是规定 要弄清这些,需要理解的一个问题是:如果程序里某处修改了一个

2013-01-24 13:38:15 493

三星官方s3c2440资料

讲述s3c2440的模块框图和操作原理,参数IO控制

2009-02-10

Windows CE6.0启动过程分析

讲述windows CE6.0的启动过程,列举在启动过程中调用的函数,并对函数做详细的剖析。

2009-01-17

空空如也

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

TA关注的人

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