Files
Gen4_R-Car_Trace32/2_Trunk/demo/arm/kernel/ecos/ecos.t32
2025-10-14 09:52:32 +09:00

673 lines
34 KiB
Plaintext

;@Extension.Container.Version.1
;-- DO NOT CHANGE THE LINE ABOVE --
IF (VERSION.BUILD.BASE()<138311.)
(
PRINTF %ERROR "%s: Software too old, please contact support@lauterbach.com." "ECOS"
ENDDO
)
PMACRO.EXPLICIT
PRIVATE &sParamline &sPpf &sCmd &sParameters &sAccess &sAccessSpaces &sAccessMachine &sOptionAccess &sOptionAccessMisc &sName &sMachine &sArguments &nVariant
PRIVATE &bTaskConfig &bExtLoad &bCleanup
ENTRY &sCmd %LINE &sParamline
&sParameters=STRing.SCANAndExtract("&sParamline","PARAMETERS=","")
&sAccess=STRing.SCANAndExtract("&sParamline","ACCESS=","")
&sAccessSpaces=STRing.SCANAndExtract("&sParamline","ACCESSSPACES=","")
&sAccessMachine=STRing.SCANAndExtract("&sParamline","ACCESSMACHINE=","")
&sName=STRing.SCANAndExtract("&sParamline","NAME=","")
&sMachine=STRing.SCANAndExtract("&sParamline","MACHINE=","")
&sArguments=STRing.SCANAndExtract("&sParamline","ARGUMENTS=","")
&sParameters=STRing.Replace("&sParameters","""","",0.)
IF ("&sArguments"!="")
&sArguments=&sArguments
IF ("&sAccess"!="")
&sOptionAccess="/ACCESS &sAccess"
IF ("&sAccessSpaces"!="")
&sOptionAccessMisc="/ACCESSSPACES &sAccessSpaces"
IF ("&sAccessMachine"!="")
&sOptionAccessMisc="&(sOptionAccessMisc) /ACCESSMACHINE &sAccessMachine"
&sName=STRing.Replace("&sName","""","",0.)
&bTaskConfig=STRing.SCAN("task.config,ext.config",STRing.LoWeR("&sCmd"),0.)>=0.
&bExtLoad=STRing.SCAN("ext.load",STRing.LoWeR("&sCmd"),0.)>=0.
&bCleanup=STRing.SCAN("task.res,ext.res,ext.delete",STRing.LoWeR("&sCmd"),0.)>=0.
&sPpf=OS.PresentPracticeFile()
IF (&bTaskConfig||&bExtLoad)
(
IF ("&nVariant"!="32.")&&("&nVariant"!="64.")
(
IF CPUIS64BIT()
&nVariant="64."
ELSE
&nVariant="32."
)
IF STRing.ComPare("&sArguments","*32BIT*")
&nVariant="32."
ELSE IF STRing.ComPare("&sArguments","*64BIT*")
&nVariant="64."
)
IF (&bTaskConfig)
(
PRIVATE &sMachineName
&sMachineName="ECOS"
TASK.RESet
IF (&nVariant==32.)
(
GOSUB extension_32bit "&sParameters" "&sOptionAccess"
IF !STRing.Compare("&sArguments","*MENU=NONE*")
GOSUB menu_32bit "&sMachineName" ""
GOSUB autoload_32bit ""
)
ELSE IF (&nVariant==64.)
(
PRINTF %ERROR "%s: No support for %ubit, please contact support@lauterbach.com." "ECOS" &nVariant
)
)
ELSE IF (&bExtLoad)
(
PRIVATE &sMachineName &sInfix &sOptionName &sOptionMachine
&sInfix=""
&sMachineName="ECOS"
IF ("&sName"!="")
(
&sInfix=STRing.UPpeR("&(sName).")
&sMachineName="&(sName)"
&sOptionName="/NAME &sMachineName"
)
ELSE IF PRACTICE.FUNCtion.AVAILable(SYStem.Option.MACHINESPACES)
(
IF SYStem.Option.MACHINESPACES()
&sInfix=TASK.TRANSPOSE.INFIX(OS.FILE.BASENAME("&sPpf",".**"))+"."
)
IF ("&sMachine"!="")
(
&sOptionMachine="/MACHINE &sMachine"
)
IF (&nVariant==32.)
(
GOSUB extension_32bit "&sParameters" "&sOptionAccess &sOptionAccessMisc &sOptionName &sOptionMachine"
IF !STRing.Compare("&sArguments","*MENU=NONE*")
GOSUB menu_32bit "&sMachineName" "&sInfix"
GOSUB autoload_32bit "&sOptionMachine"
)
ELSE IF (&nVariant==64.)
(
PRINTF %ERROR "%s: No support for %ubit, please contact support@lauterbach.com." "ECOS" &nVariant
)
)
ELSE IF (&bCleanup)
(
PRIVATE &sMachineName &sOptionMachine
&sMachineName="ECOS"
IF ("&sName"!="")
(
&sMachineName="&(sName)"
)
IF ("&sMachine"!="")
(
&sOptionMachine="/MACHINE &sMachine"
)
IF STRing.SCAN(HELP.FILTER(),"rtosecos",0.)>=0.
HELP.FILTER.Delete rtosecos
GOSUB menu_delete "&sMachineName"
GOSUB autoload_delete "&sOptionMachine"
)
ENDDO
extension_32bit: ; (options)
(
PARAMETERS &sParameters &sOptions
EXTension.LOAD &sParameters &sOptions
(
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAH6AAAAAYAAAANAAAATgAAJ9IAAAfoAAAABgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAE3ukVDT1MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAB2LnYgJSVtICUlaW4gKEN5Z19TY2hlZHVsZXIq
KSV4ACU4eABNdWx0aS1MZXZlbCBRdWV1ZQAAAEJpdG1hcAAATG90dGVyeQB1bmtub3duAGJhc2UK
AAAAY3VycmVudCB0aHJlYWQgIHRocmVhZCBzd2l0Y2hlcyAgbG9jayBjb3VudGVyCgAAQ3lnX1Nj
aGVkdWxlcl9CYXNlOjp0aHJlYWRfc3dpdGNoZXMAY3lnX3NjaGVkdWxlcl9zY2hlZF9sb2NrAAAA
ACU4eCAgICAgICAgJTVkLiAgICAgICAgICAgJTVkLgoKAAAAAGltcGxlbWVudGF0aW9uIABDeWdf
U2NoZWR1bGVyX0ltcGxlbWVudGF0aW9uOjp0aW1lc2xpY2VfY291bnQAAABtdWx0aS1sZXZlbAoA
AAAAcnVuIHF1ZXVlcyAgAAAAAHRpbWVzbGljZSBjb3VudGVyAAAAJTVkLiAgAAAlNWQuAAAAACAg
IGluZGV4ICBoZWFkICAgICAgIGxpc3QKAAAgJTNkLiAgAFRBU0suVEhSZWFkICV4AAAgJTh4IAAA
ACBlbmQgb2YgbGlzdAAAAABBbHBoYSBCcmVha3BvaW50cyBzZXQgb24gJWQgdGhyZWFkIHN0YXRl
IHdvcmRzAAAtLS0gVEhSRUFEIG1hZ2ljID0gJTh4LCBpZCA9ICVkLgAAAAAsIG5hbWUgPSAAAAAg
LS0tAAAAAEFuYVN0YXRDaGVjayBhZGRyZXNzPSU4eAAAAABwYXJhbWV0ZXIgMTogMHglOHggPSAl
cwBtYWdpYwAAAG1hZ2ljc2l6ZQAAAGNvbnRleHQAdW5rbm93biB0b3BpYwAAAFNvcnJ5OiBDb3Vs
ZG4ndCBnZXQgc3ltYm9sIGFkZHJlc3NlcwAAAABfX0VNRUNPU19BVABfX0VNRUNPU19BUwBfX0VN
RUNPU19BTABUQVNLLkNPTkZJRwBfX0VNRUNPU19GVU5DAAAAVEFTS1NUQVRFAAAAVEFTS1MAAABU
QVNLU3RhdGUAAABAKD0pX19SVE9TX0VDT1NfX1RBU0tfVEFTS1MAU0NIRURVTEVSAAAAU0NIRUQA
AABTQ0hFRHVsZXIAAABAKD0pX19SVE9TX0VDT1NfX1RBU0tfU0NIRUQASnVuIDEzIDIwMjQAZUNv
cwAAAABBUk0AbWFnaWMgICAgIHR5cGUAAEN5Z19TY2hlZHVsZXJfQmFzZTo6Y3VycmVudF90aHJl
YWQAAC5xdWV1ZV9tYXAAAC50aHJlYWRfdGFibGUAAAAucmFuZF9zZWVkAABDeWdfU2NoZWR1bGVy
OjpzY2hlZHVsZXIAAAAAXzEzQ3lnX1NjaGVkdWxlci5zY2hlZHVsZXIAAC5xdWV1ZQAALnJ1bl9x
dWV1ZQAALm5leHQAAAAudW5pcXVlX2lkAAAubmFtZQAAAEN5Z19UaHJlYWQ6OnRocmVhZF9saXN0
AF8xMEN5Z19UaHJlYWQudGhyZWFkX2xpc3QAAAAubGlzdF9uZXh0AAAuc3RhdGUAAC5zdGFja19i
YXNlAC5zdGFja19zaXplAC5zdGFja19saW1pdAAAAAAuc3RhY2tfcHRyAAAuc3VzcGVuZF9jb3Vu
dAAALndha2V1cF9jb3VudAAAAC53YWl0X2luZm8AAC5zbGVlcF9yZWFzb24AAAAud2FrZV9yZWFz
b24AAAAALnRpbWVyAAAuZW50cnlfcG9pbnQAAAAALmVudHJ5X2RhdGEALnNhdmVkX2NvbnRleHQA
AC5tdXRleF9jb3VudAAAAAAub3JpZ2luYWxfcHJpb3JpdHkAAC5wcmlvcml0eV9pbmhlcml0ZWQA
LnByaW9yaXR5AAAAXzE4Q3lnX1NjaGVkdWxlcl9CYXNlLmN1cnJlbnRfdGhyZWFkAAAAAGN5Z19j
dXJyZW50X3RocmVhZF90YWJsZQAAAAAuQ3lnX1NjaGVkdWxlcl9JbXBsZW1lbnRhdGlvbgAAAC5j
bGFzcyBDeWdfU2NoZWR1bGVyX0ltcGxlbWVudGF0aW9uAC5DeWdfU2NoZWRUaHJlYWRfSW1wbGVt
ZW50YXRpb24ALmNsYXNzIEN5Z19TY2hlZFRocmVhZF9JbXBsZW1lbnRhdGlvbgAAAC5DeWdfU2No
ZWRUaHJlYWQAAAAALmNsYXNzIEN5Z19TY2hlZFRocmVhZAAALkN5Z19IYXJkd2FyZVRocmVhZAAu
Y2xhc3MgQ3lnX0hhcmR3YXJlVGhyZWFkAAAALkN5Z19UaHJlYWQALmNsYXNzIEN5Z19UaHJlYWQA
AABDeWdfQ291bnRlcgBjbGFzcyBDeWdfQ291bnRlcgAAAEN5Z19BbGFybQAAAGNsYXNzIEN5Z19B
bGFybQBDeWdfRXhjZXB0aW9uX0NvbnRyb2wAAABjbGFzcyBDeWdfRXhjZXB0aW9uX0NvbnRyb2wA
Q3lnX1NjaGVkdWxlcl9JbXBsZW1lbnRhdGlvbgAAAABjbGFzcyBDeWdfU2NoZWR1bGVyX0ltcGxl
bWVudGF0aW9uAABDeWdfU2NoZWR1bGVyAAAAY2xhc3MgQ3lnX1NjaGVkdWxlcgBDeWdfVGhyZWFk
UXVldWVfSW1wbGVtZW50YXRpb24AAGNsYXNzIEN5Z19UaHJlYWRRdWV1ZV9JbXBsZW1lbnRhdGlv
bgAAAABDeWdfU2NoZWRUaHJlYWRfSW1wbGVtZW50YXRpb24AAGNsYXNzIEN5Z19TY2hlZFRocmVh
ZF9JbXBsZW1lbnRhdGlvbgAAAABDeWdfU2NoZWRUaHJlYWQAY2xhc3MgQ3lnX1NjaGVkVGhyZWFk
AAAAQ3lnX0hhcmR3YXJlVGhyZWFkAABjbGFzcyBDeWdfSGFyZHdhcmVUaHJlYWQAAAAAY2xhc3Mg
Q3lnX1RocmVhZAAAAABDeWdfVGhyZWFkAAAAADXIAAA3vAAAN+QAAAAAPHRocmVhZD4AAAAAbmFt
ZSAAAABUQVNLLlRIUgAAAAAlM2QuAAAAAFJVTk5JTkcAKCVkKQAAAABSRUFEWSAgICAgIABFWElU
RUQgICAgIABDUkVBVElORyAgIABTVVNQRU5ERUQgIABDT1VOVFNMRUVQIABTTEVFUElORyAgIAAo
JTJ4KSAgICAgICAAAAAARGF0YS5MaXN0ICV4AAAAACU4eCAAAAAATk9ORSAgICAAAAAAV0FJVCAg
ICAAAAAAREVMQVkgICAAAAAAVElNRU9VVCAAAAAAQlJFQUsgICAAAAAAREVTVFJVQ1QAAAAARVhJ
VCAgICAAAAAARE9ORSAgICAAAAAAKCU1ZC4pAABzdXNwIGNvdW50ICB3YWtlIGNvdW50ICB3YWl0
IGluZm8gIHNsZWVwIHJlYXNvbiAgd2FrZSByZWFzb24KAAAAJTVkLiAgICAgICU1ZC4gICAgICAA
AAAAJTh4ICAgAAAgICAgICAAAG11dGV4IGNvdW50ICAAAABwcmlvIGluaGVyaXRlZCAgcHJpbyBv
cmlnaW5hbAAAACU1ZC4gICAgICAgAEZBTFNFAAAAVFJVRSAAAAAoJTJ4KSAAACAgICAgICAgICAg
JTVkLgBzdGFjayBiYXNlICBzaXplICAgIAAAAABsaW1pdCAgICAgAABwdHIKAAAAAGQgJXgAAAAA
ICAlOHggIAByLnRhc2sgJXgAAAByLnRhc2sAAGN1cnJlbnQAQ3lnX1RocmVhZDo6ZXhjZXB0aW9u
X2NvbnRyb2wAAABleGNlcHRpb24gY29udHJvbDogAGxvY2FsAAAALmV4Y2VwdGlvbl9jb250cm9s
AABnbG9iYWwAAC5leGNlcHRpb25faGFuZGxlcgAALmV4Y2VwdGlvbl9kYXRhAGhhbmRsZXIgICBk
YXRhICAgICAgbGFiZWwKAABkLmwgJXgAAHRpbWVyOiAAdi52ICUlbSAlJWluIChDeWdfVGhyZWFk
VGltZXIqKSV4AAAALmVuYWJsZWQAAAAALmNvdW50ZXIAAAAALnRyaWdnZXIAAAAALmludGVydmFs
AAAALmFsYXJtAAAuZGF0YQAAAC5pbmNyZW1lbnQAAGVuYSAgIGNvdW50ZXIgIGluY3IgICAgIHRy
aWdnZXIgIGludGVydmFsIGhhbmRsZXIgIGRhdGEgICAgIGxhYmVsCgAARkFMU0UgAABUUlVFICAA
ACglMngpICAAZW50cnkgcHRyICAgZW50cnkgZGF0YSAgAAAAAGNvbnRleHQgICAgIAAAAAAgICAg
JTh4ICAgIABTb3JyeTogdGFzayBub3QgZm91bmQAAABtYWdpYyAgICAAAABpZCAgIAAAAHByaW8g
AAAAc3RhdGUgICAgIAAAZW50cnlwdHIgAAAAVEhSRUFEAABUSFIAVEhSZWFkAABAKD0pX19SVE9T
X0VDT1NfX1RBU0tfVEhSAAAA///dRP//3WD//91w///dgP//3ZD//92g///dsP//3cBNVEQgVmVy
c2lvbiAlcyAgJXMgICVzICAKCgAAICAgbWFnaWMgICAgICAgICAgICAlOHggIAAAAFNjaGVkdWxl
ciAgICAgICAgJTh4ICAAACAgICBsZW5ndGggICAgICAgICAgJTh4CgAAAAAgICAgcnVuIHF1ZXVl
IG9mZnMgICU4eAoAAAAAICAgIHJ1biBxdWV1ZSBjb3VudCAlOHgKAAAAAFRocmVhZCBMaXN0ICAg
ICAgJTh4ICAAACAgICB0aHJlYWQgbGVuZ3RoICAgJTh4CgAAAAAgICAgbGlzdCBuZXh0IG9mZnMg
ICU4eAoAAAAAICAgIGh3IHRociBvZmZzICAgICAlOHgKAAAAACAgICBlbnRyeSBvZmZzICAgICAg
JTh4CgAAAAAgICAgcHJpbyBvZmZzICAgICAgICU4eAoAAAAAICAgIGlkIG9mZnMgICAgICAgICAl
OHgKAAAAACAgICBuYW1lIG9mZnMgICAgICAgJTh4CgAAAABURVNUAAAAACAgIGFyZ3VtZW50ICAg
ICAgICAgdmFsdWUgICAgIHN5bWJvbAAAAABIQUxfU2F2ZWRSZWdpc3RlcnMuZAAAAABIQUxfU2F2
ZWRSZWdpc3RlcnMuZnAAAABIQUxfU2F2ZWRSZWdpc3RlcnMuaXAAAABIQUxfU2F2ZWRSZWdpc3Rl
cnMuc3AAAABIQUxfU2F2ZWRSZWdpc3RlcnMubHIAAABIQUxfU2F2ZWRSZWdpc3RlcnMuY3BzcgBI
QUxfU2F2ZWRSZWdpc3RlcnMudS5leGNlcHRpb24AAC5yNF9yMTEALnIwAEhBTF9TYXZlZFJlZ2lz
dGVycy51LnRocmVhZAAucgAALnBjAEhBTF9TYXZlZFJlZ2lzdGVycy51LmludGVycnVwdAAASEFM
X1NhdmVkUmVnaXN0ZXJzLnUAAAAAZ2V0Q29udGV4dCBtYWdpYyA9ICU4eAAAcjAAAHIxAAByMgAA
cjMAAHI0AAByNQAAcjYAAHI3AAByOAAAcjkAAHIxMAByMTIAcjE0AHBjAAB4cHNyAAAAAHBzcABy
OF91c3IAAHI5X3VzcgAAcjEwX3VzcgByMTFfdXNyAHIxMl91c3IAcjEzX3N2YwByMTRfc3ZjAGNw
c3IAAAAAaGFyZHdhcmV0aHJlYWQAREFUQQAAAAEAPAAAAAA1uAAAAgwAAAACAAAAAAAANMAAAAAA
AAAI5AAACVQAAAACAAAAAAAANMAAAAAAAAAAAgAAAAAAAAAAAAAH+AAANWQAADVwAAA1eAAANYQA
AAAkAAA1KAAANTQAADU8AAA1SAAAADAAADUMAAAAAwAAABcAAAAAAAA1GAAAC4AAADUAAAAGuAAA
NPQAAAboAAA06AAAB8wAADWgAAA1rAAANbQAAAAAAAA5eAAAOZgAAAAAAAA5vAAAOcwAAAAAAAA5
4AAAOgAAAAAAAAA4AAAAOCAAAAAAAAA6yAAAOtwAAAAAAAA4jAAAOKAAAAAAAAA6cAAAOoAAAAAA
AAA4RAAAOGQAAAAAAAA6KAAAOkgAAAAAAAA4uAAAOMwAAAAAAAA6mAAAOqwAAAAAAAA46AAAOPQA
AAAAAAA5CAAAORQAAAAAAAA5KAAAOTQAAAAAAAA5RAAAOVwAAAAAAAAAAgAAAAAAADTAAAAAAAAA
AAIAAAAAAAA+2AAAAAAAAAADFEEAAAAEAaQAAB04AAAAAwBBAAAABAGkAAAbVAAAPvAAAD78AAA/
BAAAPwwAAD8YAAAAAAAAAAAAAD8kAAA/LAAAPzAAAD84AAAVtAAAAAEAPAAAAABA/AAAJyQAAED0
AABA9AAAMyQAADMkAAAnDAAAQlQAAAAAAAAABAAAQlgAAAAAAAAABAAAQlwAAAAAAAAABAAAQmAA
AAAAAAAABAAAQmQAAAAAAAAABAAAQmgAAAAAAAAABAAAQmwAAAAAAAAABAAAQnAAAAAAAAAABAAA
QpgAAAAAAAAABAAAQqAAAAAAAAAABAAAQqgAAAAAAAAABAAAQrAAAAAAAAAABAAAQrgAAAAAAAAA
BAAAQsAAAAAAAAAABAAAQsgAAAAAAAAABAAAQogAAAAAAAAABAAAQtAAAAAAAAAABAAAAAAAAAAA
AAAAAAAAQmQAAAAAAAAABAAAQmgAAAAAAAAABAAAQmwAAAAAAAAABAAAQnAAAAAAAAAABAAAQnQA
AAAAAAAABAAAQngAAAAAAAAABAAAQnwAAAAAAAAABAAAQdgAAAAAAAAABAAAQlQAAAAAAAAABAAA
QlgAAAAAAAAABAAAQlwAAAAAAAAABAAAQmAAAAAAAAAABAAAQoAAAAAAAAAABAAAQoQAAAAAAAAA
BAAAQogAAAAAAAAABAAAQowAAAAAAAAABAAAQpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQlQAAAAA
AAAABAAAQlgAAAAAAAAABAAAQlwAAAAAAAAABAAAQmAAAAAAAAAABAAAQmQAAAAAAAAABAAAQmgA
AAAAAAAABAAAQmwAAAAAAAAABAAAQnAAAAAAAAAABAAAQnQAAAAAAAAABAAAQngAAAAAAAAABAAA
QnwAAAAAAAAABAAAQdgAAAAAAAAABAAAQoAAAAAAAAAABAAAQoQAAAAAAAAABAAAQogAAAAAAAAA
BAAAQowAAAAAAAAAAAAAQpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQtgAAAAAAAAAAAAAAAAAAAAA
AAAAAFQzMkU=
)
HELP.FILTER.Add rtosecos
RETURN
)
menu_32bit: ;(header, infix)
(
PMACRO.LOCK
(
PRIVATE &sHeader &sInfix &sMenuName
PARAMETERS &sHeader &sInfix
&sMenuName=TASK.TRANSPOSE.INFIX("&sHeader")
IF MENU.EXIST("TASK.&(sMenuName)")
MENU.Delete.NAME TASK.&(sMenuName)
IF MENU.EXIST("EXT.&(sMenuName)")
MENU.Delete.NAME EXT.&(sMenuName)
MENU.ReProgram
(&+
; --------------------------------------------------------------------------------
; @Title: Additional eCos Menues
; @Description: -
; @Author: DIE
; @Copyright: (c) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: ecos.m 7861 2022-07-29 13:45:42Z amerkle $
NAME "TASK.&sMenuName"
IF !MENU.EXIST("TASK.&sMenuName")
(
add
menu
(
popup "&sHeader"
(
if y.exist(T32OUT)
(
menuitem "&eCos Terminal" "TERM T32OUT T32IN"
separator
)
default
menuitem "Display &Threads" "TASK.&(sInfix)THRead"
menuitem "Display &Scheduler" "TASK.&(sInfix)SCHEDuler"
separator
popup "&Stack Coverage"
(
menuitem "List Stacks" "TASK.&(sInfix)STacK"
menuitem "Add Task to Cov" "TASK.&(sInfix)STacK.ADD"
menuitem "Remove Task from Cov" "TASK.&(sInfix)STacK.ReMove"
menuitem "Reset Coverage"
(
PRIVATE &yes
DIALOG.YESNO "Overwrite unused stack space" "with stack fill pattern?"
ENTRY &yes
IF !&yes
ENDDO
TASK.&(sInfix)STacK.Init
)
)
)
popup "Trace"
(
popup "[:alist]List"
(
separator
menuitem "&Task Switches" "Trace.List List.TASK"
menuitem "&Default and Tasks" "Trace.List List.TASK DEFault"
)
)
popup "Perf"
(
separator
popup "&Task Runtime"
(
menuitem "&Prepare"
(
if t.method.analyzer()
(
Analyzer.AutoInit on
)
Break.Delete /Alpha
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
)
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASK"
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASK"
menuitem "[:achart]Tracking with Trace &List"
(
Trace.List List.TASK DEFault /Track
Trace.CHART.TASK /Track
)
)
popup "&Task Function Runtime"
(
menuitem "&Prepare"
(
if t.method.analyzer()
(
Analyzer.AutoInit on
Analyzer.STATistic.PreFetch on
)
Break.Delete /Alpha /Beta /Charly
Break.SetFunc
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
)
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASKFUNC"
menuitem "[:perf]Show as &Tree" "Trace.STATistic.TASKTREE"
menuitem "[:perf]Show &Detailed Tree" "Trace.STATistic.TASKTREE ALL"
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASKFUNC"
menuitem "[:alist]Show N&esting" "Trace.List List.TASK FUNC TI.FUNC"
)
popup "Task &Status"
(
menuitem "&Prepare"
(
if t.method.analyzer()
(
Analyzer.AutoInit on
)
Break.Delete /Alpha
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
TASK.&(sInfix)TASKState
)
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASKSTATE"
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASKSTATE"
menuitem "[:achart]Tracking with Trace &List"
(
Trace.List List.TASK DEFault /Track
Trace.CHART.TASKSTATE /Track
)
)
)
popup "&Help"
(
menuitem "eCos RTOS Debugger Manual" "HELP __RTOS_ECOS_"
)
)
menu "task.&(sInfix)thr"
(
default
menuitem "Display Detailed"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.&(sInfix)THRead &nAddress
)
menuitem "Display Object"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
Var.View %m %in (Cyg_Thread*)&nAddress
)
if (task.&(sInfix)config(context)!=0)
(
menuitem "Display Stack Frame"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
Frame /Locals /Caller /TASK &nAddress
)
menuitem "Switch Context"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
Register.TASK &nAddress
)
)
separator
menuitem "Add to Stack Cov"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.&(sInfix)STacK.ADD &nAddress
)
menuitem "Rm from Stack Cov"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.&(sInfix)STacK.RM &nAddress
)
separator
menuitem "Dump thread entry"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress /Long /DIALOG
)
)
)
)
)
PMACRO.UNLOCK
RETURN
)
autoload_32bit: ;(options)
(
PARAMETERS &sOptions
RETURN
)
menu_delete: ;(header)
(
PRIVATE &sHeader &sMenuName
PARAMETERS &sHeader
&sMenuName=TASK.TRANSPOSE.INFIX("&sHeader")
IF MENU.EXIST("TASK.&(sMenuName)")
MENU.Delete.NAME TASK.&(sMenuName)
IF MENU.EXIST("EXT.&(sMenuName)")
MENU.Delete.NAME EXT.&(sMenuName)
RETURN
)
autoload_delete: ;(options)
(
PARAMETERS &sOptionMachine
RETURN
)