memcfg.inc

news/2024/11/15 19:48:09/

;************************************************
; NAME    : MEMCFG.A
; DESC   : Memory bank configuration file
; 这里主要配置的就是内存
;  S3C2410的存储控制器有以下特性:
; 1. — Little/Big endian (selectable by a software) 大小端设置;
; 2. — Address space: 128Mbytes per bank (total 1GB/8 banks) 地址空间:每个bank为128MB (总共1GB);
; 3. — Programmable access size (8/16/32-bit) for all banks except bank0 (16/32-bit) 除了bank0其余所有banks的数据位宽是可编程的(8/16/32-bit);
; 4. — Total 8 memory banks 总共8个memory banks
;   Six memory banks for ROM, SRAM, etc. 其中6个bank是接ROM,SRAM等
;        Remaining two memory banks for ROM, SRAM, SDRAM, etc. 其余2个bank是接ROM,SRAM,SDRAM等
; 5. — Seven fixed memory bank start address 7个memory bank的起始地址是固定的;(发现size也是固定的,128MB)
; 6. — One flexible memory bank start address and programmable bank size 1个memory bank的起始地址和大小是可灵活可变的;
; 7. — Programmable access cycles for all memory banks 所有banks的访问周期数是可编程的;
; 8. — External wait to extend the bus cycles 支持片外等待信号以扩充总线周期;
; 9. — Supporting self-refresh and power down mode in SDRAM SDRAM在Power down模式下支持自动刷新.
; bank6和bank7的大小必须一样,并且bank7的起始地址根据bank6的大小不同而不同
;************************************************

 

BWSCON 是一个32位的register, 对应了BANK0-BANK7, 每个BANK使用4位。这4 位分别表示:

STx: 启动/禁止SDRAM的数据掩码引脚,对于SDRAM, 此位为0;对于SRAM, 此位为1。

WSx: 是否使用存储器的WAIT信号,通常设为0

DWx: 设置存储器的BUSWIDTH, 00=8-bit, 01=16-bit, 10=32-bit, 11=reserved

BANK0 对应的4位,是由硬件跳线决定,read-only

 

BANKCON0~BANKCON5 寄存器设置

Tacs: Address set-up time before nGCSn

Tcos: Chip selection set-up time before nOE

Tacc: Access cycle

Tcoh: Chip selection hold time after nOE

Tcah: Chip selection hold time after nOE

Tacp: Page mode access cycle @Page mode

PMC: Page mode configuration

注释:Tacs, Tcos, Tacc, Tcoh, Tcah, Tacp, PMC值是由存储器的datasheet决定的,里面有各时钟的极限值;顺便说说nWAIT引脚,WSn 是设定该管教是否起作用的,如果起作用必须将储存器(或者其他设备)相应的信号输入给nWAIT,如果年WAIT引脚没有用到时,必须接上,否则会将处理器琐死。

BANKCON6~BANKCON7 寄存器设置则不同,首先需要确定memory的type

MT: Determine the memory type

如果设置ROM或者 SRAM, 则设置Tacs, Tcos, Tacc, Tcoh, Tcah, Tacp, PMC

如果设置SDRAM, 则设置

Trcd: RAS to CAS delay

SCAN: Column address number

REFRESH寄存器,用于SDRAM refresh control register

 

 

另外,还有一段代码的用法学习一下:

ASSERT :DEF:BUSWIDTH
    [ BUSWIDTH=16
B1_BWSCON EQU (DW16)
B2_BWSCON EQU (DW16)
B3_BWSCON EQU (DW16)
B4_BWSCON EQU (DW16+WAIT)
B5_BWSCON EQU (DW16)
B6_BWSCON EQU (DW16)
B7_BWSCON EQU (DW16)
;BUSWIDTH=32   ; 2440 EV board.
B1_BWSCON EQU (DW16) ; AMD flash(AM29LV160DB), 16-bit, for nCS1
B2_BWSCON EQU (DW16) ; PCMCIA(PD6710), 16-bit
B3_BWSCON EQU (DW16) ; Ethernet(CS8900), 16-bit
B4_BWSCON EQU (DW32) ; Intel Strata(28F128), 32-bit, for nCS4
B5_BWSCON EQU (DW16) ; A400/A410 Ext, 16-bit
B6_BWSCON EQU (DW32) ; SDRAM(K4S561632C) 32MBx2, 32-bit
B7_BWSCON EQU (DW32) ; N.C.
    ]

其中[ 条件 语句组 ] 当条件满足的时候执行下面语句组,否则不执行。差不多和#if条件编译差不多

[ FCLK=20000

M_MDIV   EQU   0X20

M_PDIV    EQU   0X4

M_SDIV    EQU   0X2

]        FCLK=20000时候执行[]语句

ASSERT 是断言伪指令,语法是:ASSERT +逻辑表达式

def 是逻辑伪操作符,格式为: :DEF:label,作用是:判断label是否定义过

ASSERT   logical expression

对汇编程序的第二遍扫描中,如果其中ASSERT中条件不成立,ASSERT伪操作将报告该错误信息。


http://www.ppmy.cn/news/456449.html

相关文章

MCS51单片机的型号与组成

MCS - 5 1 系列单片机简介 MCS - 5 1 单片机型号命名规则 MCS - 5 1 系列单片机的组成 51 系列单片机的组成包含了 80C51 的基本功能模块,这些模块(对用户来说就是 资源)集成在一块芯片上,包括以下几部分如图 所示线框内的部分&a…

ISE iMPACT bit生成mcs

一,bit转换成mcs文件 1,打开开始菜单->选择所有应用程序->Xilinx Design Toos->ISE Design Suite 14.7->ISE Design Tools->64 bits Tolls->iMPACT 2,选择Creat PROM File(PROM File For...) 3,选择SPI Flash->Config Single F…

MEC技术简介

MEC通常用于描述将服务推向网络边缘的概念,与雾计算等其他术语存在冲突,随着这项技术与5G、容器等基础设施技术联系在一起,其中各种混淆也越来越多。本文从电信公司的角度揭开这一技术的神秘面纱。多接入边缘计算(MEC)或之前的移动边缘计算在…

Java-三种基本控制结构及相关面试题

文章目录 前言一、 顺序控制结构1.1 概念1.2 代码1.3 NS图中体现 二、分支控制结构2.1 概念2.2 if语句2.3 switch语句2.4 NS图中的体现 三、循环控制结构3.1 概念3.2 for循环3.3 while循环3.4 do-while循环3.5 增强 for 循环NS图中的体现 四、相关面试题什么是控制流语句&#…

【干货】Android系统定制基础篇:第三部分(Android静默安装、Android支持usb打印机)

1、Android静默安装 一些产品要求APP在升级时能够实现静默安装,而无需弹出安装界面让用户确认。这里提出两种实现方案: 方案一 APP调用『pm』命令实现静默安装,此方案无须修改Android源码,但需要root权限。 方案二 修改Android …

linux内核驱动的显卡型号,[图]Linux Kernel 5.9代码统计:10.5%是AMD Radeon显卡驱动

原标题:[图]Linux Kernel 5.9代码统计:10.5%是AMD Radeon显卡驱动 在 Linux Kernel 5.9 发布前夕,外媒 Phoronix 使用 cloc(源代码行数统计工具)对接近正式版的 5.9 进行了统计。根据统计数据显示,在 Linux 5.9 Git 中内核代码大约…

38深入聚合数据分析_实战hitogram按价格区间统计电视销量和销售额

histogram:类似于terms,也是进行bucket分组操作,接收一个field,按照这个field的值的各个范围区间,进行bucket分组操作 "histogram":{ "field": "price","interval": 2000 }i…

mysql 计算经纬度范围内的数据

利用谷歌方案 The SQL statement that will find the closest 20 locations that are within a radius of 30 miles to the 78.3232, 65.3234 coordinate. It calculates the distance based on the latitude/longitude of that row and the target latitude/longitude, and t…