|
|
|
|
 【请教】如何将arm中的cache无效掉? - CloudLee [ 2006-10-09 12:19 | 194 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - ffxz [ 2006-10-09 21:34 | 167 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - CloudLee [ 2006-10-10 15:18 | 262 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - sartpoint [ 2006-10-10 10:12 | 155 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - sartpoint [ 2006-10-10 10:14 | 31 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - IN_FLAMES [ 2006-10-09 22:53 | 91 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - sartpoint [ 2006-10-09 13:25 | 53 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - CloudLee [ 2006-10-09 14:24 | 248 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - IN_FLAMES [ 2006-10-09 16:31 | 114 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - CloudLee [ 2006-10-09 17:39 | 701 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - IN_FLAMES [ 2006-10-09 18:07 | 112 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - CloudLee [ 2006-10-09 18:16 | 20 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - IN_FLAMES [ 2006-10-09 22:56 | 41 byte(s)]
 Re: 【请教】如何将arm中的cache无效掉? - teawater [ 2006-10-10 09:41 | 8 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
各位好,我现在需要invalidate cache,用gas汇编语言,但是不知道该如何写这一个汇编语句。
将instruction cache或者是整个cache invalidate掉都是可以的,这个芯片是arm7的。
请大虾赐教。
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
请问在bootloader里面配置是什么意思?我是想在程序运行的中间来无效cache的,这个确实需要协处理器cp15来做,似乎只需要一句汇编码嵌在c语句中就可以,但是我试了很多种方式,都没有成功:
例如: __asm __volatile("mcr p15, 0, r0 c7, c0, 0");
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
刚才帮你看了一下,好象应该是mcr p15,0,r0,c7,c7,0
你再看看手册确定一下吧。
你怎么确定没有成功的?
|
|
----
Ubuntu图形界面,一切尽在掌握
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
谢谢IN_FLAMES,确认成功无效掉cache确实是没有办法的,但是我有两个厂商给出的c函数,一个会清空数据cache,一个会清空指令cache。然后呢我会在一个叫flushCache的函数里面调用这两个函数,程序此时能够成功启动,代表cache被成功的清空或者无效掉了。但是由于flushCache这个实在被调用得太频繁,所以我认为它里面调用的这两个c函数会成为瓶颈,于是想用一句汇编来代替。那如果这句汇编能够正确运行得话,程序就能成功得启动,如果这句汇编不正确,不能无效掉cache,就代表它错了。
我也查了一下书,书上说mcr这种指令只能在处理器模式是系统模式时执行,在用户模式下面执行会出发未定义指令得异常中断,需要做成一个软中断用swi来调用,可能在linux下面这种情况更加明显,请问您成功的运行过您给出的语句么?c7我也确实都是试验过的
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
你的是什么ARM7芯片?ARM7TDMI是没有协处理器的
没协处理器的芯片,看芯片的手册,上面会有如何disable cache,但flush cache和disable cache意义是不相同的。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
I never use that kind of instructions on an ARM7 processor core.
They are all ARM9
|
|
----
Ubuntu图形界面,一切尽在掌握
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
没错,我记得我原来在arm7tdmi里在bootloader里配置cache的,可以disable 和enable. 也可以配置指令cache和数据cache的大小,有点记不太清楚了.要看你自己的芯片手册.
|
|
----
Crazy linux fans
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
谢谢你提供的思路,这个芯片其实是仿arm7的,才曾经被arm公司告过,确实找不到相关手册,现在我的做法都是按照arm7那一套来的。如果这个芯片是真的没有协处理器的,请问按照arm的做法,应该如何写代码来disable cache呢?
依据我对程序的需求,disable cache应该也是可行的
|
|
|
[Original]
[Print]
[Top]
|
|
|