使用片上XRAM需要进行的初始化
现在,流行的51单片机大多把on-chip expanded RAM(以下简称XRAM)作为基本配置,容量有些差别。
厂商在给出芯片特性时,往往把XRAM和标准52芯片的256字节内部RAM加在一起统称为on-chip RAM容量,有的是512(256+256),有的是1024(256+768),有的是1280(256+1024)。
最关键的是对这些XRAM的Enable/Disable上,不同厂商的控制有些差别:所涉及的SFR地址、在SFR中和XRAM相关的位所在位置和上电复位后XRAM的状态。
----------------------------------------------------------------
SyncMOS Technologies Inc.
SM5964
System Control Register (SCONF, $BF)
The bit 1 (OME) of special function register $BF (SCONF) can enable or disable this expanded 768 byte RAM. The default setting of OME bit is 1 (enable).
SCONF = 0x02; //允许访问SM5964的片上XRAM
----------------------------------------------------------------
Silicon Storage Technology, Inc.
SST89E564RD
Auxiliary Register (AUXR)
EXTRAM(AUXR.1):
0 - Internal Expanded RAM access.
1 - External data memory access.
AUXR = 0x00; //允许访问SST89E564RD的片上XRAM
----------------------------------------------------------------
Philips Semiconductors
P89C51RD2
AUXR Address = 8EH
EXTRAM(AUXR.1) Internal/External RAM access using MOVX @Ri/@DPTR
EXTRAM Operating Mode:
0 - Internal ERAM access using MOVX @Ri/@DPTR
1 - External data memory access.
AUXR = 0x00; //允许访问P89C51RD2的片上XRAM
----------------------------------------------------------------
Winbond Electronics Corp.
W78E516
The AUX-RAM is disable after a reset. Setting the bit 4 in CHPCON register will enable the access to AUX-RAM. When AUX-RAM is enabled the
instructions of "MOVX @Ri" will always access to on-chip AUX-RAM. When executing from internal program memory, an access to AUX-RAM will not affect the Ports P0, P2, WR and RD.
sfr CHPENR = 0xF6
sfr CHPCON = 0xBF
CHPENR = 0x87;
CHPENR = 0x59;
CHPCON |= 0x10; //允许访问W78E516的片上XRAM
CHPENR = 0x00;
----------------------------------------------------------------
由此看来,要使用片上XRAM,必须仔细阅读芯片datasheet中XRAM的相关内容,并小心控制。
个人习惯:1、不使用芯片本身的默认状态,不管是允许或者禁止,都显式地用指令控制相关的特殊功能寄存器。
2、为了更好地使用这些XRAM,在给外设进行编址时,避开0x0000~0x02FF空间(比如从0x1000开始)。
使用片上XRAM需要进行的初始化的更多相关文章
- 在Fedora 20 上安装Mysql并初始化root密码
[root@localhost ~]# yum -y install community-mysql-server #安装数据库 已加载插件:langpacks, refresh-packagekit ...
- 单个 LINQ to Entities 查询中的两个结构上不兼容的初始化过程中出现类型“XXXX”
最近在做一个报表的时候,用EF使用了Contact方法,但是程式运行一直出错.最近终于找到原因了,写下来提醒下自己.好了,进入正题: 现在我举个栗子,目前数据库中有ParentStudent表和Sub ...
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 第 2 部分: UpStart 第 3 部分: Systemd
浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 第 2 部分: UpStart 第 3 部分: Systemd http://www.ibm.com/developerw ...
- PS初始化配置
前端工程师在使用photoshop之前需要进行一些初始化设置,主要包括以下3个 [1]首选项设置 <ctrl+k> 编辑 > 首选项 > 单位与标尺 > 把标尺和文字的单 ...
- Java虚拟机类加载初始化解析
Classloader的作用,概括来说就是将编译后的class装载.加载到机器内存中,为了以后的程序的执行提供前提条件. 一段程序引发的思考: 风中叶老师在他的视频中给了我们一段程序,号称是世界上所有 ...
- 【小梅哥FPGA进阶教程】MC8051软核在FPGA上的使用
十.MC8051软核在FPGA上的使用 本教程内容力求以详细的步骤和讲解让读者以最快的方式学会 MC8051 IP core 的应用以及相关设计软件的使用,并激起读者对 SOPC 技术的兴趣.本实验重 ...
- 温故之--Linux 初始化 init 系统
参选URL: http://www.ibm.com/developerworks/cn/linux/1407_liuming_init1/index.html 本系列一共三篇,看完记住,那水平就不一样 ...
- 深入理解java虚拟机JVM(上)
深入理解java虚拟机JVM(上) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...
- 使用Git上传项目到GitHub仓库
GitHub账号注册很长时间了,但是没怎么上传过东西.今天学习如何利用Git工具将代码上传到GitHub,了解了一些常用命令 $ git config --global user.name " ...
随机推荐
- ThrottleStop
ThrottleStop 我的要开这个软件,睿频才能开.不然一直工作在1.8Ghz下默认频率太低了开了这个速度才有提升
- VMCloud云平台 系列博文
VMCloud云平台 系列博文http://blog.51cto.com/zt/644http://blog.51cto.com/zt/650 http://ljbaby.blog.51cto.com ...
- ResourceString的用法
在Delphi编程的那段“古老”的日子里(就是在版本4之前),在程序中使用字符串有两个基本的方法.你可以使用字符串将它们嵌入到源程序中,例如: MessageDlg( 'Leave your stin ...
- 使用NUnit进行项目的单元测试
using System; using System.Collections; using System.Collections.Generic; using NUnit.Framework; nam ...
- [转]一步步搭建Ubuntu环境——dpkg 被中断,您必须手工运行 sudo dpkg --configure -a 解决此问题——安装Flashplayer出错 ------不错
原文网址:http://blog.csdn.net/xuezhimeng2010/article/details/8545261 解决方法如下: sudo rm /var/cache/apt/arch ...
- STL中erase的小心使用
先看如下一道改错题: #include<iostream> #include<vector> using namespace std; void print(vector< ...
- strcat函数的坑点
我们先看下面这样一段代码: #include <iostream> #include <stdlib.h> using namespace std; int main() { ...
- WebService-使用JDK开发WebService
一.使用JDK开发WebService 2.1.开发WebService服务器端 1.定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所 ...
- install samba on crux without net.
1. 解压文件 tar -xvfz samba-.tar.gz 2. 进入目录 cd samba- 3. 配置 ./configure 4. 编译 make 5. 安装 make install
- 小结: Async & Await
新项目组用到Async & Await, 关于Await会不会新开不开线程,遇到什么情况会新开线程的问题网上查了很多资料都没看到直观的解释.现简单总结一下. 直接上代码: namespace ...