⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t32.men

📁 arm的仿真软件
💻 MEN
📖 第 1 页 / 共 4 页
字号:
           &bpused="BetaBreak"
         if dialog.boolean(b.cb)
           &bpused="CharlyBreak"

         &addr=dialog.string(addr)
         if "&addr"!=""
         (
           if dialog.boolean(hll)
             &addr="v.range(""&addr"")"
           else if dialog.boolean(range)
             &addr="y.range(""&addr"")"
           &addrdecl="addr &bpused &addr"

           if  FIRE()&&CPU()=="M68372"
           (
               if  P:FASBASE.ADDRESS()!=P:0x0ffffffff
               (
                   if   (P:FASBASE.ADDRESS()<=P:(&addr))&&(P:(&addr)<=(P:FASBASE.ADDRESS()+0x7fff))
                        &VBus="YES"
                   else if (P:(&addr)<P:FASBASE.ADDRESS())||(P:FASBASE.ADDRESS()+0x7fff)<P:(&addr)
                        &VBus="NO"
                   else ; not only VBUS or XBUS address area
                   (
                        beep 5.
                        print "address range error: address overlaps XBUS and VBUS : &addr"
                        enddo
                   )
               )
           )
         )

         if dialog.boolean(a.read)
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS&&VRead"
            else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS&&Read"
            else
		 &trigger="&bpused&&Read"
         )
         else if dialog.boolean(a.write)
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS&&VWrite"
            else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS&&Write"
            else
		 &trigger="&bpused&&Write"
         )
         else
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS"
 	    else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS"
            else
		 &trigger="&bpused"
         )
         if dialog.boolean(Ohll)
         (
           &addrdecl=""
           &trigger="AlphaBreak"
           Break.Delete  /Alpha
           Break.SetLine /Alpha /NPreFetch
         )

         Analyzer.ReProgram
         (
           &addrdecl
           Sample.Enable if &trigger
         )
         print "Analyzer programmed."
       )
       )
       if a.config.hac()
       (
;         currently not supported from HAC
          dialog.disable b.cb
       )
       dialog.set b.ab
       dialog.set a.any

      )
;     -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
     menuitem "&Trace around / Trigger..."
     (
       dialog
       (
       header "Trace around or Trigger"
       pos 0x1 0x1 32.
addr:  defedit "" ""
       pos 34. 1. 7.
       button "Browse..."
       (
         local &wildcard
         &wildcard=dialog.string(addr)
         if "&wildcard"==""
           &wildcard="*"
         if !string.find("&wildcard","*?")
           &wildcard="*&wildcard*"
         symbol.browse &wildcard /c "dialog.set addr ""*""" /d
       )

       pos 0. 0. 42. 3.25
       box "Address / Expression"

       pos 43. 0.75 8. 1.

hllp:  checkbox "HLL"
       (
               if dialog.boolean(hllp)
                       dialog.disable rangep
               else
                       dialog.enable rangep
       )

rangep: checkbox "Range"
       (
               if dialog.boolean(rangep)
                       dialog.disable hllp
               else
                       dialog.enable hllp
       )

       pos 1. 3.5 11. 1.
b.ab:     choosebox "Alpha"           ""
b.bb:     choosebox "Beta"            ""
b.cb:     choosebox "Charly"          ""

       pos 13. 3.5 11. 1.
a.any:    choosebox "Any"             ""
a.read:   choosebox "Read"            ""
a.write:  choosebox "Write"           ""

       pos 25. 3.5 11. 1.
d.pre:    choosebox "Trace Before"    ""
d.center: choosebox "Center"          ""
d.post:   choosebox "Trace After"     ""

       pos 38. 3.5 12. 1.
t.break:  choosebox "Break Analyzer"  ""
t.trigg:  choosebox "Break Program"   ""


hllrec:   checkbox "only HLL Lines" 
          (
               if dialog.boolean(hllrec)
                       dialog.disable b.cb
               else
                       dialog.enable  b.cb
          )

       pos 1. 7.5  9.
       defbutton "Ok"
       (
	 dialog.execute apply
         dialog.end
       )

       pos 25. 7.5  9.
       button "Cancel" "dialog.end"

       pos 13. 7.5 9.
apply: button "Apply"
       (
         local &addr &addrdecl &bpused &trigger &tdelay &breakarg &tracetrigger
         local &VBus

         on error jumpto
         (
           beep 5.
           print "Input error, please check syntax"
           enddo
         )

         &addrdecl=""
         &VBus=""
         if dialog.boolean(hllrec)
         (
               if dialog.boolean(b.cb)
                       dialog.set b.bb
         )
         &bpused="AlphaBreak"
         if dialog.boolean(b.bb)
           &bpused="BetaBreak"
         if dialog.boolean(b.cb)
           &bpused="CharlyBreak"

         &addr=dialog.string(addr)
         if "&addr"!=""
         (
           if dialog.boolean(hllp)
             &addr="v.range(""&addr"")"
           else if dialog.boolean(rangep)
             &addr="y.range(""&addr"")"
           &addrdecl="addr &bpused &addr"

           if  FIRE()&&CPU()=="M68372"
           (
               if  P:FASBASE.ADDRESS()!=P:0x0ffffffff
               (
                   if   (P:FASBASE.ADDRESS()<=P:(&addr))&&(P:(&addr)<=(P:FASBASE.ADDRESS()+0x7fff))
                        &VBus="YES"
                   else if (P:(&addr)<P:FASBASE.ADDRESS())||(P:FASBASE.ADDRESS()+0x7fff)<P:(&addr)
                        &VBus="NO"
                   else ; not only VBUS or XBUS address area
                   (
                        beep 5.
                        print "address range error: address overlaps XBUS and VBUS : &addr"
                        enddo
                   )
               )
           )
         )

         if dialog.boolean(a.read)
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS&&VRead"
            else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS&&Read"
            else
		 &trigger="&bpused&&Read"
         )
         else if dialog.boolean(a.write)
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS&&VWrite"
            else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS&&Write"
            else
		 &trigger="&bpused&&Write"
         )
         else
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS"
            else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS"
            else
		 &trigger="&bpused"
         )

         if dialog.boolean(d.pre)
           &tdelay="10."
         else if dialog.boolean(d.center)
           &tdelay=a.size()/2.
         else
           &tdelay=a.size()-30.

         if   FIRE()
         (
              if dialog.boolean(t.break)
                 &breakarg="BREAK.TRACE   IF tdelay"
              else
                 &breakarg="BREAK.PROGRAM IF tdelay"
         )            
         else
         (
              if dialog.boolean(t.break)
                 &breakarg="BREAK         IF tdelay"
              else
                 &breakarg="TRIGGER.A     IF tdelay"
         )
         &tracetrigger="TRUE"

         if dialog.boolean(hllrec)
         (
            Break.Delete /Charly
            Break.SetLine /Charly /NPreFetch
            &tracetrigger="CharlyBreak"
         )

	 Analyzer.ReProgram
         (
                  &addrdecl
                  event tdelay &tdelay

                start:
                              Sample.Enable
                              Mark.A         IF &trigger
                              CONTinue       IF &trigger
                occured:
                              Sample.Enable
                              Count.Enable tdelay
                              &breakarg
         )

         print "Analyzer programmed."
       )
       )
       dialog.set b.ab
       dialog.set a.any
       dialog.set d.center
       dialog.set t.break
       if a.config.hac()
       (
;         currently not supported from HAC
          dialog.disable b.bb
          dialog.disable b.cb
          dialog.disable hllrec
       )

      )
;     -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
      menuitem "Multiple trace after..."
      (
         dialog
         (
            header "Multiple trace after "
            pos 0x1 0x1 30.
addr:       defedit "" ""
            pos 32. 1. 7.
            button "Browse..."
            (
               local &wildcard
               &wildcard=dialog.string(addr)
               if "&wildcard"==""
                  &wildcard="*"
               if !string.find("&wildcard","*?")
                  &wildcard="*&wildcard*"
               symbol.browse &wildcard /c "dialog.set addr ""`*`""" /d
            )
 
            pos 0. 0. 40. 3.
            box "Address / Expression"

            pos 42. 0.5 8. 1.

hllp:       checkbox "HLL"
            (
               if dialog.boolean(hllp)
                       dialog.disable rangep
               else
                       dialog.enable rangep
            )

rangep:     checkbox "Range"
            (
               if dialog.boolean(rangep)
                       dialog.disable hllp
               else
                       dialog.enable hllp
            )

            pos 1. 3.5 11. 1.
b.ab:       choosebox "Alpha"  ""
b.bb:       choosebox "Beta"   ""
b.cb:       choosebox "Charly" ""

            pos 13. 3.5 11. 1.
a.any:      choosebox "Any" ""
a.read:     choosebox "Read" ""
a.write:    choosebox "Write" ""

            pos 25. 3.5 11. 1.
            text "Cycles to trace:"
delay:      edit "10." ""
            pos 25. 5.5 12. 1.
hllrec:     checkbox "only HLL Lines" 
             (
               if dialog.boolean(hllrec)
                       dialog.disable b.cb
               else
                       dialog.enable b.cb
             )

       pos 1. 7.5  9.
       defbutton "Ok"
       (
	 dialog.execute apply
         dialog.end
       )

       pos 25. 7.5  9.
       button "Cancel" "dialog.end"

       pos 13. 7.5 9.
apply: button "Apply"
            (
               local &addr &addrdecl &bpused &trigger &tdelay &tracetrigger
               local &VBus

               on error jumpto
               (
                  beep 5.
                  print "Input error, please check syntax"
                  enddo
               )

               &addrdecl=""
               &VBus=""

               if dialog.boolean(hllrec)
               (

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -