;@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 )