| ??? 01/28/04 23:33 Read: times |
#63574 - RE: Q: Keil eval and startup.a51 Responding to: ???'s previous message |
I have followed the instructions on Keils website
to relocate a program to start at 8000H. So, I assume from this that there is NO CODE at address 0000h. The code is compiled and linked without errors but when I start the debugger I get an error like this: ERROR 65: access violation at C:0X000 no read/execute permission. The Keil debugger is pretty smart. It accurately simulates and 8051 including all interrupts and reset vector. On all 8051 devices, the reset vector is at 0000h. So, that's where the debugger starts executing code. The debugger is smart enough to know what exact areas of memory your program is supposed to access. It gets this information from the absolute object file that it loads. And, it marks unused areas as unaccessible. So, when you load the program into the simulator and start running it, the simulator starts executing code from 0000 (like the 8051 does) and since there is nothing there that is executable, it brings-up this error. There are 2 things you need to consider. 1. Where does the simulator (or an 8051) jump to on reset. 2. Where does the simulator (or an 8051) jump to when it gets an interrupt. The following knoweldgebase article on the Keil web site answers these questions: http://www.keil.com/support/docs/2707.htm Jon P.S. You asked for a hint. That's what $=0x8000 was. |
| Topic | Author | Date |
| Q: Keil eval and startup.a51 | 01/01/70 00:00 | |
| RE: Q: Keil eval and startup.a51 | 01/01/70 00:00 | |
| RE: Q: Keil eval and startup.a51 | 01/01/70 00:00 | |
| RE: Q: Keil eval and startup.a51 | 01/01/70 00:00 | |
| RE: Q: Keil eval and startup.a51 | 01/01/70 00:00 | |
| RE: Q: Keil eval and startup.a51 | 01/01/70 00:00 | |
RE: Q: Keil eval and startup.a51 | 01/01/70 00:00 |



