[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [microblaze-uclinux] Newbie question about external ram executability



Hello Wade. 

|   I've created a flash programmer/ram test/xmodem download 
| program in order
| to download the uClinux kernel to the board when it is just 
| being brought
| up in production (sometime later this year?!!).
| 
|  I used mb-objcopy to create a binary image from a small test program.

Did you set the start address of the code that is to live in ram to the
correct address? Otherwise, in the crt that is linked in, the program will
jump to 0 and there will be nothing there except the small code you have
that "brild r9, r15".  You should be able to load your code to 0x80000000
and then run (con? Can't quite remember, it's been a while) from that point.
You set the start address in applications tab, right click your app, and set
compiler options.

|   I downloaded the program into external static ram at 0x80000000 and
| verified it was there.
| 
|   I created a small boot program to jump to that address, and used mdm
| assembly language stepping to prove that the "brild r9, r15" 
| code was about
| to jump to 0x80000000 (in r15).
| 
|   As soon as it gets to that address, it shows a blank screen in the
| debugger, and then it reboots at 0 (the bitram).  If I just 
| let it free
| run, it reboots at zero (which is what caused me to break out the
| debugger.)  We are doing this because we can't get uClinux to boot
| properly, and we are now in the simple step by step phase.

Does your code work if you load it into BRAM?  If so, then it sounds like
the start address is not correct.  See above.

|   My hardware guy is stumped.  Is there a setting that needs 
| to be made to
| make external ram executable in this Harvard architecture 
| processor?   I
| really do like Von Neumann after all.

The way you have it setup actually is a Von Neumann architecture since your
interfaces share a single memory.  Funny, but though Microblaze claims to be
a Harvard architecture, the instruction and data memory must overlap at 0x0
if interrupts are used.

./ks

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/