Hi All, I use Adsp-21065l in my application. We have ADSP and Arm based Samsung microcontroller sharing an external memory area. As our ADSP code exceeds the eprom size, we plan to retain only the boot code with overlay manager in the eprom and Samsung microcontroller to place the additional code (algorithms) in the external memory. This code should be overlayed by ADSP later. Which utility should be used in ADSP to generate an output file which can be placed by the microcontroller and recognized by the overlay manager running in the internal memory (bootloaded from the eprom). If anyone has any Idea about it let me know. Regards, Bhat. |
|
Overlay
Started by ●April 23, 2002
Reply by ●April 23, 20022002-04-23
On Tue, 2002-04-23 at 08:13, suvyakta bhat wrote: > Which utility should be used in ADSP to generate an > output file which can be placed by the microcontroller > and recognized by the overlay manager running in the > internal memory (bootloaded from the eprom). > If anyone has any Idea about it let me know. There's an option in the LDF output sections to control whether output is generated to the ELF (.DXE) file for each section. Create two LDF files that are identical except for which sections go to the ELF file. Then link twice, once for code you want to go to the EPROM, and once for code to go to host-loaded overlays. Finally, use the loader utility to create the EPROM image from the first ELF file and a host image from the second ELF file. |
Reply by ●April 25, 20022002-04-25
[Please reply to the list, not directly to me.] On Wed, 2002-04-24 at 04:33, suvyakta bhat wrote: > Hi, > Thank you for your reply. I have tried to follow your > steps but couldn't get the exact idea. I have few > doubts. > This is how I tried to implement. > For the prom boot code my ldf was linking to a small > piece of code which would dma the code put on to the > external memory through the microcontroller. > My hostloadable code consisted of the overlay > manager,my overlayed algorithms.(the entire > project).Suppose I use a loader then the boot loader > Kernel file code would also be placed in the external > memory.That code is supposed to do boot strapping for > eprom boot mode.So how do we manage it here. Do I Nope, the EPROM boot kernel goes in internal memory, and is for loading the body of your program, in this case your overlay manager. > need to have a seperate kernel for host loading. > Is there no other direct way of meeting the purpose. Nope, you ignore the host kernel. I haven't used that before so you might need to write some Windows code to strip off the host kernel from the second image and just spoon-feed the overlays to the SHARC. You should read the ADI app notes on how booting works so you have an intimate familiarity with the kernels. You're going to need to replicate some of what they do. |
Reply by ●April 25, 20022002-04-25
Hi Suvyakta Further to the answers from Kenneth, I have done something very similar on a 21160 to what you are trying to do with your 21065l and Arm based Samsung microcontroller. As Kenneth rightly points out, the first stage to combine a (custom) boot-loader with your overlay manager destined for your Flash is relatively straightforward. You are likely to have to customise your boot loader so that you correctly map the external shared memory with your Samsung MCU. The rest of your application code is slightly more problematic as the elfloader seems to insist on having two images. The first is normally the 256 word primary bootloader named under Project=>Project Options=>Load=>Kernal file: The second is meant to be your application, which is the Project that you have open. This is fine for your first stage (bootloader plus overlay manager), but not so clever for your application code that the Samsung MCU will place in the shared memory for your 21065L. I got around this by generating a dummy application & project which just contained a NOP instruction. This satisfied elfloader, which happily appends a NOP instruction onto the end of my application, which is named as the 'Kernal file:'. I use the Boot type "Host" option with Format "Binary" option and load this image into Dual Port RAM over a PCI Bus shared between PC host and 21160 DSP card. Admittedly I haven't done this with more than a test application yet, so I don't know if elfloader will spot that its "bootloader" will somewhat exceed 256 words with the proper application! You might find this easier to write out as a header file, and include it with one of your Samsung sources, or alternatively as Hex. You haven't said how your Samsung gets loaded with its code. Someone may well come up with a prettier solution! Just watch the endian formats - you may need to swap bytes around as you load your shared memory with your main application image. ADI is big endian. Hope the above helps. Cheers Andy Coles Software Engineer Electronic Navigation Limited 65 Gaunt Street Westhaven Auckland New Zealand Tel. +64 9 373 5595 |