An example of importing Embedded Coder code into the mbed IDE. Currently doesn't connect IO to PWM, ADC, and Encoder, instead provides random inputs and measures execution time.

Dependencies:   mbed-dsp mbed Nucleo_pmsmfoc

Dependents:   Nucleo_pmsmfoc

Revision:
2:bbc155b0b886
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/html/html/js/coder_app.js	Tue Nov 25 07:52:02 2014 +0000
@@ -0,0 +1,285 @@
+/* Copyright 2013-2014 The MathWorks, Inc. */
+function queryByClassName(className, elem) {
+    if (!elem) elem = document.body;
+    if (typeof elem.querySelectorAll === "function") {
+	return elem.querySelectorAll("."+className);
+    } else {
+	return elem.getElementsByClass(className);
+    }
+}
+
+function nav_token_usage_details(direction) {
+    var els = queryByClassName("token_usage_details_tabrow");
+    var selectedIdx = 0;
+    var selectedClassName = "selected";
+    for (selectedIdx; selectedIdx < els.length; selectedIdx++) {
+	if (els[selectedIdx].classList.contains(selectedClassName)) {
+	    break;
+	}
+    }
+    var nextIdx = selectedIdx;
+    if (direction === -1 && selectedIdx > 0) {
+	nextIdx = selectedIdx-1;		
+    } else if (direction === 1 && selectedIdx < els.length - 1) {
+	nextIdx = selectedIdx + 1;
+    }	
+    if (nextIdx !== selectedIdx) {
+	els[selectedIdx].classList.remove(selectedClassName);
+	els[nextIdx].classList.add(selectedClassName);
+	els[nextIdx].scrollIntoView(alignWithTop=false);
+    }
+    return false;
+}
+
+function tabrowClicked(event) { 
+}
+
+function popupOnload() {
+    var els = queryByClassName("token_usage_details_tabrow");	
+    for (var i=0; i<els.length; i++) {
+	els[i].onclick= tabrowClicked;
+    }
+};
+
+function tokenOnRightclick(event) {
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    top.inspectToken(filename, location.pathname, event);
+    top.hiliteClickedToken(event.currentTarget);
+    return false;
+}
+
+function tokenOnclick(event) {
+    tokenOnRightclick(event);
+    if (event.currentTarget.href.length !== 0 && event.currentTarget.href.protocol !== "matlab:") {
+        top.tokenLinkOnClick(event);
+        return true;
+    }
+    return false;
+};
+
+function tokenOnMouseOver(event) {    
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    createPopup(filename, event);
+};
+function tokenOnMouseOut(event) {
+    destroyPopup(event.currentTarget);
+};
+
+function blkLinkOnClick(event) {
+    top.hiliteClickedToken(event.currentTarget);
+    return true;
+}
+
+// remove the code table; update tokens; insert back
+function updateToken(codeElement) {
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];  
+    var srcFilename;
+    if (top.RTW_TraceInfo) {
+        srcFilename = top.RTW_TraceInfo.toSrcFileName(filename);
+    }
+    var els = queryByClassName("tk", codeElement);
+    var elem; 
+    var hasTraceFlag = null;
+    if (top.TraceInfoFlag && top.TraceInfoFlag.instance)
+        hasTraceFlag =  top.TraceInfoFlag.instance.traceFlag;
+    else 
+        hasTraceFlag = false;
+    var defObj;
+    var traceObj;
+    var codeDef = (top.CodeDefine &&  top.CodeDefine.instance) ? top.CodeDefine.instance : null;
+    var aLink = top.document.createElement("a");
+    if (hasTraceFlag || (top.CodeDefine && top.CodeDefine.instance))  {
+        for (var i=0; i<els.length; i++) {
+            defObj = (codeDef) ? codeDef.def[els[i].text] : null;
+            traceObj = hasTraceFlag && hasTraceFlag[srcFilename+":"+els[i].id];
+            if (traceObj || defObj) {
+                els[i].onclick= tokenOnclick;
+                els[i].oncontextmenu= tokenOnRightclick;
+                els[i].onmouseover = tokenOnMouseOver;    
+                els[i].onmouseout = tokenOnMouseOut;
+                els[i].className += " active";
+                els[i].target = "rtwreport_document_frame";
+                if (traceObj && top.reportModel) {
+                    els[i].href = "matlab:rtw.report.code2model(\'" + top.reportModel 
+                        + "\',\'" + location.pathname + "\',\'" + els[i].id + "')";
+                } else {
+                    aLink.href = defObj.file;
+                    els[i].href = aLink.pathname + "#" + defObj.line;
+                }
+            }
+        }
+    }
+    // update block path link in comments
+    els = queryByClassName("blk", codeElement);
+    var lineSid = null;
+    if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) {
+	for (var i=0; i<els.length; i++) {
+            lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].text);
+	    if (lineSid) {
+		els[i].href = "matlab:coder.internal.code2model('" + lineSid.sid + "');";
+                els[i].id = "blkLink_" + i;
+                els[i].onclick = blkLinkOnClick;
+                els[i].className += " blk_active";
+            }
+	}
+    } 	
+    // update requirement link in comments
+    els = queryByClassName("req", codeElement);
+    if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) {
+        for (var i=0; i<els.length; i++) {
+            lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].getAttribute("blockpath"));
+	    if (lineSid) {
+                var req_id = els[i].getAttribute("req_id");
+                els[i].href = "matlab:rtw.report.code2req('" + lineSid.sid + "'," + req_id + ");";
+                els[i].id = "req_" + i;
+                els[i].onclick = top.reqOnClick;
+                els[i].className += " req_active";
+            }
+        }
+    }
+    
+    // add link to source file
+    if (top.Html2SrcLink && top.Html2SrcLink.instance) {
+        filename = top.rtwGetFileName(location.href);
+        var link2Src = top.Html2SrcLink.instance.getLink2Src(filename);
+        var link = document.createElement("h4");
+        link.innerHTML = "File: <a href=\"" + link2Src + 
+            "\" target = \"rtwreport_document_frame\" id=\"linkToText_plain\">" + 
+            top.rtwGetFileName(link2Src) + "</a>";
+        var bodyNode = document.body;
+        bodyNode.insertBefore(link, bodyNode.firstElementChild);
+    }
+    top.updateHyperlinks();
+}
+function getInsertFunction(element) {
+    var parentNode = element.parentNode;
+    var nextSibling = element.nextSibling;
+    parentNode.removeChild(element);
+    var spinner = document.createElement("img");
+    spinner.src = "spinner.gif";
+    parentNode.appendChild(spinner);
+    return function() {
+        if (spinner) {
+            parentNode.removeChild(spinner);
+        }
+        if (nextSibling) {
+            parentNode.insertBefore(element, nextSibling);
+        } else {
+            parentNode.appendChild(element);
+        }
+    };
+}
+
+// the onload function for source file
+function srcFileOnload() {
+    var codeElement = document.getElementById("codeTbl");
+    var insertFunction = getInsertFunction(codeElement);		
+    try {
+        updateToken(codeElement);
+    } catch (err) {};
+    insertFunction();
+    // add code to model hyperlinks for all tokens
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    // highlight the filename in the TOC frame
+    if (top.rtwreport_contents_frame && top.hiliteByFileName(top.rtwreport_document_frame.document.location.href)) {
+        // remove the highlights in the TOC frame if filename is hilite successfully
+        top.removeHiliteTOC(top.rtwreport_contents_frame);
+    }
+
+    // annotate code with code coverage data
+    if (typeof rtwannotate === 'function') {
+        rtwannotate(filename.replace(/.html$/,"_cov.xml"));
+    }
+
+    // highlight token and row 
+    if (top.RTW_TraceInfo.instance && top.RTW_TraceArgs.instance) {
+        var i;
+        // find the highlight file name
+        var fileIdx = top.RTW_TraceArgs.instance.getFileIdx(filename);
+        var ids=[], rows=[];
+        if (typeof fileIdx !== "undefined") {
+            ids = top.RTW_TraceArgs.instance.getIDs(fileIdx);
+            rows = top.RTW_TraceArgs.instance.getRows(fileIdx);
+            // highlight rows in file
+            for (i=0; i<rows.length;i++) {
+                elem = top.rtwreport_document_frame.document.getElementById(rows[i]);
+                if (elem) elem.className += " hilite";
+            }
+            // highlight tokens in file
+            if (top.GlobalConfig.hiliteToken) {
+                for (i=0; i<ids.length;i++) {
+                    elem = top.rtwreport_document_frame.document.getElementById(ids[i]);
+                    if (elem) elem.className += " hilite";		
+                }
+            }
+        } // end of if current file has highlighted lines
+
+        // if the loaded file is not currFile, call setInitLocation
+        var currFileIdx = top.RTW_TraceInfo.instance.getCurrFileIdx();
+        var myFileIdx = top.RTW_TraceInfo.instance.getFileIdx(filename);
+        // update navigation status if the file is loaded first time
+        if (currFileIdx !== myFileIdx && document.location.hash === "") {
+	    if (rows.length > 0) 
+		top.RTW_TraceInfo.instance.setInitLocation(filename,rows[0]);
+	    else {
+		top.toggleNavSideBar("off");				
+		return;
+	    }
+        }
+
+        // display navigation side bar
+        if (top.rtwreport_nav_frame) top.rtwreport_nav_frame.location.reload();
+        if (rows.length>0) {
+            top.toggleNavSideBar("on");
+            top.toggleNavToolBar("on");
+        } else {
+            top.toggleNavSideBar("off");
+        }
+    }
+    top.scrollToLineBasedOnHash(document.location.hash);
+    function getHash() {
+        var loc;
+        var aHash="";
+        var topDocObj = top.window.document;	
+        // get the hash value from location.
+        loc = topDocObj.location;
+        loc = loc.search || loc.hash;
+        aHash = loc.substring(1);
+        aHash = decodeURI(aHash);
+        return aHash;	
+    }
+}
+
+function createPopup(filename, evt) {
+    var anchorObj = evt.currentTarget;
+    if (anchorObj.children.length > 0)
+        return;
+    var filename = location.pathname.split(/\//);
+    filename = filename[filename.length-1];
+    var windowObj = top.getInspectWindow();
+    var propObj = top.getInspectData(filename, anchorObj);
+    var navObj = top.getInspectLink(filename, location.pathname, anchorObj);
+    if (propObj) { 
+        windowObj.appendChild(propObj);
+        windowObj.style.left = "0px";
+        if (anchorObj.parentElement.nodeName === "TD" && 
+            anchorObj.parentElement.parentElement.nodeName === "TR") {
+            anchorObj.parentElement.parentElement.lastChild.insertBefore(windowObj,
+                                     anchorObj.parentElement.parentElement.lastChild.lastChild.nextSibling);
+            var left = Math.min(evt.clientX , window.innerWidth - windowObj.scrollWidth - 30);
+	    left = Math.max(0, left);
+	    windowObj.style.left = "" + left + "px";
+        }
+    }
+};
+
+function destroyPopup(anchorObj) {
+    var popWindow = document.getElementById("popup_window");
+    if (popWindow) {
+        popWindow.parentElement.removeChild(popWindow);
+    }
+};