对“MMU映射地址一”里面的程序
unsigned long *mmu_tlb_base = (unsigned long *)0x30000000;
virtuladdr = 0xA0000000;
physicaladdr = 0x56000000;
*(mmu_tlb_base + (virtuladdr >> 20)) = (physicaladdr & 0xFFF00000) |
MMU_SECDESC;
我自己理解为: virtuladdr 为虚拟空间各段基地址,virtuladdr >> 20为段描述符的各段的位置,即第几个段,(physicaladdr & 0xFFF00000)为物理空间各段的位置,也即第几个段,则上面程序意思为把物理空间各段基地址放进虚拟空间的各段基地址,即索引。。。。
但是有个问题,跟0x30000000有什么关系呢?
因为上面的程序是要把也表放在SDRAM里,并且是从0x30000000处开始放起;第二就是为什么只有virtuladdr>>20,而没有完整的virtual地址?因为地址是1M对齐,即后20位全为零,所以只看高12位就行,所以只有virtuladdr>>20也能起点作用;
那么我有个问题,就是把也表放在那了,那它是什么时候去用他们呢,怎么用的他们呢,好像跟前两篇博客讲的不太一样?
哦,一样,因为建立(一级)页表(地址在0x30000000)后,首先要告诉MMU页表位于0x30000000处;
第二,当CPU发出一个虚拟地址时,要被MMU分成两部分,第一部分就是段基址,第二部分是地址偏移量,然后MMU去页表地址找页表,然后自动通过一系列转换规则,来找到对应物理地址。
关键字:ARM9 MMU映射
引用地址:
ARM9 MMU映射问题三
推荐阅读最新更新时间:2024-03-16 14:29
TQ2440(ARM9)的第一个无OS实验【流水灯】
#include 2440addr.h //包含2440相关寄存器的设置 //四个LED对应GPB5.6.7.8 #define LED1 5 #define LED2 6 #define LED3 7 #define LED4 8 #define Bit(x) (1 x) //将某位置位 #define Output(x) (1 2*x) //将对应IO置为输出 /******************************************* * 名称:Delay * 功能:延时 * 入口参数:无 * 出口参数:无 ************************
[单片机]
基于ARM9的SD/MMC卡控制器的ASIC设计
引言 如今多媒体数码产品的迅猛发展,其中,各种音频视频等功能的不断增强,使得系统对于存储介质的性能,容量,安全等方面的要求与日俱增。MMC卡和SD卡均是基于flash的存储设备,近年来,它们以高存储容量,快速的数据传输速率,加上极大的移动灵活性和更高的安全性已经成为闪存市场的标准,其广泛应用于手机,MP3,MP4,掌上电脑等各种产品中。可见,其已经成为面向便携式数码电子产品的SOC芯片中通用的功能接口。 文章设计的SD/MMC控制器基于一款3G手机基带芯片,其内核采用ARM926EJ,系统总线架构为AMBA,控制器连接到APB总线上。通过分析SD卡和MMC卡的规范,利用Verilog HDL实现了符合该规范的SD/MM
[工业控制]
ARM9的中断处理技术详细深入剖析-三星S3C2440处理器
1、中断的生命周期 中断信号产生(中断源)—》中断信号过滤(中断控制器)—》中断信号处理(CPU) 1.1 中断源 在中断的生命周期中,中断源的作用是负责产生中断信号。 S3C2440支持60个中断源(包含子中断源,不包括EINT8_23等里面的独立中断源,例如串口的发送中断、接收中断、错误中断属于串口的子中断源。); S3C6410支持64个中断源; S5PV210支持93个中断源; 1.2 中断控制器 1.3 中断处理 1)非向量方式(2440) 2)向量方式(6410/210) (对于向量方式,是直接进入中断函数(而不是跳转到中断程序总入口),因为中断函数(的地址)保存在相应寄存器里,根据相应中断源跳转
[单片机]
ARM9中断调试(1)
/*************************************************** *说 明 :ARM9中断调试(1) ***************************************************/ 一般情况下,在ARM9调试程序都是下载到RAM中执行的,当然,只要没有中断产生程序看似能够正常执行,但是一旦中断发生,程序必然会跑飞,原因在于程序中断后,PC默认指向0x00-0x1C处,但是RAM的起始地址是0x30000000,中断向量表默认在0x30000018处,很明显,中断服务程序是不能够正常执行的,同时ARM内核会通过串口打印 Dummy_isr error..
[单片机]
谈谈ARM7与ARM9的区别
由于职业的关系,经常会回答一些ARM初学者的问题,虽然问题千奇百怪,但以下两个问题绝对很有代表性。 ARM7和ARM9的都有些什么区别? 我准备学ARM,但不知是选ARM7还是ARM9好? 也许这些问题在大虾们的眼里已不是问题,但对于初学者确实很具必要弄清楚。先说下:ARM7和ARM9的区别。 1. 时钟频率的提高 虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MH
[单片机]
布局嵌入式:TI新推可扩展Sitara ARM9 MPU
“整个ARM MPU市场是非常大的,”德州仪器(TI)中国区应用处理器与低功耗DSP业务拓展经理牟涛告诉EEWORLD,该市场2010年整个容量达204亿美元,其中工业电子年均复合增长率为27.8%,医疗电子增长尤为显著,高达65.4%。TI非常希望在这样的市场有一番作为,因而会加大投入,陆续推出一系列新品。 为满足工业、医疗及消费等领域高度互连的需求,德州仪器 (TI) 4 月 7 日宣布推出 4 款提供多种集成型连接选项的全新 Sitara™ ARM9 微处理器 (MPU) 与相应的评估板 (EVM),可为嵌入式工业、医疗以及消费类设计开发人员提供支持各种特定行业外设与接口的高灵活架构。 与其它 ARM9 产品
[嵌入式]
基于ARM9的汽车视频监控防盗系统设计
本文基于三星公司的S3C2410为控制中心, 设计一种汽车视频监控系统。系统主要由S3C2410处理器、USB摄像头、触摸显示屏组成, 阐述了系统硬件设计的基本工作原理, 平台定制和摄像头图像监控防盗程序的设计流程。采用摄像头对图像数据进行采集, 触摸显示屏对视频图像进行存储和处理, 达到防盗的目的。 触摸显示屏接口电路 USB接口电路
[单片机]
基于ARM9的嵌入式网关的研究
摘 要: 介绍了一种基于ARM9的嵌入式以太网的设计方案。基于ARM内核微处理器S3C2410的功能特点及其外扩组成部分,分析了以太网控制器芯片RTL8019AS的性能以及与S3C2410的接口。在软件设计上,分析了BootLoader的作用,介绍了Linux的移植,并给出了通信程序的流程图,实现了嵌入式以太网的数据传输。 引 言 无所不在的网络给网络接入设备带来了巨大的发展机遇。而随着网络接入市场的迅速增长,嵌入式网络接入开始成为嵌入式系统技术中最令人关注的一个领域。在嵌入式网络技术的推动下将会形成这样一个局面:在网络上传输的信息中,将有70%的信息来自嵌入式系统,也许将有数以亿计的汽车、通信设备、家用电气以
[应用]