| ||
Shopping Cart Download Website |
Home | Products | Teensy | Blog | Forum |
You are here: 8051 Tools Development Board Memory Map |
|
Memory Map
With SDCC, memory usage is controlled by command line options given to SDCC when it links the code. These options are typically written in the project Makefile. For example, "--code-loc 0x2000" would cause the linker to place your code at the beginning of the RAM which can be used for downloading code, and "--xram-loc 0x6000" would instruct the linker to place all your "xdata" variables beginning at 0x6000. With AS31, your program's location is controlled by the ".org" directive within the code. Typically a ".equ" directive defines a constant near the top of the code, and subsequent ".org" directives utilize this constant to allow the code to be "moved" more easily. Flash ROM must be erased before it is written. When you download code built between 8000 to F7FF, PAULMON2 will automatically program your code into Flash ROM (Flash programming is a procedure different from simply writing to RAM). Flash programming can only turn 1's into 0's. To turn programmed 0's back into 1's, you must erase the flash chip ('Z' Command) or a 4k sector of the flash chip. The erasure causes all the bytes in the erased area to turn back into 0xFF. If you download a new version of your program "on top of" the original, the result is usually incorrect and PAULMON2 will print an "Unable to write" error message. If this happens, simply erase the flash rom and try again (or use the RAM for development until your code is debugged).
Peripheral Mapping
|