URN Logo
UNIX Resources » Linux » China Linux Forum » CPU 与 编译器 » 3 » 【请教】如何将arm中的cache无效掉?
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
【请教】如何将arm中的cache无效掉?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Subject: 【请教】如何将arm中的cache无效掉?
Author: CloudLee    Posted: 2006-10-09 12:19    Length: 194 byte(s)
[Original] [Print] [Top]
各位好,我现在需要invalidate cache,用gas汇编语言,但是不知道该如何写这一个汇编语句。
将instruction cache或者是整个cache invalidate掉都是可以的,这个芯片是arm7的。
请大虾赐教。
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: sartpoint    Posted: 2006-10-09 13:25    Length: 53 byte(s)
[Original] [Print] [Top]
的看具体芯片的硬件手册吧,一般是在bootloader里配置的.
----
Crazy linux fans
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: CloudLee    Posted: 2006-10-09 14:24    Length: 248 byte(s)
[Original] [Print] [Top]
请问在bootloader里面配置是什么意思?我是想在程序运行的中间来无效cache的,这个确实需要协处理器cp15来做,似乎只需要一句汇编码嵌在c语句中就可以,但是我试了很多种方式,都没有成功:
例如: __asm __volatile("mcr p15, 0, r0 c7, c0, 0");
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: IN_FLAMES    Posted: 2006-10-09 16:31    Length: 114 byte(s)
[Original] [Print] [Top]
刚才帮你看了一下,好象应该是mcr p15,0,r0,c7,c7,0
你再看看手册确定一下吧。
你怎么确定没有成功的?
----
Ubuntu图形界面,一切尽在掌握
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: CloudLee    Posted: 2006-10-09 17:39    Length: 701 byte(s)
[Original] [Print] [Top]
谢谢IN_FLAMES,确认成功无效掉cache确实是没有办法的,但是我有两个厂商给出的c函数,一个会清空数据cache,一个会清空指令cache。然后呢我会在一个叫flushCache的函数里面调用这两个函数,程序此时能够成功启动,代表cache被成功的清空或者无效掉了。但是由于flushCache这个实在被调用得太频繁,所以我认为它里面调用的这两个c函数会成为瓶颈,于是想用一句汇编来代替。那如果这句汇编能够正确运行得话,程序就能成功得启动,如果这句汇编不正确,不能无效掉cache,就代表它错了。

我也查了一下书,书上说mcr这种指令只能在处理器模式是系统模式时执行,在用户模式下面执行会出发未定义指令得异常中断,需要做成一个软中断用swi来调用,可能在linux下面这种情况更加明显,请问您成功的运行过您给出的语句么?c7我也确实都是试验过的
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: IN_FLAMES    Posted: 2006-10-09 18:07    Length: 112 byte(s)
[Original] [Print] [Top]
好象没有,不过这是手册上给出来的指令,应该不会错。不过我之前使用汇编都是在系统模式下进行的,没有在用户级别试过。
----
Ubuntu图形界面,一切尽在掌握
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: CloudLee    Posted: 2006-10-09 18:16    Length: 20 byte(s)
[Original] [Print] [Top]
您是开发操作系统的?
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: ffxz    Posted: 2006-10-09 21:34    Length: 167 byte(s)
[Original] [Print] [Top]
你的是什么ARM7芯片?ARM7TDMI是没有协处理器的

没协处理器的芯片,看芯片的手册,上面会有如何disable cache,但flush cache和disable cache意义是不相同的。
----
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: IN_FLAMES    Posted: 2006-10-09 22:53    Length: 91 byte(s)
[Original] [Print] [Top]
I never use that kind of instructions on an ARM7 processor core.
They are all ARM9
----
Ubuntu图形界面,一切尽在掌握
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: IN_FLAMES    Posted: 2006-10-09 22:56    Length: 41 byte(s)
[Original] [Print] [Top]
Yes, my name is Russell King, Hahahaha~~~
----
Ubuntu图形界面,一切尽在掌握
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: teawater    Posted: 2006-10-10 09:41    Length: 8 byte(s)
[Original] [Print] [Top]
/me 吐了
----
科学家会武术 流氓都挡不住
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: sartpoint    Posted: 2006-10-10 10:12    Length: 155 byte(s)
[Original] [Print] [Top]
没错,我记得我原来在arm7tdmi里在bootloader里配置cache的,可以disable 和enable. 也可以配置指令cache和数据cache的大小,有点记不太清楚了.要看你自己的芯片手册.
----
Crazy linux fans
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: sartpoint    Posted: 2006-10-10 10:14    Length: 31 byte(s)
[Original] [Print] [Top]
抱歉跑题,是在运行的时候,汗!!!
----
Crazy linux fans
[Original] [Print] [Top]
Subject: Re: 【请教】如何将arm中的cache无效掉?
Author: CloudLee    Posted: 2006-10-10 15:18    Length: 262 byte(s)
[Original] [Print] [Top]
谢谢你提供的思路,这个芯片其实是仿arm7的,才曾经被arm公司告过,确实找不到相关手册,现在我的做法都是按照arm7那一套来的。如果这个芯片是真的没有协处理器的,请问按照arm的做法,应该如何写代码来disable cache呢?
依据我对程序的需求,disable cache应该也是可行的
[Original] [Print] [Top]
« Previous thread
请问BNN: intel最新的激光硅芯片等技术会需要系统软件产生什么变化
CPU 与 编译器
3
Next thread »
怎么样写汇编程序才能制造“非法指令”
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 03:47:12, cost 0.1043119430542 ms.