I'm trying to compile and test our code with the GCC Toolchain for Blackfin. I compile for SPI boot on a BF-533 EZ KIT. Since the gcc-loader I made didn't work, I decided to compare the loaders made by elfloader.exe and bfin-elf-ldr. Both files seem to have a structure like specified in the VDSP++ 5.0 Loader and Utilities Manual, though the ADI-tools add a lot more zero-fill blocks.
One thing that the ADI tools made but the GCC tools didn't, however, was this block at the start:
addr count flags body
400080FF 04000000 1200 0E6F0000
The flags 1200 means Ignore block, Zero fill block, and setting of the processor type. If I remove this block from the ldr my ADI application won't boot either. Does anyone know why this block is here, and how/when it is added? Is it elfloader.exe that knows something that bfin-elf-ldr does not?