电脑出问题了,求大神和他的朋友们解答,关于内存条的! 是这样的,我电脑本来有两张内存条,我朋友拿去用了一天,然

&&问题详情
自己笔记本电脑安装的win7系统,在玩冰封王座ROG地图时突然崩溃提示说我电脑内存不足?.求大神指教
电脑配置i3处理器、1G独显、2G内存、500G硬盘
您的回答过短,请将答案描述得更清楚一些
回答被采纳后将获得系统奖励20
千祥是家口碑好的别墅装修公司,性价比高
就是一般家用煲汤的那种小砂罐!
托斯卡纳集成吊顶厂商是引进意大利的科技,不是意大利品牌,你要搞清楚。
你说的是rpg地图吧,那种一下出很多兵的?尤其是守城的地图一旦画面上兵多了,就会变卡,然后就会崩溃,我玩的时候也经常这样,很正常
手机动态登录
请输入用户名/邮箱/手机号码!
请输入密码!
Copyright &
Soufun Holdings Limited, All Rights Reserved
上海旌荣信息科技有限公司 版权所有
客服电话:400-850-8888 违法信息举报邮箱:新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分45阅读权限10帖子精华可用积分45 信誉积分76 专家积分0 在线时间30 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 信誉积分76 专家积分0 在线时间30 小时注册时间最后登录
论坛徽章:0
& & 页大小为1M(本人觉得严格来讲应该是段大小吧),以省去页(段)描叙符
& & unsigned long virtualaddr,//分别表示虚拟地址和物理地址
& & unsigned long *mmu_tlb_base = (unsigned long *)0x; //mmu_tlb_base 表示页表的起始地址
& & virtualaddr = 0;
& & physicaladdr = 0;
& & *(mmu_tlb_base + (virtualaddr && 20)) = (physicaladdr & 0xFFF00000) //@1
& & virtualaddr = 0xA0000000;
& & physicaladdr = 0x;
& & *(mmu_tlb_base + (virtuladdr && 20)) = (physicaladdr & 0xFFF00000)
& & virtualaddr = 0xB0000000;
& & physicaladdr = 0x;
& & while (virtuladdr & 0xB4000000)
& && &&&*(mmu_tlb_base + (virtuladdr && 20)) = (physicaladdr & 0xFFF00000)
& && &&&virtuladdr += 0x100000;
& && &&&physicaladdr += 0x100000;
求大神帮忙解释下@1处是什么意思?
为什么virtualaddr要右移20位,physicaladdr 要&0xFFF00000,这样做的目的是什么?是怎么做到的?先谢过大家了~~!
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分45阅读权限10帖子精华可用积分45 信誉积分76 专家积分0 在线时间30 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 信誉积分76 专家积分0 在线时间30 小时注册时间最后登录
论坛徽章:0
额,主要是搞不明白为什么*(mmu_tlb_base + (virtualaddr && 20)) = (physicaladdr & 0xFFF00000) 这句话就能将页大小设置为1M,大神帮忙解释下~~
淫僧仁波切
UID1907329空间积分0 积分29阅读权限10帖子精华可用积分29 信誉积分2471 专家积分120 在线时间6553 小时注册时间最后登录
白手起家, 积分 29, 距离下一级还需 171 积分
帖子主题精华可用积分29 信誉积分2471 专家积分120 在线时间6553 小时注册时间最后登录
论坛徽章:4
& & 这句话根本不能将页大小设置为1M
& &而是页大小已经设置为1M时,TLB如何保存VA==&PA的映射关系。
桑拿不空誓不成佛,技师度尽方证菩提。
UID空间积分0 积分45阅读权限10帖子精华可用积分45 信誉积分76 专家积分0 在线时间30 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 信誉积分76 专家积分0 在线时间30 小时注册时间最后登录
论坛徽章:0
塑料袋 额,但是好像没有其他的语句来设置了,只有一个宏定义,但是整个工程里面没有根本就没有用到这个宏定义,我把整个源码贴上来吧
* 设置页表
void create_page_table(void)
* 用于段描述符的一些宏定义
#define MMU_FULL_ACCESS& &&&(3 && 10)& &/* 访问权限 */
#define MMU_DOMAIN& && && & (0 && 5)& & /* 属于哪个域 */
#define MMU_SPECIAL& && && &(1 && 4)& & /* 必须是1 */
#define MMU_CACHEABLE& && & (1 && 3)& & /* cacheable */
#define MMU_BUFFERABLE& && &(1 && 2)& & /* bufferable */
#define MMU_SECTION& && && &(2)& && && &/* 表示这是段描述符 */
#define MMU_SECDESC& && && &(MMU_FULL_ACCESS | MMU_DOMAIN | MMU_SPECIAL | \
& && && && && && && && && &&&MMU_SECTION)
#define MMU_SECDESC_WB& && &(MMU_FULL_ACCESS | MMU_DOMAIN | MMU_SPECIAL | \
& && && && && && && && && &&&MMU_CACHEABLE | MMU_BUFFERABLE | MMU_SECTION)
#define MMU_SECTION_SIZE& & 0x //1M
& & unsigned long virtuladdr,
& & unsigned long *mmu_tlb_base = (unsigned long *)0x; //SDRAM起始地址
& &&&* Steppingstone的起始物理地址为0,第一部分程序的起始运行地址也是0,
& &&&* 为了在开启MMU后仍能运行第一部分的程序,
& &&&* 将0~1M的虚拟地址映射到同样的物理地址
& & virtuladdr = 0;
& & physicaladdr = 0;
& & *(mmu_tlb_base + (virtuladdr && 20)) = (physicaladdr & 0xFFF00000) | \
& && && && && && && && && && && && && && && && &MMU_SECDESC_WB;
& &&&* 0x是GPIO寄存器的起始物理地址,
& &&&* GPFCON和GPFDAT这两个寄存器的物理地址0xx,
& &&&* 为了在第二部分程序中能以地址0xAxA0000054来操作GPFCON、GPFDAT,
& &&&* 把从0xA0000000开始的1M虚拟地址空间映射到从0x开始的1M物理地址空间
& & virtuladdr = 0xA0000000;
& & physicaladdr = 0x;
& & *(mmu_tlb_base + (virtuladdr && 20)) = (physicaladdr & 0xFFF00000) | \
& && && && && && && && && && && && && && && && &MMU_SECDESC_WB;
& &&&* SDRAM的物理地址范围是0xx33FFFFFF,
& &&&* 将虚拟地址0xBxB3FFFFFF映射到物理地址0xx33FFFFFF上,
& &&&* 总共64M,涉及64个段描述符
& & virtuladdr = 0xB0000000;
& & physicaladdr = 0x;
& & while (virtuladdr & 0xB4000000)
& && &&&*(mmu_tlb_base + (virtuladdr && 20)) = (physicaladdr & 0xFFF00000) | \
& && && && && && && && && && && && && && && && &MMU_SECDESC_WB;
& && &&&virtuladdr += 0x100000;
& && &&&physicaladdr += 0x100000;
void mmu_init(void)
& & unsigned long ttb = 0x;
& & &mov& & r0, #0\n&
& & &mcr& & p15, 0, r0, c7, c7, 0\n&& & /* 使无效ICaches和DCaches */
& & &mcr& & p15, 0, r0, c7, c10, 4\n&& &/* drain write buffer on v4 */
& & &mcr& & p15, 0, r0, c8, c7, 0\n&& & /* 使无效指令、数据TLB */
& & &mov& & r4, %0\n&& && && && && && & /* r4 = 页表基址 */
& & &mcr& & p15, 0, r4, c2, c0, 0\n&& & /* 设置页表基址寄存器 */
& & &mvn& & r0, #0\n&& && && && && && &
& & &mcr& & p15, 0, r0, c3, c0, 0\n&& & /* 域访问控制寄存器设为0xFFFFFFFF,
& && && && && && && && && && && && && &&&* 不进行权限检查
& && && && && && && && && && && && && &&&*/& &
& &&&* 对于控制寄存器,先读出其值,在这基础上修改感兴趣的位,
& &&&* 然后再写入
& & &mrc& & p15, 0, r0, c1, c0, 0\n&& & /* 读出控制寄存器的值 */
& & /* 控制寄存器的低16位含义为:.RVI ..RS B... .CAM
& &&&* R : 表示换出Cache中的条目时使用的算法,
& &&&*& &&&0 = Random replacement;1 = Round robin replacement
& &&&* V : 表示异常向量表所在的位置,
& &&&*& &&&0 = Low addresses = 0x = High addresses = 0xFFFF0000
& &&&* I : 0 = 关闭ICaches;1 = 开启ICaches
& &&&* R、S : 用来与页表中的描述符一起确定内存的访问权限
& &&&* B : 0 = CPU为小字节序;1 = CPU为大字节序
& &&&* C : 0 = 关闭DCaches;1 = 开启DCaches
& &&&* A : 0 = 数据访问时不进行地址对齐检查;1 = 数据访问时进行地址对齐检查
& &&&* M : 0 = 关闭MMU;1 = 开启MMU
& &&&* 先清除不需要的位,往下若需要则重新设置它们& &
& && && && && && && && && && && && && & /* .RVI ..RS B... .CAM */
& & &bic& & r0, r0, #0x3000\n&& && && & /* ..11 .... .... .... 清除V、I位 */
& & &bic& & r0, r0, #0x0300\n&& && && & /* .... ..11 .... .... 清除R、S位 */
& & &bic& & r0, r0, #0x0087\n&& && && & /* .... .... 1... .111 清除B/C/A/M */
& &&&* 设置需要的位
& & &orr& & r0, r0, #0x0002\n&& && && & /* .... .... .... ..1. 开启对齐检查 */
& & &orr& & r0, r0, #0x0004\n&& && && & /* .... .... .... .1.. 开启DCaches */
& & &orr& & r0, r0, #0x1000\n&& && && & /* ...1 .... .... .... 开启ICaches */
& & &orr& & r0, r0, #0x0001\n&& && && & /* .... .... .... ...1 使能MMU */
& & &mcr& & p15, 0, r0, c1, c0, 0\n&& & /* 将修改的值写入控制寄存器 */
& & : /* 无输出 */
& & : &r& (ttb) );
create_page_table这个函数是创建页表,mmu_init这个函数是初始化MMU,只有这两个函数涉及到了,其他的地方没有涉及,其实这是个很小的程序,就是通过MMU,用虚拟地址点亮板子上的LED,然后上课我们老师就说了下create_page_table的功能,没有分析代码,顺带提一句,这个老师真他妈坑,上课讲到arm中pc,为什么pc=pc+8都不知道,我说是因为流水线,预取指令了,他还说不是。。。
淫僧仁波切
UID1907329空间积分0 积分29阅读权限10帖子精华可用积分29 信誉积分2471 专家积分120 在线时间6553 小时注册时间最后登录
白手起家, 积分 29, 距离下一级还需 171 积分
帖子主题精华可用积分29 信誉积分2471 专家积分120 在线时间6553 小时注册时间最后登录
论坛徽章:4
小伙子有前途啊,蛮下功夫的哈,顶!
不过我今天喝多了,刚去厕所吐完,明天给你看哈。
放心,ARMv7是我强项,指定给你解释清楚!
指令指针寄存器=当前指令地址+8,这个确实不完全因为流水线,而是因为历史遗留原因。
早期的ARM流水线短,也不乱序,+8正好能和上取指器对上。
但现代的ARM流水线动辄十几级,而且乱序,+不+8都对不上取指器。
桑拿不空誓不成佛,技师度尽方证菩提。
UID7190305空间积分0 积分18192阅读权限90帖子精华可用积分18192 信誉积分2498 专家积分40 在线时间4586 小时注册时间最后登录
大富大贵, 积分 18192, 距离下一级还需 1808 积分
帖子主题精华可用积分18192 信誉积分2498 专家积分40 在线时间4586 小时注册时间最后登录
论坛徽章:10
塑料袋 发表于
但现代的ARM流水线动辄十几级,而且乱序,+不+8都对不上取指器
+8 最多预取三条指令, 怎么支撑十几级流水线?
授我以鱼, 不要授我以渔
UID空间积分0 积分45阅读权限10帖子精华可用积分45 信誉积分76 专家积分0 在线时间30 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 信誉积分76 专家积分0 在线时间30 小时注册时间最后登录
论坛徽章:0
塑料袋 发表于
谢谢大神……我们芯片是s3c2440,arm9,5级流水线,我看网上说arm9为了兼容arm7的三级流水线,好像执行机制差不多,不知道是不是这样,麻烦大神指点下……
UID空间积分0 积分290阅读权限20帖子精华可用积分290 信誉积分494 专家积分0 在线时间176 小时注册时间最后登录
稍有积蓄, 积分 290, 距离下一级还需 210 积分
帖子主题精华可用积分290 信誉积分494 专家积分0 在线时间176 小时注册时间最后登录
论坛徽章:0
& & 你要看明白配置MMU的代码,需要对照这款芯片的手册看,你用的是ARM9的处理器,去找到ARM9 CORE手册,里面会有很详细的介绍
UID空间积分0 积分3385阅读权限50帖子精华可用积分3385 信誉积分2858 专家积分0 在线时间2654 小时注册时间最后登录
小富即安, 积分 3385, 距离下一级还需 1615 积分
帖子主题精华可用积分3385 信誉积分2858 专家积分0 在线时间2654 小时注册时间最后登录
认证徽章论坛徽章:31
虽然看不懂,不过以后想学arm,顺便mark下看大牛解释。 看你@1处猜测是获取12位的页内偏移地址(猜想线性地址也是10 (pgd)| 10(pte) | 12(offset) )
淫僧仁波切
UID1907329空间积分0 积分29阅读权限10帖子精华可用积分29 信誉积分2471 专家积分120 在线时间6553 小时注册时间最后登录
白手起家, 积分 29, 距离下一级还需 171 积分
帖子主题精华可用积分29 信誉积分2471 专家积分120 在线时间6553 小时注册时间最后登录
论坛徽章:4
这个程序我搞不定,看糊涂了,这什么路数嘛?
1) 搞不清楚他这个1M页大小在哪设置的
2) 明知是GPIO的寄存器,为什么还要设置成MMU_CACHEABLE | MMU_BUFFERABLE
桑拿不空誓不成佛,技师度尽方证菩提。

我要回帖

更多关于 笔记本内存条怎么装 的文章

 

随机推荐