工作笔记:
调试外部RAM,我是在CS0上外扩了一个64K的RAM,也就是地址从0X80000000开始。开始不知道REALVIEW的设置,所以总是不能读写RAM,没有输出信号,在KEIL下要做如下设置。
一、在“Options for Target 'Targe 1'”下,选择Asm菜单,在“Conditional Assembly Control Symbols”下的输入框中填上EXTERNAL_MODE,然后按OK结束,
二、Startup.s这个文件也要做一定的改动。
EMC_SETUP EQU 1 ;使能外部RAM控制。
BCFG0_SETUP EQU 1 ;使能CS0控制。如果用到别的片选,则都要使能。
BCFG0_Val EQU 0x1000554A; ;
;此时要注意BCFG0这个寄存器的设置,要仔细看内容,其分别定义了读、写、连续的时钟周期,重要的是,如果是RAM,RVLE位一定要置1,别的要根据你RAM的速度,来设置一个合适的值,位29、28决定了RAM的宽度,8位、16位、32位等。
三、另一个设置就是比较重要的PINSEL2
PINSEL2_Val EQU 0x0F000914
的设置的为16位总线,A1-23地址线使能,使能CS0,OE ,WE;别的引脚则设置为了I/O,这个寄存器的位4、5应该看明白,你选择的是多少位的总线,然后就是看你需要的选择了。
综上,设置了这几种寄存器,外部RAM就可以正常工作了。如果以上设置的不对,则可能没有WE信号,也可能不产生CS0;下面是一个简单的例子。
#define RAMADDR 0x80000000 //外部RAM的基址。
void ExternRam(void)
{
volatile unint *buf;
unint data[512];
unint i;
for (i=0x00;i<512;i++)
{
buf=(volatile unint *) (RAMADDR | i<<1);
*buf=i;
}
for (i=0x00;i<512;i++)
{
buf=(volatile unint *) (RAMADDR | i<<1);
data[i]=*buf;
}
}
如果你写入的数据与读出的数据一样,那就说明设置的对了,调试时,最好用示波器看看WE,OE,CS0等信号是否正常。
关键字:KEIL FOR ARM LPC22xx 外部RAM
引用地址:
KEIL FOR ARM 下LPC22xx的外部RAM用法
推荐阅读最新更新时间:2024-03-16 15:05
基于ARM微处理器的液晶触摸屏接口设计
0 引言 人机交互界面的种类较多,如键盘、数码管显示器、液晶显示器及带触摸的液晶屏等。决定人机交互接口方式的主要因素是成本和实际应用的需要。近十年来,液晶触摸屏以功耗低、重量轻、精度高和良好的人机界面等技术特点, 在电子设备特别是手持类电子产品中得到了普遍应用。带触摸的液晶屏,只要能测量出触摸点的坐标位置,即可根据屏上对应坐标点的显示内容或图符获知触摸者的意图, 通过微处理器处理声音、图像、文字及触摸输入控制等信息,使之成为能进行信息存取、输入和输出的集成系统。基于微控制器与液晶模块的硬件接口设计及软件编程在智能系统设计中有着重要的应用价值。ARM 微处理器,运算速度快、资源丰富、性价比高,是当前较为流行的嵌入式控制器。本文介
[单片机]
ARM或成移动互联网时代新王者
ARM或成移动互联网时代新王者 如果说英特尔(微博)是PC时代无可争议的霸主,ARM则是移动互联网时代的新王者。 虽然仅就公司规模而言,ARM仍然无法和英特尔抗衡,但是凭借在嵌入式设备和移动互联网市场建立起的优势,已使英特尔备感压力。事实上,ARM和苹果iOS组合在平板电脑市场的地位已类似于Wintel在PC时代的地位。而智能手机芯片的大多数供应商如高通、博通、三星(微博)等,均基于ARM技术构架开发相关产品。 这迫使英特尔采用更为曲折的反击路线。尽管搭配英特尔芯片的智能手机仍前途未卜,但这家老牌巨头已开始阻击ARM和iOS组合在平板电脑市场的凶猛势头。其最新努力是超级本(Ultrubook)战略,超级本是介于
[手机便携]
基于ARM9和GSM/GPRS的无线可移动红外监测报警系统
传统的图像监测系统往往布线复杂,通过远距离有线传输而费用高昂,并且灵活机动性小,由于GPRS(通用分组无线业务)通信技术在中低速率无线数据传输方面的突出优势,基于GPRS网络的图像监测系统打破了电缆和光纤传输的限制,在图像监控系统市场中占有很大优势。但是使用GPRS网络进行实时监控的网路费用较大,而在某些场合,比如运送重要物品的货车、无人值守的贵重设备等并不需要实时监控,仅当有入侵障碍物时才需要采集和传输现场图像并发送报警信号,以达到监测和防盗的目的。 针对这个问题,本文设计了一种基于ARM9和GSM/GPRS网络的无线可移动红外监测报警系统,使用红外监测模块对被监测点进行监测,当探测到入侵障碍物时调用图像采集设备对现场状
[单片机]
如何利用ARM里的PWM模块产生SPWM波
由于各种ARM外围配置的资源各不相同,本人使用是群星的LM3S615,里面含有3路PWM模块,可以产生6路PWM波。SPWM与PWM看看,只差了一个,实际上还是有很大的差别的,如果控制电机之类,直接利用PWM波已经足够,但要做个逆变电源,就必须用SPWM才行。 利用PWM模块产生SPWM波,主要是利用了PWM模块里一个比较器中断功能。通过比较器,产生一个中断,再附值产生一个PWM脉冲,一直循环,下去,通过附不同的值,就可以产生一个SPWM了。主要程序如下: const INT16U spwmwidth ={24,72,120,168,215,262,308,353,398,441,484,525,565,60
[单片机]
C51 keil v4 流水灯简单代码的编写
#include reg52.h #include intrins.h typedef unsigned char u8;/*char 为1字节,8位 */ typedef unsigned int u16; /*一般情况下用int,因为unsigned char取值范围为0~255;而int为65535; 用u16,u8使代码的可移植性高 */ #define led P0 //sbit led=P0^0; //两种表示方式 void delay(u16 i) { while(i--); }//运用延时函数达到使led灯闪烁的目的 void main() { /* while(1) { led=1; delay
[单片机]
ARM单片机入门-推荐
推荐书籍: Keil Cx51 V7.0单..用实践 深入浅出ARM7 ARM嵌入式系统基础教程 嵌入式Linux应用开发..手册 Windows CE嵌入式系统 Windows CE 嵌入式高级编程及其实例详解 ARM入门最好的文章 一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。 广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。 客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。 DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们**里的控
[单片机]
STM32CubeMx(Keil5)开发之路——4采用DMA方式收发数据
运行环境 Windows10 STM32CubeMX___Version 5.0.0 Keil5(MDK5)___Version 5.15 简介 本例程主要讲解如何通过串口发送数据和重定向printf STM32CubeMx基本配置 基础配置过程请参考 STM32CubeMx(Keil5)开发之路—配置第一个项目 STM32CubeMx USART1配置 1——点击USART1进行设置 2——模式选择Asynchronous异步传输 3——可以看到右边自动出现了Tx和Rx 4——可以自行设置波特率,停止位,校验位等参数 1——选择DMA设置 2——添加DMA 3——添加DMA的Tx和Rx通道 1——选择NVIC设
[单片机]
第1天-ARM汇编指令LDR/STR
寄存器装载和存储 LDM LDR STM STR SWP 它们可能是能获得的最有用的指令。其他指令都操纵寄存器,所以必须把数据从内存装载寄存器并把寄存器中的数据存储到内存中。 传送单一数据 使用单一数据传送指令(STR 和 LDR)来装载和存储单一字节或字的数据从/到内存。寻址是非常灵活的。 首先让我们查看指令格式: LDR{条件} Rd, 地址 将内存地址中的值读出来放到寄存器Rd中 STR{条件} Rd, 地址 将寄存器Rd中的值读出来放到内存地址中 LDR{条件}B Rd, 地址 STR{条件}B Rd, 地址 指令格式 这些指令装载和存储 Rd 的值从/到指定的地址。如果象后面两个指令那样还指定了 B
[单片机]