There are absolute memory macros to access memory addresses in 8051, do we have any such to access externally connected flash through 8051?
I tried using C pointers, it does not seem to be reading the address in flash, How do we read & write from a memory location? Please help.
Do you understand the 8051's distinct CODE and XDATA memory spaces?
You need to understand these things before you will be able to understand the facilities that C51 provides to access them!
http://www.keil.com/support/man/docs/c51/c51_le_memareas.htm
http://www.keil.com/support/man/docs/c51/c51_le_memtypes.htm
http://www.keil.com/support/man/docs/c51/c51_lib_macros.htm
the so-called "bible" for the 8051:
Chapter 1 - 80C51 Family Architecture: www.nxp.com/.../80C51_FAM_ARCH_1.pdf
Chapter 2 - 80C51 Family Programmer's Guide and Instruction Set: www.nxp.com/.../80C51_FAM_PROG_GUIDE_1.pdf
Chapter 3 - 80C51 Family Hardware Description: www.nxp.com/.../80C51_FAM_HARDWARE_1.pdf
Here are some other introductory & reference materials: http://www.keil.com/books/8051books.asp www.8052.com/books.phtml www.8052.com/tutorial.phtml
Thank you, going through them,
Wonder why, if 8 bit CMDs can be sent fine, Status register can be written to and read from, why reading from an address (or writing to) cannot be done using the same functions, they are sent as same 8 bits, what is the difference,
"Wonder why, if 8 bit CMDs can be sent fine, Status register can be written to and read from, why reading from an address (or writing to) cannot be done using the same functions, they are sent as same 8 bits, what is the difference,"
That made absoultely no sense at all in the context of this thread!
Then I remembered your other thread: http://www.keil.com/forum/docs/thread8478.asp
You're talking about your SPI-interfaced flash chip now, aren't you?
Remember - the SPI interface means that your flash chip does not appear in any 8051 address space!
Ya, very same flash , and talking about address locations and those operations in flash,
serial and parallel, one is an I/O device, the other is memory.
If you want to make orange marmelade, do you use apples?
Actually, if I recall correctly, there is (I do not know where, it is not something I would usee) a means of using a mutilated data banking routine that will make serial DATA memory APPEAR as if it was parallel. This, of course will make your program slow down to a crawl, but if you can live eith that, fine. Now, if you have a gaze at the above links, you will realize that, unless you have the CODE memory split in read only and read/write there will be no way of doing 'serial CODE memory' That solution would be so totally silly that I am certain some 'inventor' has something "tested" that will do just that.
As a final note: why are you fooling around with this? you can get large PARALLEL Flash for pennies e.g. 2Mbyte for #2.83 in reasonable quantities.
Erik
Sir, " mutilated data banking routine that will make serial DATA memory APPEAR as if it was parallel. "
" CODE memory split in read only and read/write "
Sir, wonder what this is, all we are doing is interfacing flash to 8051, this being serial flash, commands, addresses and data is sent via Serial In pin of flash. I did not use any banking routine or whatsoever,
Have been trying to interface 8051 with serial flash and supposed to do just that That is, read & write Flash to and from 8051, not using parallel flash ,
View all questions in Keil forum