A project hosted at|
When we decided to build a computer based on the Philips XA-S37 microcontroller, we searched the Internet looking for development tools for this architecture. What we found where commercial programs, most of them not free and very expensive and all of them only for Windows. This program aims to fill this gap, providing a minimum development tool for the XA architecture that is free and mutiplatform.
It is such a long time since the last upgrade to this page that even the name of the company that makes the XA architecture changed: it is now NXP instead of Philips. (Maybe I should change the name of this project to something like "asxa - Assembler for NXP XA Microcontrollers").
This package includes the assembler and a set of examples, including a monitor written in XA assembly language, with a disassembler and a step-by-step debugger.
This program is freely distributed under GNU-GPL.
You may get it from
http://sourceforge.net/projects/asxa There you may download files and browse CVS.
This is version 1.12 released in may/2007
To compile the assembler just go to the asxa directory and type on a command line:
will copy the executable asxa to the directory "/usr/local/bin" and the manual page asxa.1 to "/usr/local/man/man1". You will need to have write permission to these directories for a successful "make install".
To compile you will need gcc and the GNU Bison parser generator. The files "asxatab.c" and "asxatab.h" are generated by Bison using the file "asxa.y".
To remove the files copied by "make install", use
In the Windows distribution we included the file asxa.exe compiled for 32 bit Windows and asxados.exe for MSDOS, so there is no need to compile. Include are the following executable programs:
If you want to compile anyway, I recommend you to use Dev-Cpp/mingw/gcc
Using devcpp, open the project:
The command line options and the basic assembly language syntax rules are documented in the manual page man asxa.
The examples subdirectory contains programs written in XA Assembly Language. There are the following files:
|These are header files intended to be included in the source program using the $INCLUDE directive. They contain the special function register (SFR) and specilal bit (SBIT) definitions for some particular variants of the XA architecture. You may create your own header files for other XA variants.|
|disasm.xa||This is a disassembler to be embedded in a XA microcontroller system. It lists the code memory contents as XA instructions.|
This is a monitor program. It runs in a XA system using the serial interface
for Input/Output. The monitor calls the file disasm.xa as an $INCLUDE
file. The monitor can load files in Intel HEX format, show and edit memory,
show code as XA instructions (disassembly), and run programs step by step, showing
register values and the current instruction. It responds to the following commands:
<ESC> The Escape key exits from any command
Before compiling the monitor we recommend you to check the custommization section at the begining of the file monxa.xa.
|uart_int.xa||This is a small application program showing how to set up a serial interface using interrupts to implement input and output FIFO buffers.|
|timer_int.xa||This application implements a kind of a clock, using timer and UART interrupts.|
|test.xa||This file is not intended to be executed as a program. It is used as a test to check if the assembler is producing the right code for every instruction.|