| ??? 12/15/02 21:52 Read: times |
#34491 - RE: T89C51CC01 activate bootloader |
> Are you sure about 0xf800 ??
Yes, I am sure. Page 48 of Atmel's T89C51CC01 data sheet clearly shows the PC is loaded with 0xf800, and all references to the flash boot memory show it maps in to 0xf800 when ENBOOT is set. > I can see you are mistaking the boot code for the IAP code interface. No, Atmel's supplied API is called through address 0xfff0, however this API is provided for user applications and the bootloader itself to access the chip programming library. > What you are trying to do is jump to the same code that is jumped to when PSEN is low during reset. Be sure that you have the correct address. AND, be sure about that ENBOOT flag. I don't see it in any of my datasheets, so I don't know what it does. But if it is not in the default for AUXR after reset, you don't need it. You are correct. This is exactly what I am trying to do. I am sure the address is 0xf800, and the ENBOOT flag is used to map the FM1 code space into and out of the CPU memory space, so it must be set or I can't call 0xf800 and land somewhere useful. Are you using the 'CC01 specifically? It seems to me that some other 8051 variants have the similar features, but I am guessing that they are all sufficiently different as to be highly confusing. I am following up on two leads. 1) That I must carefully restore *all* registers to power-on default before jumping to 0xf800. I have looked at the bootloader source, and it seems to rely on previous state (i.e. it ANDs and ORs stuff into registers, rather than forcing all registers it uses to specific values) and 2) That I must do something about interrupt vectors- if my code has defined the serial interrupt vector, then how can the bootloader in Atmel's code access the UART? I am also still keen to hear of any other suggestions. I am sure the solution is very simple, but I am finding this a useful exercise as we shall be writing our own bootloader to suit our particular environment pretty soon. Thanks, Andy |
| Topic | Author | Date |
| T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
| RE: T89C51CC01 activate bootloader | 01/01/70 00:00 | |
RE: T89C51CC01 activate bootloader | 01/01/70 00:00 |



