📄 access_extended_sram.h
字号:
/*
********************************************************************************************
头部文件名: Access_Extended_SRAM.h
头部文件名称: 访问空间大于 64 KB 外部扩展随机存取存储器的头部文件
文件版本: 1.0
文件功能:
本文件是对访问空间大于 64 KB 外部扩展随机存取存储器源程序文件的常量、数据结构类型
进行定义和函数原型声明的头部文件。
文件说明:
本头部文件不允许用于无扩展并行总线结构的微处理器。
编译工具软件: IAR Embedded Workbench for Atmel AVR 版本:4.10 以上
链接文件: 目标器件芯片的头部文件
编作者:
编作者 E-Mail: PTZSW@163.COM
编制日期: 2005年9月12日
----------------------------------------------------------------------------------------
头部文件版本历史:
2005年9月12日 -------- 版本 1.0 :发行版本
********************************************************************************************
*/
/*==========================================================================================
下面两条指令是本头部文件条件编译的预处理指令,用于防止本头部文件被其他文件重复引用。
==========================================================================================*/
#ifndef ACCESS_EXTENDED_SRAM_H // "ACCESS_EXTENDED_SRAM_H" 条件编译开始
#define ACCESS_EXTENDED_SRAM_H
/*==========================================================================================
本头部文件包括的其他头部文件
==========================================================================================*/
//#include "ATmega128.h" // 包含目标器件芯片的头部文件
#include "MCU_C_Macro_Data_Define.h" // 包含数据类型和常用指令宏定义的头部文件
/*==========================================================================================
下面这三条指令是用于区分编译系统为 C++ 或 C 的预处理指令。
"__cplusplus" 为 C++ 预处理器名字,这三条指令表明接在其下面的那些指令为 C 程序特征。
==========================================================================================*/
#ifdef __cplusplus
extern "C" {
#endif
/*==========================================================================================
使用 Access_Extended_SRAM.c 源程序文件中的函数声明(使用C或汇编语言编制的函数声明):
==========================================================================================*/
#define USE_ASM_EXTSRAM_BLACK_ACCESS // 使用汇编语言编制的函数声明
// 注:屏蔽此即使用C语言编制的函数
/*==========================================================================================
外部扩展随机存取存储器的地址引脚定义:
注:下列这些定义与硬件设计相关,如需改变地址引脚仅在此重新定义即可。
==========================================================================================*/
#define EXTSRAM_ADDR_DDR DDRD // 扩展随机存储器的地址高位引脚的数据方向寄存器
#define EXTSRAM_ADDR_PORT PORTD // 扩展随机存储器的地址高位引脚的的数据寄存器
/*==========================================================================================
声明外部扩展随机存取存储器访问空间大小:
==========================================================================================*/
#define EXTSRAM_ADDR_START 0x1100 // 外部扩展随机存取存储器每页的起始地址
#define EXTSRAM_ADDR_END 0xFFFF // 外部扩展随机存取存储器每页的终止地址
#define EXTSRAM_ADDR_H_START 0x80 // 外部扩展随机存取存储器寻址高位的起始地址
#define EXTSRAM_ADDR_H_END 0xFF // 外部扩展随机存取存储器寻址高位的终止地址
/*==========================================================================================
全局和静态变量定义
==========================================================================================*/
/*--------------------------------------------------------------------------------------
用于储存外部扩展随机存取存储器访问地址的静态指针数值变量定义:
--------------------------------------------------------------------------------------*/
#if defined(_IAR_EW_AVR_) // "IAR Embedded Workbench AVR " 条件编译开始
#pragma diag_suppress=Pe550 // 禁止编译时产生 Pe550 消息
#endif // "defined(_IAR_EW_AVR_)" 条件编译结束
static unsigned int es_addr_read_index = EXTSRAM_ADDR_START;
// 读取数据操作访问地址的寻址低位指针数值变量
static unsigned int es_addr_write_index = EXTSRAM_ADDR_START;
// 写入数据操作访问地址的寻址低位指针数值变量
static unsigned char es_addr_read_h_index = (EXTSRAM_ADDR_H_START+1);
// 读取数据操作访问地址的寻址高位指针数值变量
static unsigned char es_addr_write_h_index = (EXTSRAM_ADDR_H_START+1);
// 写入数据操作访问地址的寻址高位指针数值变量
static unsigned char es_addr_read_h_index_status = 0;
// 读取数据操作访问地址的寻址高位指针状态变量
static unsigned char es_addr_write_h_index_status = 0;
// 写入数据操作访问地址的寻址高位指针状态变量
#if defined(_IAR_EW_AVR_) // "IAR Embedded Workbench AVR " 条件编译开始
#pragma diag_default=Pe550 // Pe550 消息复原为默认设置
#endif // "defined(_IAR_EW_AVR_)" 条件编译结束
/*--------------------------------------------------------------------------------------
定义用于储存上面相应的指针数值变量的EEPROM中的数组变量:
定义这些数组变量的目的,在于防止掉电时丢失操作地址的指针数值。在上电后重新初始化时,
将从这些数组变量中恢复操作地址的指针数值。
--------------------------------------------------------------------------------------*/
eeprom unsigned int es_addr_read_index_eep[1];
eeprom unsigned int es_addr_write_index_eep[1];
eeprom unsigned char es_addr_read_h_index_eep[1];
eeprom unsigned char es_addr_write_h_index_eep[1];
eeprom unsigned char es_addr_read_h_index_status_eep[1];
eeprom unsigned char es_addr_write_h_index_status_eep[1];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -