There are a number of existing ISP Graph diagrams provided within the VSDK. It is possible to import them into S32DS and use them in a new C/C++ project. The steps to do this are detailed within this document.
Prerequisite
Before following the steps in this HOWTO, ensure you have the Vision Extension Package for V2xx (as well as the S32V2xx development package) installed to S32DS.
1) Launch S32DS
2) Select File -> New -> S32DS Application Project.
3) Enter a project name, such as: ISP_ISP_Generic_demo
4) Select 'A53 APEX/ISP Linux'
5) Click Next
6) Deselect the APEX2 options and 'ISP Visual Modeling' option.
7) Click Finish
8) Select File -> New -> S32DS Project from Example.
9) Select isp_generic.
10) Select Finish
11) Open isp_generic in the project explorer
12) Double-click ISP data flow ; isp_generic. The ISP data flow graph will appear in the editor
13) Define a new configuration for emitting code from the graph
a) Right-click in the ISP data flow window and select Emit As -> Emit Configurations...
b) Select ISP Emitter
c) Press New Launch Configuration
d) Enter a name
e) To select the graph, press Browse Workspace
f) Expand each item until you can select the .isp file. Click OK
g) Select the location of the emitted output to the application project, select Browse Workspace
h) Select the name of your application project, then press OK
i) Enter 'A53_gen' to the Dynamic sequences sources folder box. This is the folder within the target project that generated code will be stored. Check the box for Emit host code.
j)Now select the location to store the configuration file. Go to the Common tab, select Shared file and click Browse
k) Select the .launches folder inside ISP_ISP_Generic_demo and click OK
l) Click Apply and Emit. Dialog box will appear when code generation is successful
m) Expand the folders within ISP_ISP_Generic_demo, A53_gen, src and inc, to see the newly generated output files
14) Build the project 'ISP_ISP_Generic_demo' for ISP
15) Open file 'ISP_ISP_Generic_demo/A53_inc/isp_user_define.h', by double clicking on it in the Project Explorer.
Change '#define DCU_BPP DCU_BPP_YCbCr422' to '#define DCU_BPP DCU_BPP_24'
and
change '#define __DCU_BPP' to "#undef __DCU_BPP".
Before
After
16) Using the method detailed in steps 8 - 10, create the example project 'isp_sonyimx224_csi_dcu'. Take from this project the file 'isp_sonyimx224_csi_dcu/A53_src/main.cpp' and use it to replace the file 'ISP_ISP_Generic_demo/A53_src/main.cpp' in the current project. Then make the following modifications:
On line 36, change <#include "mipi_simple_c.h"> to <#include "isp_generic_c.h">.
On line 303, change <gpGraph_mipi_simple> to <gpGraph> AND <gGraphMetadata_mipi_simple> to <gGraphMetadata>
On line 330, change <FDMA_IX_FastDMA_Out_MIPI_SIMPLE> to <FDMA_IX_ISP_OUTPUT>.
Please see C:\NXP\S32DS.3.1\S32DS\software\VSDK_S32V2_RTM_1_3_0\s32v234_sdk\docs\drivers\SDI_Software_User_Guide.pdf for details on what this code is for.
17) In Project Explorer, right-click on "...\A53_gen\src\isp_process.cpp" and select Build path -> Remove from -> A53
18) Select 'ISP_ISP_Generic_demo:A53' in the Project Explorer panel, then Build for A53
19) Run it remotely on the target using the method fromHOWTO: Create S32V234 Cortex-A53 Linux Project in S32DS . Should get results similar to this: