| ??? 11/30/07 06:15 Read: times |
#147617 - It's been a while... Responding to: ???'s previous message |
...but this sounds familiar.
Alistair Goodfellow said:
I'm using a Dallas DS89C450 microcontroller to control a TFT monitor. I have a large lookup table with the appropriate scaling requirements for the different sources the monitor accepts (NTSC/PAL/VGA/etc).
This is currently stored as a constant in code memory and the monitor works fine. I'd like to add an option to change this on the fly, however, so this will need to be stored as a variable. The table is too large to be stored into data memory so I wish to store it in xram. When I do this, however, the monitor doesn't work properly and displays random noise on the screen (sometimes looks like memory contents, sometimes it's a constant colour) instead of the input source or a blank screen in the case of no signal. Have you done anything successfully with the internal XDATA RAM on the DS89C450? I think Russ has some good advice. Russ Cooper said:
Can you write a simple routine to dump the contents of the table, just to see if it's getting set up in RAM properly? Or maybe do the same thing with an ICE or a debugger or whatever?
If the table appears intact (and remains so as you run your program), then the problem may be that you are not accessing it correctly. On the other hand, if the table looks wrong, then maybe your startup code is incorrect, or your linker settings are incorrect, or the table is getting clobbered before you try to use it, or ... -- Russ Right along those lines, look at the manual. Ultra-High-Speed Flash Microcontroller User’s Guide said:
The ultra-high-speed microcontroller incorporates an internal 1kB SRAM that is usable as data, program, or merged program/data memory. Upon a power-on reset, the internal 1kB memory is disabled and transparent to both program and data memory maps. I assume you're using the Keil toolchain. I don't remember what all is in the startup file for this device, but you might want to check to ensure that DME0 is being set to 1 so that the internal XRAM is active as data memory. --Sasha Jevtic |
| Topic | Author | Date |
| Dallas DS89C450 - placing a large array into xram | 01/01/70 00:00 | |
| of course it does | 01/01/70 00:00 | |
| OP is using large memory model | 01/01/70 00:00 | |
| Yep - I'm using the large memory model | 01/01/70 00:00 | |
| large memory model and timing | 01/01/70 00:00 | |
| I'm using the XRAM inside the DS89C450 | 01/01/70 00:00 | |
| Do Not Forget pdata | 01/01/70 00:00 | |
| I'll look into this | 01/01/70 00:00 | |
| Divide and conquer | 01/01/70 00:00 | |
| Thanks - I will try this | 01/01/70 00:00 | |
| one other thing ... | 01/01/70 00:00 | |
| You're welcome | 01/01/70 00:00 | |
| We've fixed it | 01/01/70 00:00 | |
| It's been a while... | 01/01/70 00:00 | |
| Thanks - That's fixed it! | 01/01/70 00:00 | |
Thanks for your help | 01/01/70 00:00 |



