自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(24)
  • 收藏
  • 关注

原创 linux下的NFS搭建和配置

Ubuntu上nfs的安装配置 Ubuntu 默认是没有nfs服务的,所以需要自己安装 1、安装nfs服务版            apt-get install nfs-kernel-server 2、修改nsf配置文件      vi /etc/exports 这个文件可以自己创建,但是都是在root权限下            在文件中添加nfs的目录格式如下

2012-12-17 18:41:11 196

原创 linux下的tftp环境搭建

1.1 搭建tftp服务器 TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。 在嵌入式Linux开发中,TFTP协议在很多场合都被用

2012-12-17 18:35:23 336

转载 彻底搞定C指针---指向指针的指针

一. 回顾指针概念: 今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧! 当我们程序如下申明变量: short int i; char a; short int * pi; 程序会在内存某地址空间上为各变量开辟空间,如下图所示。 内存地址→6     7      8     9     10     11    12    13     1

2012-12-17 17:31:02 198

原创 ubuntu 下中文输入法的安装

研究了几天终于有了收获,我安装的是ibus输入法 1/ 在终端输入: sudo add-apt-repository ppa:shawn-p-huang/ppa sudo apt-get update sudo apt-get install ibus-gtk ibus-qt4 ibus-pinyin ibus-pinyin-db-open-phrase接下来,再 任务栏-输

2012-12-17 17:10:50 72

转载 linux驱动程序设计环境搭建开始第一步

从哪里开始linux驱动设计呢? 下面博客就是你想要的! http://os.chinaunix.net/a2012/0202/1305/000001305972.shtml 借鉴这个博客前面搭建内核环境 http://www.cnblogs.com/hoys/archive/2010/10/29/1864536.html 借鉴这个博客到Makefile文件,注意复制粘帖到时候要把all

2012-12-17 16:44:04 189

原创 ARM数据对齐 ----- ADS1.2编译

一、问题来源<br />且看下面一段代码:<br /> <br />char    buff[8] = {0x12, 0x34, 0x56, 0x78, 0x9a, 0xab, 0xbc, 0xcd};<br /> <br />int      v32, *p32;<br /> <br />short   v16, *p16;<br /> <br />p32 = (int*)&( buff[1] );   <br /> <br />p16 = (short*)&( buff[1] );  <br /> <b

2010-10-06 16:48:00 232

原创 32位嵌入式系统的字节对齐

<br />32位嵌入式系统的软件开发过程中,字节对齐问题是相当重要的。我们现在就拿ARM处理器和ADS1.2开发环境作为例子说明字节对齐的概念。<br />在此之前,我先声明几个基本的概念:<br />(1)、对象:在C语言中使用结构体类型、共同体类型、或内部基本类型所定义的变量或常量,就称为对象。对象占据了一块实际的存储器空间,这块空间有固定的起始地址和字节数。<br />(2)、引用:使用对象有两种方法:“对象名”和“引用”。当你在源代码中定义一个对象时,编译器就会为它分配一块存储器,此时你就可以使用

2010-10-06 16:43:00 214

原创 ADS生成映像文件内的三种输出段:RO段、RW段和ZI段

<br />      一般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。对于嵌入式系统而言,程序映象都是存储在Flash存储器等一些非易失性器件中的,而在运行时,程序中的RW段必须重新装载到可读写的RAM中。这就涉及到程序的加载时域和运行时域。简单来说,程序的加载时域就是指程序烧入Flash中的状态,运行

2010-10-06 16:35:00 216

原创 ADS集成开发环境详细介绍

<br />l         ARM集成开发工具介绍<br />ARM ADS 全称为 ARM Developer Suite 。是 ARM 公司推出的新一代 ARM 集成开发工具。现在 ADS 的最新版本是 1.2 ,它取代了早期的 ADS1.1 和 ADS1.0 。它除了可以安装在 Windows NT4 ,Windows 2000 , Windows 98 和 Windows 95 操作系统下,还支持 Windows XP 和 Windows Me 操作系统。<br />ADS 由命令行开发工具,

2010-10-06 16:33:00 436

原创 ads调试工程的设置

<br />1、DebugRel Setting里一般设置几项<br />1)Target Setting->Linker里选ARMLinker<br />   用于设置连接<br />2)Target Setting->Post-Linker选ARM fromELF<br />   用于生成FLASH烧录代码(只在RAM里运行 而不烧录则不用)<br />3)ARM Linker->RO BASE里添地址<br />   根据板子来,OK2440开发板上SDRAM接的NGCS6,地址0X30000000-

2010-10-06 16:28:00 331

原创 基于S3C2440的Ethercat实时

<br />1  引言<br />    工业以太网由于低成本、易于组网和具有相当高的数据传输速率、资源共享能力强以及易于Internet连接等特点[1],使其在工业中应用越来越多。Ethercat技术是德国BECKHOFF公司提出的实时工业以太网技术,它基于标准的以太网技术,具备灵活的网络拓扑结构。系统配置简单,具有高速、有效数据率高等特点,全双工特性完全得以利用[2]。<br />2  Ethercat技术介绍<br />2.1  Ethercat的系统组成及运行原理<br /><br /> Ether

2010-10-06 16:18:00 233

原创 基于ARM的无线网卡设备驱动设计

<br /> 引 言<br />    随着移动通信和便携通信的发展,无线局域网WLAN日渐普及。嵌入式系统中无线局域网的接入,既可以实现对嵌人式系统的无线控制和数据传输,又可以满足一些特殊应用的场合。这里通过对USB无线网卡的Linux设备驱动的深入理解和分析,成功地移植在Atmel 9261 ARM处理器上。实现了嵌入式系统的无线局域网接入。利用该平台,可以进一步设计完善医用伽马相机和小型SPECT设备的手持数据采集系统,使得控制人员能够远离数据采集现场,而通过远程终端来控制现场数据和各种控制信号,较好

2010-10-06 16:17:00 249

原创 ARM开发:三 ARM微处理器的指令系统

3.1  ARM微处理器的指令集概述3.1.1  ARM微处理器的指令的分类与格式<br />ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。<br />ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类,具体的指令及功能如表3-1所示(表中指令为基本ARM指令,不包括派生的ARM指令)。<br />表3-1 

2010-10-06 15:41:00 199

原创 ARM开发:二 ARM微处理器的指令系统

2.1  ARM微处理器的工作状态<br />从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:<br />-第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;<br />-第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。<br />当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的

2010-10-06 15:34:00 214

原创 ARM开发:一 ARM微处理器概述

1.1  ARM-Advanced RISC Machines<br />ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。<br />1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器

2010-10-06 15:31:00 218

原创 ARM中C和汇编混合编程及示例

<br />    参数的传递规则.<br />     根据参数个数是否固定,可以将子程序分为参数个数固定的子程序和参数个数可变的子程序.这两种子程序的参数传递规则是不同的.<br />     1.参数个数可变的子程序参数传递规则<br />     对于参数个数可变的子程序,当参数不超过4个时,可以使用寄存器R0~R3来进行参数传递,当参数超过4个时,还可以使用数据栈来传递参数. 在参数传递时,将所有参数看做是存放在连续的内存单元中的字数据。然后,依次将各名字数据传送到寄存器R0,R1,R2,R3;

2010-10-06 14:41:00 222

原创 arm7与arm9的区别

<br />一、“ARM7内核三级流水线和冯·诺伊曼结构; <br />ARM9内核是5级流水线     哈佛结构。” <br />arm7和arm9的pipeline设计是一样的,都是Harvard   architecture,不过arm9又被叫做modified-Harvard   architecture. <br />“arm7没有mmu,arm720T是MMU的;arm9是有mmu的,arm940T只有Memory   protection   unit.不是一个完整的MMU。” <br />m

2010-10-06 14:31:00 242

原创 ARM 开发软件及实用工具介绍

<br />一、编译器介绍<br />1、ADS1.2<br />    ADS是ARM公司的集成开发环境软件,他的功能非常强大。他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C 编译器;实时调试器;应用函数库。<br />ADS 的编译器调试器较SDT都有了非常大的改观, ADS1.2提供完整的WINDOWS界面开发环境。C编译器效率极高,支持c 以及c++,使工程师可以很方便的使用C语言进行开发。提供软件模拟仿真功能,

2010-10-06 14:28:00 292

原创 什么是ARM

<br />  ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。<br />  ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。<br />  目前,总共有30家半导体公

2010-10-06 14:22:00 309

原创 C语言宏定义技巧(常用宏定义)

<br />写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。 <br />1、 防止一个头文件被重复包含<br />#ifndef COMDEF_H <br />#define COMDEF_H <br />  //在这里写头文件内容 <br />#endif <br />2、 重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。<br />typedef  unsigned char 

2010-10-06 13:25:00 165

原创 define进行多行宏定义

<br />#define     DORECOVERY()/   <br />            LED_RUN=1;/   <br />            VAL1=OFF;/   <br />            VAL2=OFF;/   <br />            PUMP=OFF;/   <br />            VAL3=ON;/   <br />            COMPRE=ON;<br /> <br />#define STR_OUTPUT_FORMAT_

2010-10-06 13:23:00 179

原创 define宏定义和const常量定义之间的区别

define部分: 宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段。(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议。) 宏的语法为: #define 宏名称 宏值 注意,宏定义不是C或C++严格意义上的语句,所以其行末不用加分号结束。 作为一种建议和一种广大程序员共同的习惯,宏名称经常使用全部大写的字母。 利用宏的优点: 1)让代码更简洁明了 当然,这有赖于你为宏取一个适当的名字。一般来说,宏的名字更要注重有明确直观的意义,有时宁可让它长点。

2010-10-06 13:21:00 175

原创 宏中"#"和"##"的用法

<br />一、一般用法<br />我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起用法: <br />#i nclude<cstdio> <br />#i nclude<climits> <br />using namespace std; <br />#define STR(s)     #s <br />#define CONS(a,b)  int(a##e##b) <br />int main() <br />{ <br /> printf(STR(vck));           /

2010-10-06 13:18:00 138

原创 typedef和#define的用法与区别

<br />一、typedef的用法<br />在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:<br />typedef    int       INT;<br />typedef    int       ARRAY[10];<br />typedef   (int*)   pINT;<br />typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。<br />二、#define的用法<br

2010-10-06 13:15:00 137

空空如也

空空如也

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

TA关注的人

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