hello ... i specific application needs -- monitor program to be installed at 0x2000 -- --application program to be installed at 0x0000. But, by default on hardware reset program counter is directed to 0x0000. On reset i need,Program counter to start at 0x2000 (to keil monitor program). could you tell me how do you solve the problem ? one way is inserting ljump to 0x2000 at address 0x0000 ..solves the problem .. but by this ..infinite loop will occur ... ljump calls keil monitor and monitor starts executing application program from 0x0000. however, i do not want to revector my interrupt vectors to another memory map ...! could you tell me the way ..to achieve this .. thanks
On reset i need,Program counter to start at 0x2000 (to keil monitor program). could you tell me how do you solve the problem ? Open up the chip and change a few internal connections. The location of the reset vector is hardware Erik
Whoever defined those "application needs" didn't know what they were talking about. Get back to them and tell them that they're sending you on an impossible mission. The monitor program must be the one located at the chip's pre-defined reset location, by the very nature of its job.
i specific application needs -- monitor program to be installed at 0x2000 -- --application program to be installed at 0x0000. But, by default on hardware reset program counter is directed to 0x0000. On reset i need,Program counter to start at 0x2000 (to keil monitor program). could you tell me how do you solve the problem ? Here's how we solve this problem. 1. Your hardware must be designed so that the address decode logic includes a flip-flop that resets so that the ROM with the monitor begins at address 0x0000 after reset and the RAM begins at 0x2000 (or whatever). When the flip-flop flips, the ROM will be decoded starting at address 0x2000. 2. Configure the monitor so that it starts at address 0x2000. This means that the first instruction in the monitor will be a LJMP 0x2???. This is very important. 3. You address decode hardware will watch A13 and when it is set the first time, the flip-flop will flip (and now the ROM is at 0x2000 and the RAM is at 0x0000). The actual solution we use is based on 0x8000. But, I think you can get the general idea of how to do this. For an idea of the schematic to accomplish this, take a look at the second page of the MCB520 evaluation board schematics (http://www.keil.com/manuals/mcb520.pdf). Jon