AnsweredAssumed Answered

ADV8005 Eval, Building Sample Firmware Summary

Question asked by ChrisInSeoul on Jul 25, 2015
Latest reply on Jul 29, 2015 by JeyasudhaMuthuPerumal

I have been trying to build and run the equivalent of the distribution sample firmware and OSD project,

as represented by these files:

BF_7625_8005_VSP_1.90.2REL_20141230.bin

OSD_1.90RC1_20140925


I am now successful at building, after applying the lessons learned in this thread:

Blimp OSD Tool - reproducing the sample OSD project


To help others who might need to do this, here is a summary of the key points I've learned:


  1. Even though the sample OSD project was prepared using Blimp v3.7, one should use v3.8
  2. It is required (for the time being) to install Microsoft Office on the computer running Blimp, explained in this thread (near the end) Blimp OSD v3.3 software issues.
  3. The sample OSD project file normally comes bundled with Blimp, not the firmware package, and can be found in the C:\Program Files directory tree where Blimp was installed.  However, there is an minor problem with this file, so for the time being one has to request a corrected one from ADI outside these forums.
  4. When one first opens the OSD demo project in Blimp (the distributed one or the corrected one from ADI), there are two Blimp error messages.  These can be eliminated by saving the project and re-opening it.  See this thread: Blimp error message while setting ExternalOSD resolution
  5. Obtain the updated version 0.6 of the Adaptiv VSP Application Reference document dated June 2015 (the one included in the distribution is missing some important information needed for the next step).
  6. Follow the instructions in Appendix B of the Adaptiv VSP Application Reference, copy over the indicated files, being sure not to overwrite the files blimp_external_api.c and .h. Don't be alarmed by the two new files vsd_osdeg_freetype.c and .h. no that the other files' contents don't match.  As I understand it, this is (partially?) to blame on using different versions of Blimp.
  7. Edit the file vsp_osdeg_config.h, changing the value of the OSD_UNDER_ADI_REPEATER #define from 0 to 1
  8. Edit the file osd_control.c, commenting out the parameter OSD_BIN_SPLASH_IDENTIFIER_ADD which is found in the call to function OSDEG_checkSplashPageIdentifier().  This edit only has to be done once, and there is only one instance of this in the file.


I've automated the copy and edit portion of the steps above, and here is my script file. 

I'm running this in bash on a Linux machine, but it should be simple to adapt this to Windows if needed.

 

# identify which blimp and firmware project

tool_blimp=../../blimp/avr-osd-demo/ProjectFiles/Release

tool_firmware=../../blimp/avr-osd-demo/ProjectFiles/Release/firmware

proj_blimp=./APP/8002_AVR/OSD/ADI_DEMO2

proj_firmware=./OSD_BMP/ES2

 

# delete the existing files in the project tree,

# i.e., those files about to be replaced

rm $proj_firmware/include/*.h

rm $proj_firmware/source/*.c

find $proj_blimp -maxdepth 1 \

       -name "blimp*.[ch]" ! -name "blimp_external_api.*" \

       -exec rm {} \;

 

# edit the file osd_control.c, only needs to be done one time

# this could break if there are spaces or tabs introduced down the road

spattern='if(OSDEG_checkSplashPageIdentifier(OSD_BIN_SPLASH_IDENTIFIER_ADD)'

rpattern='if(OSDEG_checkSplashPageIdentifier(\/\*OSD_BIN_SPLASH_IDENTIFIER_ADD\*\/)'

sed -i "s/$spattern/$rpattern/" $proj_blimp/../osd_control.c

 

# copy the blimp_*.c and .h file

# BUT, exclude the two files blimp_external_api.c, .h

find $tool_blimp -maxdepth 1 \

       -name "blimp*.[ch]" ! -name "blimp_external_api.*" \

       -exec cp -t $proj_blimp {} \;

 

# copy all the source files,

cp -ar $tool_firmware/source $proj_firmware

# copy all the header files except vsp_osd_config.h, to be edited next

find $tool_firmware/include -maxdepth 1 \

       -name "*.h" ! -name "vsp_osd_config.h*" \

       -exec cp -t $proj_firmware/include {} \;

 

# Finally, from the file:

#    ./osd_bmp/es2/include/vsp_osd_config.h

# we have to change a preprocessor #define:

#    OSD_UNDER_ADI_REPEATER   (0)

#  from (0) to (1)

sed \

  "s/^#define OSD_UNDER_ADI_REPEATER   (0) /#define OSD_UNDER_ADI_REPEATER   (1) /" \

  $tool_firmware/include/vsp_osd_config.h > \

  $proj_firmware/include/vsp_osd_config.h

Outcomes