- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 条件编译--几种常用的格式(在ARM2440中的用法)
在分析天嵌逻辑程序时,遇到条件,突然脑子有点转不过弯来,现在对“条件编译”进行复习:条件编译常用以下几种格式1、#ifdef 标识符程序段1#else程序段2#endif作用:若指定的标识符已经被#define定义,则在程序编译阶段编译程序段1;否则
2012-12-31 16:34:26 878
转载 2440lcd
背景知识1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制ST
2012-12-31 14:19:35 646
原创 ARM9触摸屏
ARM9触摸屏的程序的控制,主要对3个寄存器的控制(1)、ADCCON 设置AD转化频率 /*设置AD转频率*/ preScaler = ADC_FREQ;Uart_Printf("ADC conv,freq. = %dHz\n",preScaler);preScaler = 50000000/ADC_FREQ - 1; //PCLK=50M
2012-12-29 15:33:35 898
原创 ARM9 ADC
ADC:模拟信号转化为数字信号1、S3C2440对于ADC的编程,最要做好两个寄存器的配置(1)、ADCCON控制寄存器的设置/*AD转换频率设置,最大频率为2.5MHz*/rADCCON = (1//setup channel(2)、ADCDAT0寄存器数据的读取int ReadAdc(int channel)
2012-12-28 23:56:33 1509
原创 C中的volatile用法
volatile 变量是随时可能发生变化的,加volatile关键字的变量有关的运算,将不进行编译优化,以免出错。例如: volatile int i=10; int j = i; ... int k = i; volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地
2012-12-28 21:38:14 490
原创 ARM9串口中断
今天学习一下ARM9串口中断部分的内容:1、对于串口发送函数的处理部分:void Uart_SendByte(int data){ if(whichUart==0) { if(data=='\n') { while(!(rUTRSTAT0 & 0x2)); // Delay(
2012-12-28 15:32:41 1241
转载 开发板2440nor flash与nand flash启动的简单比较
nor flash与nand flash启动的简单比较 A,nor flash与nand flash的一些区别1)接口区别NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。
2012-12-27 17:58:22 685
转载 mini2440的Nor Flash启动与Nand Flash启动
CPU 处理器- Samsung S3C2440A,主频400MHz,最高533Mhz SDRAM 内存- 在板64M SDRAM- 32bit 数据总线- SDRAM 时钟频率高达100MHz FLASH 存储- 在板 128M Nand Flash, 掉电非易失- 在板 2M Nor Flash,掉电非易失
2012-12-27 17:45:46 880
转载 关于S3C2440时钟设置的理解-FCLK HCLK PCLK
关于S3C2440时钟设置的理解1)FLCK、HCLK和PCLK的关系S3C2440有三个时钟FLCK、HCLK和PCLK手册上说P7-8写到:FCLK is used by ARM920T,内核时钟,主频。HCLK is used for AHB bus, which is used by the ARM920T, the memory controlle
2012-12-27 17:21:53 794
原创 牛人博客
在这里记录一下常见的牛人博客:1、ARM 裸机程序开发参考博客地址 http://blog.csdn.net/shengnan_wu/article/category/1267025说明:结合汇编和c语言混编的方式,详细介绍2440芯片的体系结构,寄存器等2、arm-linux博客http://www.cnblogs.com/armlinux/archiv
2012-12-27 17:01:43 754
转载 SPI和I2C的区别
I2C的数据输入输出用的是一根线,SPI则分为dataIN和dataOUT。由于这个原因,采用I2C时CPU的端口占用少,SPI多一根。但是由于I2C的数据线是双向的,所以隔离比较复杂,SPI则比较容易。所以系统内部通信可用I2C,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是I2C和SPI都不适合长距离传输。长距离时就要用485了。 SPI,是英语Seria
2012-12-27 15:24:54 1946
转载 ARM9(S3C2440) LCD
LCD是liquid crystal display 的简称,液晶显示器按驱动方式分为静态驱动,简单矩阵驱动以及主动矩阵驱动。简单矩阵驱动分为扭转向列型(TN)和超扭转向列型(STN)两种。主动矩阵驱动则以TFT为主。 (1)、 TN型驱动液晶,是LCD中最基本的,其他LCD都以TN型改进。他只能将入射光旋转90度,视角只有30度,色彩单一,对比度低,用于电子表和电子计算机
2012-12-27 15:09:19 684
转载 ARM9(S3C2440) Touch Screen
触摸屏工作原理触摸屏分为:电阻式,电容式,声表面波式,红外线扫描式等类型,使用的最多的是4线电阻式的触摸屏。 触摸屏工作流程(1)、设置触摸屏接口为等待中断模式,等待触摸屏被按下。(2)、如果中断(INT_TC)发生,选择X,Y坐标转换模式(X/Y坐标分别转换模式,X/Y坐标自动转
2012-12-27 14:21:23 623
转载 ARM9(S3C2440) ADC
模拟信号/数字信号 (1)、模拟信号是一种在时间上连续,数值上也连续的物理量,具有无穷多的数值,从自然界感知的大部分物理量都是模拟性质的,如速度,压力,温度,声音等。 (2)、数字信号在时间上和数值上均是离散的,而离散信号的值只有真与假,是或不是,因此可以使用二进制中的0与1来表示 。
2012-12-27 13:29:07 504
转载 ARM9(S3C2440) UART
数据通信的方式数据通信的方式基本分为:(1)、并行通信:多条数据线将数据的各位同属传送。 特点:传输速度快,适用于短距离通信。(2)、串行通信:一条数据线将数据一位一位的顺序传送。 特点:线路简单,低成本,适用于远距离通信。 一: 异步通信:
2012-12-26 23:49:55 581
转载 ARM9(S3C2440)时钟与定时器
时钟概念一、时钟脉冲:一个按一定电压幅度,一定时间间隔连续发出的脉冲信号。二、时钟频率:单位时间(如一秒)内产生的时钟脉冲个数。 时钟作用 时钟信号时时序逻辑(如一些芯片要一定的延时时间才能工作)的基础,它用于决定逻辑单元中的状态何时更新。数字芯片中众多的晶体管都工作在开关状态,他们的导通和关断动作无不是按照时钟信号的节奏
2012-12-26 23:43:03 904
原创 按键控制蜂鸣器--采用中断方式(3)
对按键中断控制蜂鸣器程序进行如下的修改:#define GLOBAL_CLK 1#include #include #include "def.h"#include "option.h"#include "2440addr.h"#include "2440lib.h"#include "2440slib.h"#include "mmu.h"#include "profile
2012-12-26 19:40:28 6846
原创 ARM中断方式理解(2)
今天学习了ARM中断内容,根据芯片资料,截取了几个重要的图标作为理解:1、中断请求流程图SRCPND-->INTMOD-->INTMSK-->PRIORITY-->INTPND其中:SRCPND-->中断源,感应那个引脚引起中断,最接近外部硬件INTPND-->中断请求,经过优先级后,选择哪个中断先请求处理
2012-12-26 19:24:33 877
原创 ARM中断控制寄存器介绍(1)
1、s3c2410的中断异常处理模块总共由以下寄存器构成SRCPND(SOURCE PENDING REGISTER)INTMOD(INTERRUPT MODE REGISTER)INTMSK(INTERRUPT MASK REGISTER)PRIORITY( PRIORITY REGISTER)INTPND(INTERRUPT PENDING RE
2012-12-26 01:39:40 1381
原创 影响CPSR状态寄存器的ARM汇编指令--总结
最近学习了ARM寄存器寻址方式和ARM指令,现在总结如下:1、影响CPSR状态寄存器的ARM汇编指令(1)、带S的指令有MOVS-->数据传送指令(只能用在寄存器和寄存器之间)MVNS-->数据传送指令(和mov区别是,不仅进行数据传输,还进行数据取反)ADDS-->加法指令SUBS-->减法指令MULS-->乘法指令ANDS-->逻辑与
2012-12-26 01:01:11 4526
原创 裸机程序-led流水灯
现阶段学习ARM裸机程序,今天修改写了LED流水灯简单程序:程序代码修改如下:#define GLOBAL_CLK 1#include #include #include "def.h"#include "option.h"#include "2440addr.h"#include "2440lib.h"#include "2440slib.h"#in
2012-12-25 16:07:43 897
转载 进程扇和进程链
fork()函数创建子进程以后,fork拷贝了父进程的内存映像,这样子进程就收到一份父进程地址空间的拷贝,之后子进程与父进程分别在自己的地址空间执行相同的指令。 fork()的返回值是允许用来区分父进程还是子进程的。函数向父进程返回子进程的进程ID,向子进程返回0,这样就可以在代码中加以区分,是创建子进程以后让父子进程执行不同的操作了。 今天尝试的是通过循环调用fo
2012-12-06 00:45:42 1198
原创 进程间通信--信号量
进程间通信--信号量信号灯,主要作用:对于临界资源的一种保护机制。但是下面的程序当中,自己不是很理解。1、一个是,对于什么样的资源进行保护,好像程序里面体现的不是很好,还是自己读不懂。2、对于进程链创建-->打印的结果。不是很明白。3、从请求资源到获取原子操作和结束原子操作过程,真的不太明白为什么会这样子写。#include #include #include
2012-12-03 00:52:03 538
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人