⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmu.h

📁 这是Linux环境下的内核引导程序miniboot0.8
💻 H
字号:
#ifndef _MMU_H#define _MMU_H#include "s3c2410.h"#define SDRAM_BASE			0x30000000#define SDRAM_LIMIT			0x34000000#define SFR_BASE			0x48000000#define SFR_LIMIT			0x60000000#define EXCEPTION_VECTOR_BASE		0xffff0000#define EXCEPTION_VECTOR_LIMIT		0xffffffff#define DSP_BASE			0x08000000#define DSP_LIMIT			0x10000000#define SMALL_PAGE_SIZE			4096/* * */#define PAGE_TABLE_ENTRIES		256#define PAGE_TABLE_ENTRY_SIZE		4#define PAGE_TABLE_SIZE			(PAGE_TABLE_ENTRIES)*(PAGE_TABLE_ENTRY_SIZE)/* *	DIRECTORY: 页目录表,该表总共有4096个目录项 *	所处地址范围:	0x30000000~0x30003fff */#define DIRECTORY_ENTRIES		4096#define DIRECTORY_ENTRY_SIZE		4#define DIRECTORY_BASE			0x30000000#define DIRECTORY_SIZE			(DIRECTORY_ENTRIES)*(DIRECTORY_ENTRY_SIZE)/* *	RAM_PAGE_TABLE_BASE: SDRAM的页表,总共有64个页表 *	每个页表有256个页表项 *	所处地址范围:	0x30004000~0x30013fff */#define RAM_PAGE_TABLE_BASE		(DIRECTORY_BASE)+(DIRECTORY_SIZE)#define RAM_PAGE_TABLES			((SDRAM_LIMIT)-(SDRAM_BASE))>>20#define RAM_PAGE_TABLE_SIZE		(RAM_PAGE_TABLES)*(PAGE_TABLE_SIZE)/* *	SFR_PAGE_TABLE_BASE: SFR的页表,总共有384个页表 *	每个页表有256个页表项 *	所处地址范围:	0x30014000~0x30073fff */#define SFR_PAGE_TABLE_BASE		(RAM_PAGE_TABLE_BASE)+(RAM_PAGE_TABLE_SIZE)#define SFR_PAGE_TABLES			((SFR_LIMIT)-(SFR_BASE))>>20#define SFR_PAGE_TABLE_SIZE		(SFR_PAGE_TABLES)*(PAGE_TABLE_SIZE)/* *	VECTOR_PAGE_TABLE_BASE:中断向量表所使用的页表,只需要1个页表 *	该表有256个页表项 *	所处地址范围:	0x30074000~0x300743ff */#define VECTOR_PAGE_TABLE_BASE		(SFR_PAGE_TABLE_BASE)+(SFR_PAGE_TABLE_SIZE)#define VECTOR_PAGE_TABLES		1#define VECTOR_PAGE_TABLE_SIZE		(VECTOR_PAGE_TABLES)*(PAGE_TABLE_SIZE)/* *	DSP_PAGE_TABLE_BASE:DSP地址使用的页表,只需要128个页表 *	每个页表有256个页表项 *	所处地址范围:	0x30075000~0x30094fff */#define DSP_PAGE_TABLE_BASE		0x30075000#define DSP_PAGE_TABLES			((DSP_LIMIT)-(DSP_BASE))>>20#define DSP_PAGE_TABLE_SIZE		(DSP_PAGE_TABLES)*(PAGE_TABLE_SIZE)/* *	内核的起始地址,必须是4KB的边界,所以从我决定从0x30095000开始 */#define KERNEL_BASE			0x30095000//Level One Descriptor Attribute#define COARSE_PAGE			(1) 	/* indicates that this is a Coarse page descriptor */#define SPECIAL				(1<<4)	/* must be 1 */#define CLIENT				(0<<5)#define MANAGER				(1<<5)#define COARSE_PAGE_DESC		(COARSE_PAGE|SPECIAL)//Level Two Descriptor Attribute#define SMALL_PAGE			(2<<0)#define BUFFERABLE			(1<<2)	/* bufferable */#define CACHEABLE			(1<<3)	/* cacheable *//* *	Supervisor模式下的代码对该页的访问具有read/write权限 *	User模式下的代码对该页的访问具有read权限 */#define AP0				(2<<4)#define AP1				(2<<6)#define AP2				(2<<8)#define AP3				(2<<10)#define SMALL_PAGE_DESC			(SMALL_PAGE|AP0|AP1|AP2|AP3)#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -