sitemap
|
8051MX Development Tools
|
Building on its 8+ years experience in the 8051 marketplace,
Raisonance introduces a new, complete toolchain for the new 8051MX architecture from Philips,
allowing you to easily and efficiently break the 64kb barrier, while preserving binary compatibility with
existing 8051 code.
|

|
|
Fully integrated into RIDE and fully compatible with the 8051 toolchain, the new MX toolchain
(RCMX, MAMX, RLMX and SIMICEMX for C Compiler, Assembler, Linker and Simulator respectively)
is built from the ground up to take advantage of the new 8051MX features, such as extended
addressing space, extended stack and universal pointers.
Read below or download the pdf file
(144 Kb) for an overview of
the main differences between the 8051MX and the 'standard 8051' toolchain.
Memory Spaces and Memory Models
The Philips 80C51MX Architecture provides an easy way to develop 'big' applications (>64kb)
while preserving full (binary) compatibility with legacy 8051 code. This is achieved mainly
by extending the addressing space (up to 8Mb of code + 8Mb of Xdata), but also with the
introduction of some new, C-friendly features, such as Universal Pointers and the possibility
for the stack to extend over 256 bytes.
RCMX (the C compiler for the MX family) offers different memory models to take full advantage
of the MX capabilities (see the picture below). For applications that require a lot of code,
a LINEAR memory model is available that will automatically use 24 bit addresses.
No need to worry about bank switching and all its nasty details: any section of
your code is directly accessible from any other. If you need to optimize the code size you
should instead opt for the PAGED memory model: that will use 16 bit addresses (8051 like),
thus generating tighter codes. If you need a lot of stack (for example, if you have a lot of
reentrant functions) you will select the STACK16 memory model, whereby the stack will be addressed
using 24 bit Universal Pointers, whereas if your stack requirements fit into 256 bytes you
will select the STACK8 memory model to have a smaller code.
Data memory models are 8051-like and you have the choice between SMALL, COMPACT and LARGE.
The 8051MX offers additional memory spaces compared to the standard 8051: EDATA and HDATA.
RCMX will automatically use the new spaces when needed (according to the selected memory model),
but you can force variables to be in a defined memory space using the same syntax that is available
with RC51 for the common memory spaces (data, idata…)
|
|
ROM memory model.
The ROM MEMORY MODEL (ROM Model in the picture) option specifies if the compiler should generate Long CALL/RET instructions
(16 bit address, PAGED mode) or Extended CALL/RET instructions (23 bit address, LINEAR mode) to access functions.
Use LINEAR if your code is big and you don't want to worry about details such as bank switching.
Use PAGED if your code is <64kb or if it is bigger but you want it to be highly optimized and you
are ready to 'pay the price' of arranging functions in the proper segment manually.
Stack model.
The STACK MODEL (Stack Mode in the picture) option specifies if the stack can extend over 256 bytes during the program
execution.
If you think your stack will need more than 256 bytes, choose the stack16 model: in this way your stack can extend up to the
limit of the memory of your chip/board, because it is addressed using 24 bit Universal Pointers.
If you are sure that your stack will remain within 256 bytes, choose the stack8 model: this way your
generated code is more compact, because the stack is addressed using the shorthand, 8051-compatible @R0 (or @R1, anyway is 8 bit) form.
Note that if you choose Stack8 and your stack grows over 256 the application will fail.
RAM memory model.
The RAM MEMORY MODEL option (Memory Model in the picture) specifies the standard
memory space for variables. It behaves in the same way as for the 8051.
|
|
Pointers
The 8051MX provides hardware support for Generic Pointers (24 bits): the so-called Universal Pointers
PR0 (made of registers r1, r2, r3) and PR1 (made of registers r5, r6, r7) allow to point anywhere in the memory,
thus eliminating the need to include library functions for the management of Generic Pointers.
|
Availability
The MX toolset is exceptionally available as a part of existing Raisonance Development Suites
for 8051 at no extra cost and is included starting from BN724 (Jan 2002).
Customers under maintenance contract as of this date will receive the new tools for free.
A fully working demo version (limited to 4kb of generated code) is available to download by
clicking the button at the top of this page.
For more information about 8051MX development tools please email support@raisonance.com
|
|
|