Skip to content

Project introduction

Christopher Chavez edited this page Mar 17, 2018 · 4 revisions

Problem statement

The idea for this project was to create a web-based IDE for writing assembly programs for the NXP S12 microcontrollers. Ideally, the goals for creating a web-based IDE include:

  1. create a modern replacement for the existing desktop tools, and
  2. avoid installing additional software on the user’s computer (requiring only a web browser).

Existing tools such as AsmIDE and HSW12, despite being relatively simple IDEs, have become outdated and are not cross-platform (e.g. AsmIDE). Although AsmIDE is usable, it is no longer maintained; its author, Eric Engler, passed away in 2008. Providing a new IDE in the web browser would make it easier to begin or resume programming development boards such as the Dragon12 series.

Target users

The target users would initially be students using the Dragon12 Plus and Dragon12 Light microcontroller development boards (those that have taken the undergraduate microprocessors course at St. Mary’s or are using it for a project). They would be able to go to a website for the IDE, write an assembly program, run the assembler, then download the assembled code for uploading to their development board.

Solution approach

The minimum requirements would be to provide a code editor in the web browser, and to run the assemble on the server and allow the user to download the list file and binary file (S-record) that can then be uploaded to the microcontroller using a terminal program such as HyperTerminal or minicom. To implement this, an open source code editor that runs in a web browser such as Ace can be used—since these would require interacting with a JavaScript API, there will have to be server-side and client-side Javascript code to be written. The HSW12 assembler runs in Perl 5, and is an existing open source component that can be reused for this system. A server side process will be needed to load the editor on the user’s browser, and then receive the finished assembly code from the editor and pass it to the assembler, and then serve the list file and binary file through the web browser to the user as a download. Once the minimum requirements are implemented, the following additional features can be added (which of these features should be selected and in what priority needs to be decided, so they are listed in order of increasing difficulty): have code syntax coloring in the code editor; use a browser plugin (such as the one from codebender) to be able to communicate with the board directly, allowing (1) downloading programs directly to the board from the web browser, so that the user does not have to run a separate program to download the code to their board; (2) a terminal emulator in the browser for interacting with the programs from the IDE, again so the user doesn’t need a separate terminal program; and (3) debugging tools such as register/memory inspection and code following similar to HSW12 IDE.

Group members

This project was conducted by myself, Christopher Chavez.