We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Mapping externe: Code:EPROM 00000--01FFF Code:RAM 12000--1FFFF Data:RAM 02000--0F6FF External logic manage the A16 line of RAM chip: - A16=1 on falling edge of ALE - A16=0 when RD or WR = 0 My code is stored in 2 I2C eeprom. The Boot code download it in upper RAM (A16 force to 1), then goes in automatic mode described before. Every things seams ok (sumckeck test works...) BUT I have a very strange behaviour: one program (A prog) works and another one (B prog) doesn't work. The only difference between them is local variable of a function. The A prog has int myVar; and the B has int idata myVar; My target is a C505CA from infineon and I use the small model. My internal ramsize is 256. I have check in detail the both M51 file the overlay of memory. It seams to be ok. To be sure that A prog works correctly I need to check two things: 1) my hardware solution 2) why the affectation of idata in local variable generates troubles
Mapping externe: Code:EPROM 00000--01FFF Code:RAM 12000--1FFFF Data:RAM 02000--0F6FF External logic manage the A16 line of RAM chip: - A16=1 on falling edge of ALE - A16=0 when RD or WR = 0 ------ | | 1 -----------|D Q|------A16 ALE --------o|CLK | | | WR or RD ---O|CLR | ----- My EPROM version (A16=0) works very well. My download version (boot program copy in upper RAM the applicative code stored in E2PROM) have some strange behaviour. Boot program is from 0 to 1fffH, applicative from 2000H to ffffH. Note that the code is compiled to set START entry point at 2000h in both case. It is exactly the same code (same sumcheck, same lenght)!
See "Tips for Posting Messages". You need to use < pre > & < /pre >.
------ | | 1 -----------|D Q |------A16 ALE --------o|CLK | | | WR or RD ---O|CLR | -----