This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

JPEGDEC array_object_alignment=8

Other Parts Discussed in Thread: SYSBIOS, TMS320C6678

Hi,

I'm working with the demo project for JPEGDEC (C6678 device).

I'm getting this error :

fatal error #16030: array_object_alignment=8 bytes is not greater than or equal
to array_object_align_expected=16 bytes as required; file "C:/Program Files
(x86)/Texas
Instruments/Codecs/C66x_jpegdec_03_01_00_01_ELF/packages/ti/sdo/codecs/jpegd
ec/App/Client/Build/TestAppDecoder/../../../../Lib/jpegdec_ti.le66" is
incompatible with other input files

However, I'm using all the requirements with the same versions as the user guide says.

Is there anyway that I can find which objects are causing this incompatibility?

Weber

  • Another question:

    What exactly does this requirement (alignment>=16) mean, and how can I guarantee on my code that I'm usign the right alignment?

    Weber

  • Hi Weber,

    Can you please clean and rebuild the project, and also provide the complete log of the compilation?

    Thanks,

    Hongmei

  • There it is


    **** Build of configuration Debug for project TestAppDecoder ****

    C:\CCs_v51\ccsv5\utils\bin\gmake -k all
    'Building file: ../JpegdecApp6678.cfg'
    'Invoking: XDCtools'
    "C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/xs" --xdcpath="C:/Program Files (x86)/Texas Instruments/ipc_1_22_03_23/packages;C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages;C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages;C:/ti/framework_components_3_20_02_29/packages;C:/ti/framework_components_3_20_02_29/fctools/packages;C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages;C:/multicore/TestAppDecoder/../../../Client/Build/Repository/Packages;C:/CCs_v51/xdais_7_21_01_07/packages;C:/CCs_v51/xdais_7_21_01_07/examples;C:/ti/framework_components_3_20_02_29/packages;C:/ti/framework_components_3_20_02_29/examples;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C66 -p ti.platforms.custom66x -r whole_program -c "C:/CCs_v51/ccsv5/tools/compiler/c6000" "../JpegdecApp6678.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring JpegdecApp6678.pe66 from package/cfg/JpegdecApp6678_pe66.cfg ...
    cle66 package/cfg/JpegdecApp6678_pe66.c ...
    lnke66 JpegdecApp6678.pe66 ...
    'Finished building: ../JpegdecApp6678.cfg'
    ' '
    'Building file: C:/Client/Test/Src/TestAppConfigParser.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="TestAppConfigParser.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/TestAppConfigParser.c"
    'Finished building: C:/Client/Test/Src/TestAppConfigParser.c'
    ' '
    'Building file: C:/Client/Test/Src/TestAppDecoder.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="TestAppDecoder.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/TestAppDecoder.c"
    'Finished building: C:/Client/Test/Src/TestAppDecoder.c'
    ' '
    'Building file: C:/Client/Test/Src/alg_create.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="alg_create.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/alg_create.c"
    'Finished building: C:/Client/Test/Src/alg_create.c'
    ' '
    'Building file: C:/Client/Test/Src/alg_malloc.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="alg_malloc.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/alg_malloc.c"
    'Finished building: C:/Client/Test/Src/alg_malloc.c'
    ' '
    'Building file: C:/Client/Test/Src/ijpegdec.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="ijpegdec.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/ijpegdec.c"
    'Finished building: C:/Client/Test/Src/ijpegdec.c'
    ' '
    'Building file: C:/Client/Test/Src/tsc_h.asm'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --include_path="C:/CCs_v51/ccsv5/tools/compiler/c6000/include" --include_path="C:/CCSTUD~1.3/C6000/csl/include" --include_path="C:/multicore/TestAppDecoder/../../../Client/Test/Inc" --include_path="C:/multicore/TestAppDecoder/../../../Inc" --include_path="C:/ti/framework_components_3_20_02_29/fctools/packages" --include_path="C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages" --include_path="C:/Program Files (x86)/Texas Instruments/xdctools_3_20_08_88/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages" --include_path="C:/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/utils/api" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore --preproc_with_compile --preproc_dependency="tsc_h.pp" --cmd_file="./configPkg/compiler.opt" "C:/Client/Test/Src/tsc_h.asm"
    'Finished building: C:/Client/Test/Src/tsc_h.asm'
    ' '
    'Building target: TestAppDecoder.out'
    'Invoking: C6000 Linker'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --define="XDM1" --diag_warning=225 --gen_func_subsections=on --no_bad_aliases --abi=eabi --auto_inline=256 --output_all_syms --strip_coff_underscore -z -m"TestAppDecoder.map" --warn_sections -i"C:/CCs_v51/ccsv5/tools/compiler/c6000/lib" -i"C:/CCs_v51/ccsv5/tools/compiler/c6000/include" -i"C:/multicore/TestAppDecoder" -i"C:/multicore/TestAppDecoder/../../../Build" -i"C:/CCSTUD~1.3/C6000/csl/lib" -i"C:/multicore/TestAppDecoder/../../../../Lib" -i"C:/Program Files (x86)/Texas Instruments/bios_6_31_00_18/packages/ti/bios/lib" --reread_libs --rom_model -o "TestAppDecoder.out" -l"./configPkg/linker.cmd" "./tsc_h.obj" "./ijpegdec.obj" "./alg_malloc.obj" "./alg_create.obj" "./TestAppDecoder.obj" "./TestAppConfigParser.obj" -l"C:\Program Files (x86)\Texas Instruments\Codecs\C66x_jpegdec_03_01_00_01_ELF\packages\ti\sdo\codecs\jpegdec\lib\jpegdec_ti.le66" -l"libc.a" "../JPEGDecApp.cmd"
    <Linking>
    fatal error: array_object_alignment=8 bytes is not greater than or equal to
    array_object_align_expected=16 bytes as required; file "C:\Program Files
    (x86)\Texas
    Instruments\Codecs\C66x_jpegdec_03_01_00_01_ELF\packages\ti\sdo\codecs\jpegd
    ec\lib\jpegdec_ti.le66" is incompatible with other input files

    >> Compilation failure
    gmake: *** [TestAppDecoder.out] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

  • Compiler TI v7.2.2

    Framework Components 3.20.2.29

    IPC 1.22.3.23

    SYSBIOS 6.31.0.18

    CCSv5.1

  • Hi Weber,

    Thanks for the log. From the log, it looks like your are using the compiler coming with CCSv51, which can be v7.3.1 (for CCSv5.1.0.09000) or even newer. 

    'Building file: C:/Client/Test/Src/TestAppDecoder.c'
    'Invoking: C6000 Compiler'
    "C:/CCs_v51/ccsv5/tools/compiler/c6000/bin/cl6x"

    Can you please try rebuilding the unit test with the compiler version specified in the user guide: v7.2.2?

    Thanks,

    Hongmei

  • Hi,

    Installing CGtools 7.2 solved the problem.

    Before closing this post, I have a few questions:

    However, I must implement the jpegdec library on a big project. Does JPEGDEC compile only with CG 7.2?

    What it this memory alignment error? I couldn't find a answer to that.

    Weber

  • Hi Weber,

    It looks like the minimal requirement for "array_object_alignment" has been increased from 8 in CG7.2.2 to 16 in CG7.3.x. C6678 JPEGDEC on Web was compiled with CG7.2.2 only. For details about "array_object_alignment", please post your further queries in "TI C/C++ Compiler" forum (http://e2e.ti.com/support/development_tools/compiler/default.aspx).

    We are planning a new JPEGDEC release very soon. We will take this issue into consideration. Thanks for pointing it out.

    Regards,

    Hongmei

  • Mr. Hongmei,

    Please also validate the jpegdec with SYSBIOS instead of DSP/BIOS.

    Weber

  • Hi Weber,

    Can you please provide more details about "validation on SYSBIOS instead of DSP/BIOS"? C66x_jpegdec_03_01_00_01_ELF is using SYS/BIOS 6.31.00.18.

    Thanks,

    Hongmei

  • Hongmei,

    The C66x JPEGDEC release notes mention

    Validation Information
    Release Configuration
    Description
    Validation Platform
    C6678_PS_001
    JPEG Progressive Support decoder on TMS320C6678 EVM
    TMS320C6678 [Datasheet] [User Guide]
    This release is validated on the following:
    • TMS320C6678
    − Framework Component (FC) version 3.20.02.29
    − DSP/BIOSTM version 6.31.00.18
    − Code Generation Tool version 7.2.2
    − XDC Tools version 3.20.08.88
    − BIOS IPC version 1.22.04.25

    Would be great if TI releases the new version validated into SYSBIOS, and a real C6678 (perhaps the EVM), not only the simulator.

    Also I suggest to make it more ~friendly~ with different library versions. Im struggling to put it running into my EVM6678LE project, wich uses other cgtools, xdc, ipc and so on. I dont think I will be able to do with the current jpegdec version.

    When do you plan to realease this new version?


    Weber

  • Hi Weber,

    C66x JPEGDEC release on Web is validated with SYS/BIOS 6.31.00.18. We will correct the information in documentation. It has also been validated on EVM6678LE, not just the simulator. Hope this clarifies.

    As for version of tools, we are trying to align with MCSDK Video releases. Can you please let us know the version of tools used in your EVM6678LE project?

    We are now going though the release process for JPEGDEC. We will let you know once it is available on Web.

    Thanks,

    Hongmei

  • Hi

    IMGLIB 3.0.21

    FC 3.20.2.29

    IPC 1.24.2.27

    MCSDK 2.0.7.19

    PDK 1.0.0.19

    NDK 2.20.6.35

    SYSBIOS 6.33.2.31

    UIA 1.0.1.17

    XDAIS 7.21.1.0.7

    This is project is based on a demo provided by TI. Now I'm making my own project from the ground, so I use only the necessary tools.

    I hope that doesn't take too long for TI to release the new version.

    Couldn't you consider making JPEGDEC a standalone library (without the need for XDAIS), like IMGLIB and VLIB?

    Weber

  • Hi Weber,

    Thanks for the information.

    As other C6678 video/image codecs, JPEGDEC is implemented based on eXpressDSP Digital Media (XDM) standard, which is an extension of the XDAIS. Therefore, we do not have plan to remove the dependency on XDAIS.

    Regards,

    Hongmei

  • Hi Weber,

    The coming JPEGDEC release will keep the existing tools. To help resolve the issue you are seeing, we can provide you an updated JPEGDEC lib with your desired compiler version. Can you please give us the version number?

    Thanks,

    Hongmei

  • Hi,

    Sorry for the late reply.

    The desired compiler version is 7.3.4

    Thank you very much for your support,

    Weber de Souza Calixto

  • Hi Weber,

    Can you please try the attached JPEGDEC lib? It is compiled with CGT7.3.4. Along with the compiler update, the following tools are also updated:

    BIOS 6.32.05.54
    XDCTools 3.22.04.46
    Framework Components 3.22.00.05
    Thanks,
    Hongmei
  • Hi,

    Mr. Weber is going overseas, so I'm going to continue his work with the EVMC6678.

    As soon as I test it, I will reply,

    Thank you,

  • Hi Hongmei,

    I have followed the instructions posted by Uday in this thread: http://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/t/166075.aspx to have a working CCSv5 project.
    Then I made some little changes as follows:
    - Updated the JPEGDEC lib with the one provided by you.
    - Manually added the var "JPEGDEC_ROOT" to the project (because of some linked resources)
    - Updated the project to use Compiler v7.3.4, SysBios 6.32.5.54, XDCTools 3.22.4.46 and Framework Components 3.22.0.5
    And now everything seems to be working in the demo project.
    I have also checked the output file REMI0003_planar.yuv against the reference and they are equal!

    Thank you,
    Mikhail