自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 003_<ARM9从裸机到Linux操作系统>____裸机篇__S3C2440的UART编程

一、概述 S3C2440通用异步接收和发送(UART)提供了三路的不同异步串行I/O端口,每一个端口可以被配置为中断模式或者DMA模式 。也就是说UART可以产生中断或者DMA请求来在CPU和UART之间传输数据。UART可以支持高达115.2K波特率使用系统时钟。如果一个外部设备为UART提供UEXTCLK,那么UART可以运行在更高的速度上。每个UART通道包含了两个64-byte的F

2014-03-30 09:12:17 954

原创 000_<ARM9从裸机到Linux操作系统>____ARM9裸机开发

ARM裸奔程序设计心得      注:这篇文章是我半年前贴上来的,随着不断学习,感觉这篇文章还有一些不妥之处。所以又进行了一些修改。文章中绿字处都是后来修改的,嘻嘻。    我是一名在读大三学生,计算机专业,接触嵌入式已有半年时间。从开始的一窍不通,到现在的刚刚入门,感觉自己有一定的收获。嵌入式对计算机专业或电子相关专业都适合。计算机专业的强项在于软件知识,如操作系统。电子相关专业在于硬件

2014-03-30 00:21:19 2561

原创 002_<ARM9从裸机到Linux操作系统>____裸机篇__S3C2440的GPIO编程

GPIO篇从电路角度来看,S3C2440也只不过是一个集成电路芯片而已,无论它内部原理多么复杂,它与硬件打交道的也就只有那些管脚而已。我们都知道,用单片机操纵硬件完成一个动作,无论它动作有多么复杂,对单片机而言最终都转化为引脚按一定时序输入输出高低电平。因此我们学习处理器的终极目标是要控制处理器按我们的想法输入输出高低电平,无论哪种处理器,对它的控制,都是通过读写寄存器来完成的。对于初学者

2014-03-30 00:16:53 1751

原创 001_<ARM9从裸机到Linux操作系统>____裸机篇____ARM9裸机程序开发环境搭建

第一章:搭建mini2440裸机开发环境 ARM9的裸机开发的编译器和下载程序的方式有好几种。通常用于arm裸机程序开发的编译器基本有三种:(1)MDK(2)IAR(3)ADS。它们的具体情况在这里我就不多说明,百度一下就明白了。笔者由于之前开发c51,stm32时候都使用了MDK开发环境,而且MDK的界面确实看起来舒服多了,所以本书选择了ARM9裸机开发采用大家都比较熟悉的开发环境Kei

2014-03-30 00:11:55 3603

原创 About_C_007

预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏

2014-03-28 22:40:45 500

原创 About_C_006

一、指针函数当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。格式:类型说明符 * 函数名(参数)当然了,由于返回的是一个地址,所以类型说明符一般都是int。例如:int *GetDate();int * aaa(int,int);函数返回的是一个地址值,经常使用在返回数组的某一元素地址上。int * GetD

2014-03-28 22:39:29 414

原创 About_C_005

一、作用域和生存期C程序的标识符作用域有三种:局部、全局、文件。标识符的作用域决定了程序中的哪些语句可以使用它,换句话说,就是标识符在程序其他部分的可见性。通常,标识符的作用域都是通过它在程序中的位置隐式说明的。1.局部作用域前面各个例子中的变量都是局部作用域,他们都是声明在函数内部,无法被其他函数的代码所访问。函数的形式参数的作用域也是局部的,它们的作用范围仅限于函数内部所用的语句块

2014-03-28 22:37:51 378

原创 About_C_004

一、栈在说函数递归的时候,顺便说一下栈的概念。栈是一个后进先出的压入(push)和弹出(pop)式数据结构。在程序运行时,系统每次向栈中压入一个对象,然后栈指针向下移动一个位置。当系统从栈中弹出一个对象时,最近进栈的对象将被弹出。然后栈指针向上移动一个位置。程序员经常利用栈这种数据结构来处理那些最适合用后进先出逻辑来描述的编程问题。这里讨论的程序中的栈在每个程序中都是存在的,它不需要程序员

2014-03-28 22:36:08 385

原创 About_C_003

指针和数组有着密切的关系,任何能由数组下标完成的操作也都可用指针来实现,但程序中使用指针可使代码更紧凑、更灵活。一、指向数组元素的指针我们定义一个整型数组和一个指向整型的指针变量:int a[10], *p; 和前面介绍过的方法相同,可以使整型指针p指向数组中任何一个元素,假定给出赋值运算p=&a[0]; 此时,p指向数组中的第0号元素,即a[0],指针变量p中包含了数

2014-03-28 22:34:30 392

原创 About_C_002

一、高维数组有时,数组的维数并不止一维,例如一个记录消费中心在第一季度里各个月的收入数据就可以用二维数组来表示。定义二维数组的方法是在一维数组定义的后面再加上一个用方括号括起来的维数说明。例如:float array[3][8];实际上,这个数组可以看成3个连续的一维数组,每个一维数组具有8个元素。该数组在内存中的存储格式为最左边的维数相同的元素连续存储,也即按行存储的。首先存储第

2014-03-28 22:32:06 433

原创 About_C_001

我们经常在题目中有要求,输入一个整数,然后以这个整数作为数组的元素个数,下面的程序代码是错误的。int n,array[n];scanf(%d,&n);在Turbo C中,不允许出现动态数组。那么如果必须需要这样时,就只能使用链表了。一、堆堆是一种动态存储结构,实际上就是数据段中的自由存储区,它是C语言中使用的一种名称,常常用于动态数据的存储分配。堆中存入一数据,总是以2字

2014-03-28 22:30:08 509

空空如也

空空如也

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

TA关注的人

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