📄 cache.cfg
字号:
## Cache control functions for the TP3 and 5500
## Used by the debugger to invalidate the I cache after setting/restoring soft breaks
## Top 2*K of INTERNAL memory segment setup for data cache
##
proc dcache_internal {
dcache_sz = (2*K)
dcache_addr = ((addressof -q INTERNAL) + ((sizeof -q INTERNAL) - dcache_sz))
memory DCACHE (dcache_addr) (dcache_sz) RESERVED
}
proc CacheControl5500 {
if ($1=="-iinvalidate") {
poke -device 0x4300 1
} else if ($1=="-ienable") {
ctrl = peek -q -d 0x4100
poke -d 0x4100 ((ctrl) | 2 )
} else if ($1=="-idisable") {
ctrl = peek -q -d 0x4100
poke -d 0x4100 ((ctrl) & (~2) )
} else if ($1=="-denable") {
ctrl = peek -q -d 0x4100
poke -d 0x4100 ((ctrl) | 1 )
} else if ($1=="-ddisable") {
ctrl = peek -q -d 0x4100
poke -d 0x4100 ((ctrl) & (~1) )
} else if ($1=="-dinvalidate") {
poke -d 0x4200 1
} else if ($1=="-dflush") {
poke -d 0x4400 1
} else if ($1=="-lock") {
poke -d 0x4500 1
}
}
proc CacheControlTP3 {
if ($1=="-iinvalidate") {
poke -device 0x4800 1
} else if ($1=="-ienable") {
poke -d 0x4700 1
} else if ($1=="-idisable") {
poke -d 0x4700 0
} else if ($1=="-denable") {
poke -d 0x4400 1
} else if ($1=="-ddisable") {
poke -d 0x4400 0
} else if ($1=="-dinvalidate") {
poke -d 0x4500 1
} else if ($1=="-dflush") {
poke -d 0x4600 1
} else if ($1=="-lock") {
poke -d 0x4a00 1
}
}
proc CacheControlDC1 {
if ($1=="-iinvalidate") {
poke -device 0x20000610 1
} else if ($1=="-ienable") {
;
} else if ($1=="-idisable") {
;
} else if ($1=="-denable") {
;
} else if ($1=="-ddisable") {
;
} else if ($1=="-dinvalidate") {
;
} else if ($1=="-dflush") {
;
} else if ($1=="-lock") {
;
}
}
proc CacheControlC200
ICacheControlAddr=0x30004000
DCacheControlAddr=0x30005000
CacheControlEnable=0x0
CacheControlLock=0x4
CacheControlInvalidate=0x10
CacheControlFlush=0x14 {
if ($1=="-iinvalidate") {
poke -device (ICacheControlAddr + CacheControlInvalidate) 0x1
} else if ($1=="-ienable") {
poke -device (ICacheControlAddr + CacheControlEnable) 0x1
} else if ($1=="-idisable") {
poke -device (ICacheControlAddr + CacheControlEnable) 0x0
} else if ($1=="-denable") {
poke -device (DCacheControlAddr + CacheControlEnable) 0x1
} else if ($1=="-ddisable") {
poke -device (DCacheControlAddr + CacheControlEnable) 0x0
} else if ($1=="-dinvalidate") {
poke -device (DCacheControlAddr + CacheControlInvalidate) 0x1
} else if ($1=="-dflush") {
poke -device (DCacheControlAddr + CacheControlFlush) 0x1
} else if ($1=="-lock") {
## I presume lock applies to both ICache and DCache ???
poke -device (ICacheControlAddr + CacheControlLock) 0x1
poke -device (DCacheControlAddr + CacheControlLock) 0x1
}
}
proc CacheControl {
if (clsymbol ("CacheControlProc["+(mkstr(spaceid))+"]")) {
eval(CacheControlProc[spaceid], $1)
}
}
proc cachecontrol {
if (clsymbol ("CacheControlProc["+(mkstr(spaceid))+"]")) {
eval(CacheControlProc[spaceid], $1)
}
}
addhelp cachecontrol "See CacheControl\n"
addhelp CacheControl \
"CacheControl -ienable -idisable -iinvalidate -denable -ddisable -dinvalidate -dflush -lock\n\
control intruction and data caches\n\
-ienable enable I cache\n\
-idisable disable I cache\n\
-iinvalidate invalidate I cache\n\
-denable enable D cache\n\
-ddisable disable D cache\n\
-dinvalidate invalidate D cache\n\
-dflush flush D cache\n\
-lock lock configuration registers\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -