OSDN Git Service

add mbed.html
[mimic/MiMicSDK.git] / misc / mbedJS / mbed.html / memDump.html
diff --git a/misc/mbedJS/mbed.html/memDump.html b/misc/mbedJS/mbed.html/memDump.html
new file mode 100644 (file)
index 0000000..d127813
--- /dev/null
@@ -0,0 +1,274 @@
+<html>\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
+<script src="./slib.js"></script>\r
+<link href="./mimic.css" rel="stylesheet" type="text/css" />\r
+<link rel="stylesheet" href="./c/codemirror-mini.css">\r
+<script src="./m/MiMicCore-mini.js"></script>\r
+<script src="./m/MbedM3.All-mini.js"></script>\r
+<script src="./c/codemirror-mini.js"></script>\r
+\r
+<style id="user-style-nyatla-bg-img">\r
+       body{\r
+               width:95%;\r
+               height:95%;\r
+       }\r
+       textarea {\r
+               font:inherit;\r
+               min-width:100%;\r
+               max-width:100%;\r
+               overflow-y:auto;\r
+               resize:none;\r
+       }\r
+       hr{\r
+               height:1px;\r
+               color:black;\r
+       }\r
+       #src{\r
+               height:320px;\r
+               background-color:#ffffff;\r
+               border:solid 1px;\r
+       }\r
+       button{\r
+               font-weight:bold;\r
+               text-align:center;\r
+               font-size:12px;\r
+               padding:0px;\r
+       }\r
+       #menu2_dump{\r
+               width:50px;height:40px;\r
+       }\r
+       #connect_menu_address{\r
+               border:solid 1px #aaaaaa;\r
+               width:200px;\r
+       }\r
+       .tag{\r
+               background-color:#4169E1;\r
+               color:white;\r
+               font-weight:bold;\r
+               padding:0px 1px 1px 3px;\r
+       }\r
+       input{\r
+               background-color:white;\r
+               color:black;\r
+               border:solid 1px #aaaaaa;\r
+       }\r
+       .td1{\r
+               background-color:#4169E1;\r
+               color:white;\r
+               font-weight:bold;\r
+               font-weight:bold;\r
+               font-size:12px;\r
+               width:120px;\r
+       }\r
+</style>\r
+<script type="text/javascript">\r
+\r
+var app;\r
+function getElem(id){return document.getElementById(id);}\r
+\r
+var Mui=new Object();\r
+\r
+\r
+Mui.ConnectionCtrl=function(id)\r
+{\r
+       var _t=this;\r
+       //member variables\r
+       _t._tags={\r
+               input:getElem(id+"_address")\r
+       };\r
+       //initialize\r
+       _t.getAddressText=function(){\r
+               return _t._tags.input.value;\r
+       }\r
+       _t.setAddressText=function(v){\r
+               _t._tags.input.value=v;\r
+       }\r
+}\r
+\r
+\r
+Mui.CodeEditor=function(id)\r
+{\r
+       var _t=this;\r
+       _t._tags={text:getElem(id)};\r
+       _t._cm=CodeMirror.fromTextArea(_t._tags.text,{\r
+               mode: "text/plain",\r
+               styleActiveLine: true,\r
+               lineNumbers: true,\r
+               lineWrapping:true,\r
+               readOnly:true});\r
+       _t.selectall=function(){\r
+               var e=this._cm;\r
+               e.setSelection({line:0,ch:0},{line:e.lineCount(),ch:0});\r
+       }\r
+       _t.getText=function(){\r
+               return this._cm.getValue();\r
+       }\r
+       _t.setText=function(v){\r
+               this._cm.setValue(v);\r
+       }\r
+}\r
+\r
+Mui.Command=function(id)\r
+{\r
+       var _t=this;\r
+       _t.CM_DUMP =1;\r
+       _t._tags={\r
+               dump:getElem(id+"_dump"),\r
+       }\r
+       _t.events={\r
+               onCommand:null\r
+       }\r
+       _t._tags.dump.onclick=function(){_t._onCommand(_t.CM_DUMP);};\r
+       _t._onCommand=function(eid){\r
+               if(_t.events.onCommand!=null){\r
+                       _t.events.onCommand(eid);\r
+               }\r
+       }\r
+       _t._tags.dump.disabled=false;\r
+       _t.setEnabled=function(b)\r
+       {\r
+               _t._tags.dump.disabled=!b;\r
+       }\r
+}\r
+\r
+function Application()\r
+{\r
+       var _t=this;\r
+       //initialization\r
+       var ui={\r
+               connect:new Mui.ConnectionCtrl("connect_menu"),\r
+               source:new Mui.CodeEditor("src"),\r
+               cmd:new Mui.Command("menu2")\r
+       }\r
+       _t.VERSION="1.0.0"\r
+       _t.ui=ui;\r
+       ui.connect.setAddressText(location.host);\r
+       \r
+       var mif=null;\r
+       ui.cmd.events.onCommand=function(id)\r
+       {\r
+               function getInt(a)\r
+               {\r
+                       var b=slib.strtrim(a);\r
+                       //\8f\91\8e®\83`\83F\83b\83N\r
+                       if(!b.match(/^0x[0-9a-f]+$|^[0-9]+$/i)){\r
+                               return false;\r
+                       }\r
+                       var n=parseInt(b);\r
+                       if(isNaN(n))\r
+                       {\r
+                               return false;\r
+                       }\r
+                       return n;\r
+               }\r
+               function dump(ad,bs,cb)\r
+               {\r
+                       var v=\r
+                       "Memory dump result:\nstart address: 0x"+MiMicLib.hexout(ad,8)+" "+bs+"blocks("+(bs*4)+"byte)\n"+\r
+                       "----------\n";\r
+                       var i=bs,mcu,ma;\r
+                       var SB=16;\r
+                       function loop()\r
+                       {\r
+                               try{\r
+                                       if(i%SB!=0){\r
+                                               var rd=ma.read32(ad,bs%SB*4);\r
+                                               for(var i2=0;i2<bs%SB;i2++,ad+=4){\r
+                                                       v+="0x"+MiMicLib.hexout(ad,8)+": 0x"+MiMicLib.hexout(rd[i2],8)+"\n"\r
+                                               }\r
+                                               i-=bs%SB;\r
+                                       }else{\r
+                                               var rd=ma.read32(ad,SB*4);\r
+                                               for(var i2=0;i2<SB;i2++,ad+=4){\r
+                                                       v+="0x"+MiMicLib.hexout(ad,8)+": 0x"+MiMicLib.hexout(rd[i2],8)+"\n"\r
+                                               }\r
+                                               i-=SB;\r
+                                       }\r
+                                       if(i>0){\r
+                                               ui.source.setText("Reading Memory...\n"+((bs-i)*4)+"/"+(bs*4)+"byte");\r
+                                               setTimeout(loop,0);\r
+                                       }else{\r
+                                               mcu.deactivate();\r
+                                               ui.source.setText(v);\r
+                                               cb();\r
+                                       }\r
+                               }catch(e){\r
+                                       mcu.deactivate();\r
+                                       alert("An error occurred while retrieving memory.\n"+e);\r
+                                       ui.source.setText("ERROR.");\r
+                               }\r
+                       }\r
+                       try{\r
+                               mcu=new MbedM3.Mcu(ui.connect.getAddressText());\r
+                               try{\r
+                                       ma=new MbedM3.Memory(mcu);\r
+                                       ui.source.setText("Reading memory block...");\r
+                                       setTimeout(loop,10);\r
+                               }catch(e){\r
+                                       mcu.deactivate();\r
+                                       alert("Error[1]: "+ui.connect.getAddressText()+"\n"+e);\r
+                               }\r
+                       }catch(e){\r
+                               alert("Can not connect to MiMicRemoteMCU.\nAddress: "+ui.connect.getAddressText()+"\n"+e);\r
+                               ui.source.setText("ERROR.");\r
+                       }\r
+               }\r
+\r
+               switch(id){\r
+               case ui.cmd.CM_DUMP:\r
+                       var addr=ui.connect.getAddressText();\r
+                       if(addr.length==0){\r
+                               alert("Failed! No input MCU adderss.");\r
+                               return;\r
+                       }\r
+                       var ad=getInt(getElem("in_memaddr").value);\r
+                       var bs=getInt(getElem("in_block").value);\r
+                       if(ad===false || ad%4!=0){\r
+                               alert("Memory address must be unsigned integer of 32bit alignment.");\r
+                               return;\r
+                       }\r
+                       if(bs===false){\r
+                               alert("Number of blocks must be unsigned integer.");\r
+                               return;\r
+                       }\r
+                       ui.cmd.setEnabled(false);\r
+                       dump(ad,bs,function(){ui.cmd.setEnabled(true);});\r
+                       return;\r
+               default:\r
+                       alert("unknown command id");\r
+               }\r
+       }\r
+}\r
+function init()\r
+{\r
+       app=new Application();\r
+}\r
+\r
+</script>\r
+</head>\r
+<body onload="init();">\r
+<h1 style="float:left;"><img src="./mimiclogo.png"/><span id="idx" >MemoryDump</span></h1>\r
+<div style="float:right;" ><a href="/">Return to top</a></div>\r
+<hr  style="clear:both;" />\r
+<div id="menu2">\r
+       <button id="menu2_dump" style="float:left"/>Dump</button>\r
+       <table class="table" style="float:left">\r
+               <tr class="input_row">\r
+                       <td class="td1">Memory address</td><td><input id="in_memaddr" type="text" value="0x20080000"/></td>\r
+               </tr>\r
+               <tr class="input_row"><td class="td1">Number of blocks</td><td><input id="in_block" type="text" value="1"/></td></tr>\r
+       </table>\r
+       \r
+       <div id="connect_menu" style="float:right">\r
+               MCU Address:<input id="connect_menu_address" type="text"></input>\r
+       </div>\r
+</div>\r
+<div class="tag" style="clear:both">Dump Result</div>\r
+       <textarea id="src"></textarea>\r
+</div>\r
+<div class="footer">\r
+       MiMic project<br/>Copyright (C) 2011-2013 <a href="http://nyatla.jp">nyatla.jp</a> All Rights Reserved.\r
+</div>\r
+</body>\r
+</html>\r