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

1031 lines
49 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." "embOS"
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="embOS"
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." "embOS" &nVariant
)
)
ELSE IF (&bExtLoad)
(
PRIVATE &sMachineName &sInfix &sOptionName &sOptionMachine
&sInfix=""
&sMachineName="embOS"
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." "embOS" &nVariant
)
)
ELSE IF (&bCleanup)
(
PRIVATE &sMachineName &sOptionMachine
&sMachineName="embOS"
IF ("&sName"!="")
(
&sMachineName="&(sName)"
)
IF ("&sMachine"!="")
(
&sOptionMachine="/MACHINE &sMachine"
)
IF STRing.SCAN(HELP.FILTER(),"rtosembos",0.)>=0.
HELP.FILTER.Delete rtosembos
GOSUB menu_delete "&sMachineName"
GOSUB autoload_delete "&sOptionMachine"
)
ENDDO
extension_32bit: ; (options)
(
PARAMETERS &sParameters &sOptions
EXTension.LOAD &sParameters &sOptions
(
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+gAAAAGAAAADQAA
AE4AACfSAAAH6AAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAABOCllbWJPUwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA
QWxwaGEgQnJlYWtwb2ludHMgc2V0IG9uICVkIHRhc2sgc3RhdGUgd29yZHMAAAAATVREIFZlcnNp
b24gICVzICAlcyAgJXMgIAoKAG1hZ2ljICAgICAgICAgICAgJTh4ICAAAApUYXNrIExpc3QgICAg
ICAgICU4eCAgAApUQ0IgTGVuZ3RoICAgICAgICU4eCAgAApUaW1lciBMaXN0ICAgICAgICU4eCAg
AApUaW1DQiBMZW5ndGggICAgICU4eCAgAApNQlhDQiBMZW5ndGggICAgICU4eCAgAC0tLSBUQVNL
ID0gJXgAAAAsIAAAIC0tLQAAAABPU19HbG9iYWwAAABPU19HTE9CQUwAAABzdHJ1Y3QgT1NfR0xP
QkFMX1NUUlVDVAAucEN1cnJlbnRUYXNrAAAALnBUYXNrAAAucFRpbWVyAC5wRXZlbnRSb290AC5w
TXV0ZXhSb290AC5wU2VtYVJvb3QAAC5wUldMb2NrUm9vdAAAAAAucE1haWxib3hSb290AAAALnBR
dWV1ZVJvb3QALnBPYmpOYW1lUm9vdAAAAE9TX3BDdXJyZW50VGFzawBPU19wVGFzawAAAABPU19U
QVNLAHN0cnVjdCBPU19UQVNLX1NUUlVDVAAAAC5wTmV4dAAALlByaW9yaXR5AAAALlN0YXQAAAAu
TmFtZQAAAC5zTmFtZQAALkV2ZW50cwAucFN0YWNrAC5TdGFja1NpemUAAC5wU3RhY2tCb3QAAC5w
U3RhY2tCYXNlAC5UaW1lb3V0AAAAAC5UaW1lU2xpY2VSZW0AAAAuVGltZVNsaWNlUmVsb2FkAAAA
AC5wV2FpdExpc3QAAE9TX3BUaW1lcgAAAE9TX1RJTUVSAAAAAHN0cnVjdCBPU190aW1lcgAuSG9v
awAAAC5wZlRpbWVyUm91dGluZQAuVGltZQAAAC5QZXJpb2QALkFjdGl2ZQBPU19FVkVOVAAAAAAu
U2lnbmFsZWQAAAAuTWFza01vZGUAAAAuUmVzZXRNb2RlAAAuV2FpdE9iagAAAABPU19NVVRFWAAA
AAAuVXNlQ250AE9TX3BSU2VtYQAAAE9TX1JTRU1BAAAAAHN0cnVjdCBPU19SU0VNQV9TVFJVQ1QA
AC5XYWl0Q250AAAAAE9TX3BDU2VtYQAAAE9TX0NTRU1BAAAAAHN0cnVjdCBPU19DU0VNQV9TVFJV
Q1QAAC5DbnQAAAAAT1NfUldMT0NLAAAALlNlbWFwaG9yZQAALk11dGV4AAAuTnVtUmVhZGVycwAu
SWQAT1NfcE1haWxib3gAT1NfTUFJTEJPWAAAc3RydWN0IE9TX01BSUxCT1hfU1RSVUNUAAAAAC5w
RGF0YQAALm5vZk1zZwAubWF4TXNnAC5pUmQAAAAALnNpemVvZk1zZwAALldhaXRDbnRORQAALldh
aXRDbnRORgAAT1NfcFFIZWFkAAAAT1NfUQAAAABPU19RVUVVRQAAAABzdHJ1Y3QgT1NfUV9TVFJV
Q1QAAC5TaXplAAAALk1zZ0NudAAuSW5Vc2UAAC5vZmZGaXJzdAAAAE9TX1dBSVRfTElTVAAAAABz
dHJ1Y3QgT1NfV0FJVF9MSVNUX1NUUlVDVAAALnBXYWl0T2JqAAAAT1NfT0JKTkFNRQAALnBPU09i
aklEAAAAT1NfU0VNQVBIT1JFAAAAACU4eAAlZC4gIAAAAFNvcnJ5OiBDb3VsZG4ndCBnZXQgc3lt
Ym9sIGFkZHJlc3NlcwAAAABfX1JUT1NfRU1CT1NfX0VYVF9BVAAAAABfX1JUT1NfRU1CT1NfX0VY
VF9BUwAAAABfX1JUT1NfRU1CT1NfX0VYVF9BTAAAAABURVNUAAAAAFRBU0tTVEFURQAAAFRBU0tT
AAAAVEFTS1N0YXRlAAAAYXJndW1lbnQgICAgICAgICB2YWx1ZSAgICAgc3ltYm9sAAAAPHRhc2s+
AABUQVNLLlRhc2tMaXN0ICV4AAAAAFRBU0suVEwAJTNkLgAAAAAgICUyeAAAAHJ1bm5pbmcgICAg
IAAAAAByZWFkeSAgICAgICAAAAAAd2FpdCBxdWV1ZSAgAAAAAHdhaXQgbWJ4LXAgIAAAAAB3YWl0
IHF1ZS1wICAAAAAAc3VzcGVuZGVkICAgAAAAAHRlcm1pbmF0ZWQgIAAAAAB3YWl0IHRpbWUgICAA
AAAAJWQuAHdhaXQgZXZlbnQgIAAAAAB3YWl0IG11dGV4ICAAAAAAd2FpdCBzZW1heiAgAAAAAHdh
aXQgc2VtYSAgIAAAAAB3YWl0IHNlbWFueiAAAAAAd2FpdCBtYnggICAgAAAAAHdhaXQgbWJuZiAg
IAAAAAA/Pz8gKCUyeCkgICAgAAAAdGltZW91dCAgIAAAdGltZSBzbGljZSByZW1haW5pbmcvcmVs
b2FkACU4eCAgAAAAJTJ4IC8gJTJ4AAAACgoAAHN0YWNrIHB0ciAgAHNpemUgICAgICAAAGJhc2UA
AAAARGF0YS5kdW1wICV4AAAAACU4eCAgIAAAUi5UQVNLICV4AAAAY29udGV4dABSLlRBU0sAAGN1
cnJlbnQAbWFnaWMgICAgAAAAbmFtZSAgICAgICAgICAgAHByaW8AAAAAZXZlbnRzAABzdGF0dXMg
AFRBU0tMSVNUAAAAAFRMAABUYXNrTGlzdAAAAABAKD0pX19SVE9TX0VNQk9TX19UQVNLX1RMAAAA
VmFyLlZpZXcgJSVPcGVuIChPU19USU1FUiopJXgAAABUQVNLLlRJTQAAAAAlNWQuAAAAAExpc3Qg
JXgAbmFtZSAgICAgICAgICAgICAAAAB0aW1lICAAAHBlcmlvZAAAYWN0aXZlAABob29rIAAAAFRJ
TUVSAAAAVElNAFRJTWVyAAAAQCg9KV9fUlRPU19FTUJPU19fVEFTS19USU0AADxldmVudD4ATWlz
bWF0Y2hpbmcgT1NfRVZFTlRfU1RSVUNUIGRlZmluaXRpb25zICglZC8lZCkhIENoZWNrIHNZbWJv
bC5MaXN0LlRZUEUhAAAAAGFuZABvcgAAYXV0bwAAAABtYW51YWwAAHNlbWkAAAAAVmFyLlZpZXcg
JSVPcGVuIChPU19FVkVOVCopJXgAAABUQVNLLkVWVAAAAABzaWduYWwgICAAAABtYXNrAAAAAHJl
c2V0IAAAd2FpdGluZyAAAAAARVZFTlQAAABFVlQARVZlblQAAABAKD0pX19SVE9TX0VNQk9TX19U
QVNLX0VWVAAAPG11dGV4PgBWYXIuVmlldyAlJU9wZW4gKE9TX01VVEVYKikleAAAAFRBU0suTVRY
AAAAACAlZC4AAAAAdXNlY250AABvd25lciAgICAgIABNVVRFWAAAAE1UWABNdVRlWAAAAEAoPSlf
X1JUT1NfRU1CT1NfX1RBU0tfTVRYAAA8c2VtYT4AAFZhci5WaWV3ICUlT3BlbiAoT1NfU0VNQVBI
T1JFKikleAAAAFRBU0suU0VNQQAAAGNvdW50AAAAU0VNQVBIT1JFAAAAU0VNQXBob3JlAAAAQCg9
KV9fUlRPU19FTUJPU19fVEFTS19TRU1BADxyc2VtYT4AVmFyLlZpZXcgJSVPcGVuIChPU19SU0VN
QSopJXgAAABUQVNLLlJTAD8AAAAlOHggAAAAAD45OS4AAAAAc3ltYm9sICAgICAgICAgICAAAAB1
c2UgAAAAAHdhaXQAAAAAb3duZXIgAABQbGVhc2Ugc3BlY2lmeSBhIHJzZW1hIChzeW1ib2wgb3Ig
YWRkcmVzcykAAFJTRU1BAAAAUlMAAEAoPSlfX1JUT1NfRU1CT1NfX1RBU0tfUlMAAAA8Y3NlbWE+
AFZhci5WaWV3ICUlT3BlbiAoT1NfQ1NFTUEqKSV4AAAAVEFTSy5DUwBQbGVhc2Ugc3BlY2lmeSBh
IGNzZW1hIChzeW1ib2wgb3IgYWRkcmVzcykAAENTRU1BAAAAQ1MAAEAoPSlfX1JUT1NfRU1CT1Nf
X1RBU0tfQ1MAAAA8cndsb2NrPgAAAABWYXIuVmlldyAlJU9wZW4gKE9TX1JXTE9DSyopJXgAAFRB
U0suUldMAAAAAHc6IABudW0tcgAAAGF2YWlsAAAAUldMT0NLAABSV0wAUldMb2NrAABAKD0pX19S
VE9TX0VNQk9TX19UQVNLX1JXTAAAPG1haWxib3g+AAAAVEFTSy5NYWlsQm94ICV4AFRBU0suTUIA
bmU6ICUzZC4gbmY6ICUzZC4gIABidWZmZXI6IAAAAABtZXNzYWdlcyBpbiBtYWlsYm94OgoAAABt
ZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNjaWkK
AAAlMnggAAAAAC4uLiAAAAAAI21zZ3MgAABtYXggICAAAHNpemUgAAAAUGxlYXNlIHNwZWNpZnkg
YSBtYWlsYm94IChzeW1ib2wgb3IgYWRkcmVzcykAAAAATUFJTEJPWABNQgAATWFpbEJveABAKD0p
X19SVE9TX0VNQk9TX19UQVNLX01CAAAAPHF1ZXVlPgB5ZXMAbm8AAFRBU0suUXVldWUgJXgAAABU
QVNLLlEAACVzAABzaXplICAAAGludXNlAAAAUGxlYXNlIHNwZWNpZnkgYSBxdWV1ZSAoc3ltYm9s
IG9yIGFkZHJlc3MpAABRVUVVRQAAAFEAAABRdWV1ZQAAAEAoPSlfX1JUT1NfRU1CT1NfX1RBU0tf
UQAAAABnZXRBcm1Db250ZXh0OiBtYWdpYz0lOHgsIHNwPSU4eAAAAABnZXRBcm1Db250ZXh0OiBj
cHU9JXMAAABDT1JURVhNAGdldEFybUNvbnRleHQ6IHBzcj0lcwAAAE9TX1JFR1MALlBDAE9TX1JF
R1NfQkFTRQAAAAAuUjQALlIxNAAAAAAuWFBTUgAAAGdldEFybUNvbnRleHQ6IGN0eHNpemU9JTh4
LCBwYz0lOHgAAC5PU19SRUdfUjQAAC5PU19SRUdfUjE0AC5PU19SRUdfUEMAAC5PU19SRUdfWFBT
UgAAAABPU19Td2l0Y2gAAABwYwAAcHNwAHIxNAB4cHNyAAAAAHI0AAByNQAAcjYAAHI3AAByOAAA
cjkAAHIxMAByMTEAcjEzX3VzcgByMTRfdXNyAGNwc3IAAAAAcjhfdXNyAAByOV91c3IAAHIxMF91
c3IAcjExX3VzcgBoYXJkd2FyZXRocmVhZAAAbWFnaWMAAABtYWdpY3NpemUAAAB1bmtub3duIHRv
cGljAAAAVEFTSy5DT05GSUcAX19SVE9TX1FOWF9fRlVOQwAAAABFVkVOVExJU1QAAABNVVRFWExJ
U1QAAABSU0VNQUxJU1QAAABDU0VNQUxJU1QAAABTRU1BUEhPUkVMSVNUAAAAUldMT0NLTElTVAAA
TUFJTEJPWExJU1QAUVVFVUVMSVNUAAAAVEFTSy5BVkFJTAAAX19SVE9TX0VNQk9TX19FWFRfRlVO
QwAAZW1iT1MAAABBUk0AREFUQQAAVFgAAFRkAABUbAAAVOwAAAAkAABUUAAAVFAAAFTsAABU7AAA
ADAAAFQ4AAATwAAAVCAAABPsAABUCAAAFEAAAAACAAAAAAAAU+AAAAAAAAAAAgAAAAAAAAAAAAAA
PAAAAAEAPAAAAABUeAAAAQQAAAHwAAACTAAAAAIAAAAAAABT4AAAAAAAAAADCVAAAAAEALwAAB0c
AAAAAwBQAAAABAC8AAAf6AAAVqQAAFawAABWtAAAVsAAABiMAABWcAAAVnwAAFaMAABWlAAAVpwA
AAAAAAAAAwBQAAAABAEIAAAg5AAAAAIAAAAAAABT4AAAAAAAAFdMAABXVAAAV1gAAFdgAAAglAAA
VnAAAFcYAABXLAAAVzQAAFc8AABXRAAAAAAAAAACAAAAAAAAU+AAAAAAAAAAAwBQAAAABAFoAAAl
qAAAAAMCUAAAAAQBaAAAJYAAAFhEAABYTAAAWFAAAFhYAAAjAAAAVnAAAFcYAABYHAAAWCgAAFgw
AABYOAAAAAAAAAADAFAAAAAEAcgAACgAAAAAAgAAAAAAAFPgAAAAAAAAAAMCUAAAAAQByAAAJ9gA
AFjEAABYzAAAWNAAAFjYAAAmNAAAVnAAAFcYAABYsAAAWLgAAFg4AAAAAAAAAAIAAAAAAABT4AAA
AAAAAAADAFAAAAAEAiQAACoYAAAAAwJQAAAABAIkAAAp8AAAWTQAAFJMAABZQAAAWUwAACiMAABW
cAAAVxgAAFksAABYOAAAAAAAAAACAAAAAAAAU+AAAAAAAAAAAwA8AAAABAKMAAAtEAAAAAMCPAAA
AAQCjAAALcwAAAACAAAAAAAAWdgAAAAAAABaBAAAWgwAAFIEAABaEAAAKqQAAFZwAABZrAAAWcAA
AFnIAABZ0AAAAAAAAAACAAAAAAAAU+AAAAAAAAAAAwAyAAAABAL4AAAweAAAAAMCMgAAAAQC+AAA
MTQAAAACAAAAAAAAWlwAAAAAAABaiAAAWpAAAFJAAABalAAALoAAAFZwAABZrAAAWcAAAFnIAAAA
AAAAAAIAAAAAAABT4AAAAAAAAAADAFAAAAAEA1AAADRAAAAAAwJQAAAABANQAAA0GAAAWvwAAFsE
AABbCAAAWxAAADHoAABWcAAAVxgAAFrsAABa9AAAWDgAAAAAAAAAAgAAAAAAAFPgAAAAAAAAAAMA
UAAAAAQDvAAANtwAAAADAFAAAAAEA7wAADc8AAAAAgAAAAAAAFvsAAAAAAAAXBwAAFwkAABcKAAA
XDAAADTMAABWcAAAVxgAAFvUAABb3AAAW+QAAFg4AAAAAAAAAAIAAAAAAABT4AAAAAAAAAADAFAA
AAAEBCwAADxAAAAAAwBQAAAABAQsAAA8oAAAAAIAAAAAAABciAAAAAAAAFy0AABcvAAAXMAAAFzI
AAA6dAAAVnAAAFmsAABceAAAWSwAAFyAAABYOAAAAAAAAF3UAAAAAAAAAAQAAF4IAAAAAAAAAAAA
AF4QAAAAAAAAAAQAAF4YAAAAAAAAAAQAAF3oAAAAAAAAAAQAAF3sAAAAAAAAAAQAAF3wAAAAAAAA
AAQAAF30AAAAAAAAAAQAAF4gAAAAAAAAAAQAAF4oAAAAAAAAAAQAAF4wAAAAAAAAAAQAAF44AAAA
AAAAAAQAAAAAAAAAAAAAAAAAAF3UAAAAAAAAAAQAAF3YAAAAAAAAAAAAAF3cAAAAAAAAAAQAAF3g
AAAAAAAAAAQAAF3oAAAAAAAAAAQAAF3sAAAAAAAAAAQAAF3wAAAAAAAAAAQAAF30AAAAAAAAAAQA
AF34AAAAAAAAAAQAAF38AAAAAAAAAAQAAF4AAAAAAAAAAAQAAF4EAAAAAAAAAAQAAAAAAAAAAAAA
AAAAAF5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF50AAAAAwAAABcAAAAAAABegAAARPgAAF74AAAA
AwAAABcAAAAAAABfBAAARaAAAFTsAABfHAAAXyQAAAAAVDMyRQ==
)
HELP.FILTER.Add rtosembos
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: embOS specific menu
; @Description: -
; @Author: DIE
; @Copyright: (c) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: embos.m 9390 2023-08-21 14:18:18Z rdienstbeck $
NAME "TASK.&sMenuName"
IF !MENU.EXIST("TASK.&sMenuName")
(
add
menu
(
popup "&sHeader"
(
default
menuitem "Display Tasks" "TASK.&(sInfix)TaskList"
menuitem "Display Timers" "TASK.&(sInfix)TIMer"
IF TASK.AVAIL(EVENT)!=0
(
menuitem "Display Events"
(
if TASK.AVAIL(EVENTLIST)!=0
TASK.&(sInfix)EVenT
else
sYmbol.Browse *event* /Click "Task.&(sInfix)EVenT *" /Delete
)
)
IF TASK.AVAIL(MUTEXLIST)!=0
(
menuitem "Display Mutexes" "TASK.&(sInfix)MuTeX"
)
IF TASK.AVAIL(RSEMA)!=0
(
menuitem "Display RSemas"
(
if TASK.AVAIL(RSEMALIST)!=0
TASK.&(sInfix)RSema
else
sYmbol.Browse *rsema* /Click "Task.&(sInfix)RSema *" /Delete
)
)
IF TASK.AVAIL(CSEMA)!=0
(
menuitem "Display CSemas"
(
if TASK.AVAIL(CSEMALIST)!=0
TASK.&(sInfix)CSema
else
sYmbol.Browse *csema* /Click "Task.&(sInfix)CSema *" /Delete
)
)
IF TASK.AVAIL(SEMAPHORE)!=0
(
menuitem "Display Semaphores"
(
if TASK.AVAIL(SEMAPHORELIST)!=0
TASK.&(sInfix)SEMAphore
else
sYmbol.Browse *sema* /Click "Task.&(sInfix)SEMAphore *" /Delete
)
)
IF TASK.AVAIL(RWLOCK)!=0
(
menuitem "Display RW Locks"
(
if TASK.AVAIL(RWLOCKLIST)!=0
TASK.&(sInfix)RWLock
else
sYmbol.Browse *rwl* /Click "Task.&(sInfix)RWLock *" /Delete
)
)
menuitem "Display &Mailbox"
(
if TASK.AVAIL(MAILBOXLIST)!=0
TASK.&(sInfix)MailBox
else
sYmbol.Browse *mailbox* /Click "Task.&(sInfix)MailBox *" /Delete
)
IF TASK.AVAIL(QUEUE)!=0
(
menuitem "Display Queues"
(
if TASK.AVAIL(QUEUELIST)!=0
TASK.&(sInfix)Queue
else
sYmbol.Browse *queue* /Click "Task.&(sInfix)Queue *" /Delete
)
)
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 "&List"
(
separator
menuitem "&Task Switches" "Trace.List List.TASK"
menuitem "Default and Tasks" "Trace.List List.TASK def"
)
)
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 /PreFetch
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 "embOS RTOS Debugger Manual" "HELP __RTOS_EMBOS_"
)
)
menu "task.&(sInfix)tl"
(
default
menuitem "Display Detailed"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.&(sInfix)TaskList &nAddress
)
menuitem "Display TCB"
(
PRIVATE &nAddress
&nAddress=address.offset(track.address())
Var.View %Open %String (OS_TASK *)&nAddress
)
separator
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 Task Entry"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress /Long /DIALOG
)
)
menu "task.&(sInfix)tim"
(
default
;menuitem "Display Detailed"
;(
; PRIVATE &nAddress
; &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
; TASK.&(sInfix)TIMER &nAddress
;)
menuitem "Display Timer Struct"
(
PRIVATE &nAddress
&nAddress=address.offset(track.address())
Var.View %Open %String (OS_TIMER *)&nAddress
)
menuitem "Dump Timer Entry"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress /Long /DIALOG
)
)
menu "task.&(sInfix)evt"
(
default
;menuitem "Display Detailed"
;(
; PRIVATE &nAddress
; &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
; TASK.&(sInfix)EVenT &nAddress
;)
menuitem "Display Event Struct"
(
PRIVATE &nAddress
&nAddress=address.offset(track.address())
Var.View %Open %String (OS_EVENT *)&nAddress
)
menuitem "Dump Event Entry"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress /Long /DIALOG
)
)
menu "task.&(sInfix)mtx"
(
default
;menuitem "Display Detailed"
;(
; PRIVATE &nAddress
; &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
; TASK.&(sInfix)MuTeX &nAddress
;)
menuitem "Display Mutex Struct"
(
PRIVATE &nAddress
&nAddress=address.offset(track.address())
Var.View %Open %String (OS_MUTEX *)&nAddress
)
menuitem "Dump Mutex Entry"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress /Long /DIALOG
)
)
menu "task.&(sInfix)sema"
(
default
;menuitem "Display Detailed"
;(
; PRIVATE &nAddress
; &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
; TASK.&(sInfix)SEMAphore &nAddress
;)
menuitem "Display Semaphore Struct"
(
PRIVATE &nAddress
&nAddress=address.offset(track.address())
Var.View %Open %String (OS_SEMAPHORE *)&nAddress
)
menuitem "Dump Semaphore Entry"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress /Long /DIALOG
)
)
menu "task.&(sInfix)rwl"
(
default
;menuitem "Display Detailed"
;(
; PRIVATE &nAddress
; &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
; TASK.&(sInfix)RWLock &nAddress
;)
menuitem "Display RW Lock Struct"
(
PRIVATE &nAddress
&nAddress=address.offset(track.address())
Var.View %Open %String (OS_RWLOCK *)&nAddress
)
menuitem "Dump RW Lock Entry"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress /Long /DIALOG
)
)
menu "task.&(sInfix)mb"
(
default
menuitem "Display Detailed"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.&(sInfix)MailBox &nAddress
)
menuitem "Display Mailbox Struct"
(
PRIVATE &nAddress
&nAddress=address.offset(track.address())
Var.View %Open %String (OS_MAILBOX *)&nAddress
)
menuitem "Dump Mailbox Entry"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress /Long /DIALOG
)
)
menu "task.&(sInfix)q"
(
default
menuitem "Display Detailed"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.&(sInfix)Queue &nAddress
)
menuitem "Display Queue Struct"
(
PRIVATE &nAddress
&nAddress=address.offset(track.address())
Var.View %Open %String (OS_QUEUE *)&nAddress
)
menuitem "Dump Queue 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
)