I am migrating from VisualDSP++ 5.1.2 to CrossCore Embedded Studio 2.9.2. We have a BF538F target that is deployed in the field with well vetted code that was produced with VisualDSP++. Using Cross Core I made a relatively simple project DXE that I can run under Cross Core using the ICE-1000 emulator. I have been trying to create a binary LDR version of the code so that I can burn it to the 16 bit wide FLASH that resides at 0x2000 0000 of the target. It would seem that this should be a relatively easy process because I already have the required initSDRAM.DXE code that was created a while back using VisualDSP++
The process that I have tried seems intuitive and simple but it always fails
1. Convert init538SDRAM.DXE that was created with VisualDSP++ to a CCES compatible DXE using the ELF2ELF tool that is provided for this purpose. Below is the command I used and it seems to work fine
elf2elf init538SDRAM.dxe -o init538SDRAM_forCCES.dxe
The output file on the right is a converted slightly larger file than the file on the left. It is supposed to work with CrossCore
2.. Use the ELFLOADER to concatenate the init538SDRAM_forCCES.dxe and the DXE application that was created using cross core and runs with the emulator ICE-1000. When I say "concatenate" what actually is supposed to happen is the init538SDRAM_forCCES.dxe portion is "prepended" to the Application portion to create the total LDR. This should create a boot-loadable binary LDR that I can burn to flash and use to boot the target from flash.
Below is the command I used. The intent was to get a 16 bit binary LDR that I should be able to burn to flash and used to boot-from-flash.
elfloader -init init538SDRAM_forCCES.DXE my_app.dxe -proc ADSP-BF538 -v -b FLASH -f BINARY -Width 16 -o my_app.ldr
The above returns the following error. Try as I might I can't seem to fix it.
[Error ld0263]: Init code "init538SDRAM_forCCES.DXE" has no section in code memory range for target processor "ADSP-BF538".
It would seem to me that the init538SDRAM.DXE is "just a binary" that should easily be prepended to the CrossCore DXE once the conversion to the CrossCore DXE format has been made. I don't really know what "has no section in code memory range for target processor "ADSP-BF538" means. More important, I can guess what it means but have not been able to fix it. I have tried building the equivalent of the original init538SDRAM.DXE by importing the original VisualDSP++ project in to CrossCore and building it that way. I get differnt issues with the ELFLOADER that are equally inscrutable. I have even tried recreating the original initSDRAM project in CCES (rather than using IMPORT) that does not seem to work either.
Any guidance on how to fix this is appreciated. Many of the errors that get issued such as [Error ld0263] I can not find documentation so I am reduced to guessing the problem and the fix.
Hi,Apologies for the delay post. We are posting the response here for others to benefit.Thank you very much for your report. We have confirmed that the ld0263 error you encountered is a regression in CCES…