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.

DM647 h264 codec jump to infinit loop

hi,

I have a question about h264 encoder on dm647. The program will jump to a infinit loop when encoding the captured video frame.

When I stop the program using CCS, then the assemble shows "BNOP.S1 C$L1 (PC+8 = 0xe400ee28),5"

After encoded several frames(maybe 500, 1000 and so on), the program run to "VIDENC_process" again, then it won't come back.

The codec engine version is codec engine 1.20.2. And I  use the EVM codes(DM648) -video_encdec-I just changed the A/D driver.

At the same time, when the DM648 EVM board run the original video_encdec program, it won't work too.

Did I configure wrong parameter?

Or there is a bug?

expecting your reply.

yours

  • I choose the "XDS_ENCODE_AU" for H264.

    If I choose the "XDS_GENERATOR_HEADER", it can encode and decode correctly.

  • And the DEBUG information as followed:(I start the GT log)

    odedFrameType: 1, generated 26840 bytes
    @0x0d944e71:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0800580, sizeInBytes=414720)
    @0x0d945077:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0d9450b6:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0865980, sizeInBytes=207360)
    @0x0d9451dc:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0d94521b:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0898380, sizeInBytes=207360)
    @0x0d94534c:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0d98ba51:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0800580, sizeInBytes=414720)
    @0x0d98bcdb:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0d98bd0b:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f5fe00, sizeInBytes=103680)
    @0x0d98be4a:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0d98be89:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f79300, sizeInBytes=103680)
    @0x0d98bf9d:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0d98bfe1:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Enter (handle=0xe0f92858, inBufs=0xe08000b0, outBufs=0xe0800140, inArgs=0xe08001d4, outArgs=0xe08001d8)
    @0x0d98c06f:[T:0xe0000424] CV - VISA_enter(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0d98c0ba:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> Enter(handle=0xe0f92878)
    @0x0d98c110:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> return
    @0x0d9989ee:[T:0xe0000424] CV - VISA_exit(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0d998aa4:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> Enter(handle=0xe0f92878)
    @0x0d998ae9:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> return
    @0x0d998b35:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Exit (handle=0xe0f92858, retVal=0x0)
    @0x0d998b94:[T:0xe0000424] OM - Memory_cacheWbInv> Enter(addr=0xe0a5fe00, sizeInBytes=9248)
    @0x0d998c11:[T:0xe0000424] OM - Memory_cacheWbInv> return
    Frame: 548, encodedFrameType: 0, generated 9248 bytes
    @0x0d9aeba9:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe08cae00, sizeInBytes=414720)
    @0x0d9aedaf:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0d9aedee:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0930200, sizeInBytes=207360)
    @0x0d9aef13:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0d9aef53:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0962c00, sizeInBytes=207360)
    @0x0d9af08a:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0d9f55a4:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe08cae00, sizeInBytes=414720)
    @0x0d9f582c:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0d9f586d:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f5fe00, sizeInBytes=103680)
    @0x0d9f5998:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0d9f59d7:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f79300, sizeInBytes=103680)
    @0x0d9f5b01:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0d9f5b33:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Enter (handle=0xe0f92858, inBufs=0xe08000b0, outBufs=0xe0800140, inArgs=0xe08001d4, outArgs=0xe08001d8)
    @0x0d9f5bc2:[T:0xe0000424] CV - VISA_enter(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0d9f5c0d:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> Enter(handle=0xe0f92878)
    @0x0d9f5c64:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> return
    @0x0da034df:[T:0xe0000424] CV - VISA_exit(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0da035b5:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> Enter(handle=0xe0f92878)
    @0x0da035fc:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> return
    @0x0da03648:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Exit (handle=0xe0f92858, retVal=0x0)
    @0x0da036a8:[T:0xe0000424] OM - Memory_cacheWbInv> Enter(addr=0xe0a5fe00, sizeInBytes=9840)
    @0x0da03725:[T:0xe0000424] OM - Memory_cacheWbInv> return
    Frame: 549, encodedFrameType: 1, generated 9840 bytes
    @0x0da16855:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0995600, sizeInBytes=414720)
    @0x0da16a5b:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0da16a9a:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe09faa00, sizeInBytes=207360)
    @0x0da16bbf:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0da16c00:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0a2d400, sizeInBytes=207360)
    @0x0da16d36:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0da5d328:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0995600, sizeInBytes=414720)
    @0x0da5d5a7:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0da5d5e7:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f5fe00, sizeInBytes=103680)
    @0x0da5d711:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0da5d750:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f79300, sizeInBytes=103680)
    @0x0da5d867:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0da5d8aa:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Enter (handle=0xe0f92858, inBufs=0xe08000b0, outBufs=0xe0800140, inArgs=0xe08001d4, outArgs=0xe08001d8)
    @0x0da5d938:[T:0xe0000424] CV - VISA_enter(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0da5d982:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> Enter(handle=0xe0f92878)
    @0x0da5d9d9:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> return
    @0x0da6ae41:[T:0xe0000424] CV - VISA_exit(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0da6af20:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> Enter(handle=0xe0f92878)
    @0x0da6af79:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> return
    @0x0da6afb5:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Exit (handle=0xe0f92858, retVal=0x0)
    @0x0da6b017:[T:0xe0000424] OM - Memory_cacheWbInv> Enter(addr=0xe0a5fe00, sizeInBytes=24733)
    @0x0da6b0e4:[T:0xe0000424] OM - Memory_cacheWbInv> return
    Frame: 550, encodedFrameType: 0, generated 24733 bytes
    @0x0da7e043:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0800580, sizeInBytes=414720)
    @0x0da7e24a:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0da7e289:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0865980, sizeInBytes=207360)
    @0x0da7e3ae:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0da7e3ee:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0898380, sizeInBytes=207360)
    @0x0da7e525:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0dac4c69:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0800580, sizeInBytes=414720)
    @0x0dac4ef4:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0dac4f35:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f5fe00, sizeInBytes=103680)
    @0x0dac5062:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0dac50a2:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f79300, sizeInBytes=103680)
    @0x0dac51c6:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0dac51f8:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Enter (handle=0xe0f92858, inBufs=0xe08000b0, outBufs=0xe0800140, inArgs=0xe08001d4, outArgs=0xe08001d8)
    @0x0dac5286:[T:0xe0000424] CV - VISA_enter(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0dac52d2:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> Enter(handle=0xe0f92878)
    @0x0dac5328:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> return
    @0x0dad2ac7:[T:0xe0000424] CV - VISA_exit(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0dad2b96:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> Enter(handle=0xe0f92878)
    @0x0dad2bec:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> return
    @0x0dad2c28:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Exit (handle=0xe0f92858, retVal=0x0)
    @0x0dad2c87:[T:0xe0000424] OM - Memory_cacheWbInv> Enter(addr=0xe0a5fe00, sizeInBytes=9402)
    @0x0dad2d02:[T:0xe0000424] OM - Memory_cacheWbInv> return
    Frame: 551, encodedFrameType: 1, generated 9402 bytes
    @0x0dae5c00:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe08cae00, sizeInBytes=414720)
    @0x0dae5e19:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0dae5e48:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0930200, sizeInBytes=207360)
    @0x0dae5f7f:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0dae5fbd:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0962c00, sizeInBytes=207360)
    @0x0dae60e3:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0db2c5ca:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe08cae00, sizeInBytes=414720)
    @0x0db2c851:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0db2c882:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f5fe00, sizeInBytes=103680)
    @0x0db2c9bd:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0db2c9fd:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f79300, sizeInBytes=103680)
    @0x0db2cb14:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0db2cb57:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Enter (handle=0xe0f92858, inBufs=0xe08000b0, outBufs=0xe0800140, inArgs=0xe08001d4, outArgs=0xe08001d8)
    @0x0db2cbd4:[T:0xe0000424] CV - VISA_enter(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0db2cc2f:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> Enter(handle=0xe0f92878)
    @0x0db2cc87:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> return
    @0x0db39e91:[T:0xe0000424] CV - VISA_exit(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0db39f45:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> Enter(handle=0xe0f92878)
    @0x0db39f8c:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_deactivate> return
    @0x0db39fd8:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Exit (handle=0xe0f92858, retVal=0x0)
    @0x0db3a027:[T:0xe0000424] OM - Memory_cacheWbInv> Enter(addr=0xe0a5fe00, sizeInBytes=14125)
    @0x0db3a0cd:[T:0xe0000424] OM - Memory_cacheWbInv> return
    Frame: 552, encodedFrameType: 0, generated 14125 bytes
    @0x0db3a14f:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0800580, sizeInBytes=414720)
    @0x0db3a366:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0db3a3a6:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0865980, sizeInBytes=207360)
    @0x0db3a4cf:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0db3a50e:[T:0xe0000424] OM - Memory_cacheInv> Enter(addr=0xe0898380, sizeInBytes=207360)
    @0x0db3a634:[T:0xe0000424] OM - Memory_cacheInv> return
    @0x0db80c36:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0800580, sizeInBytes=414720)
    @0x0db80eaf:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0db80ede:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f5fe00, sizeInBytes=103680)
    @0x0db81038:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0db81078:[T:0xe0000424] OM - Memory_cacheWb> Enter(addr=0xe0f79300, sizeInBytes=103680)
    @0x0db81130:[T:0xe0000424] OM - Memory_cacheWb> return
    @0x0db81172:[T:0xe0000424] ti.sdo.ce.video.VIDENC - VIDENC_process> Enter (handle=0xe0f92858, inBufs=0xe08000b0, outBufs=0xe0800140, inArgs=0xe08001d4, outArgs=0xe08001d8)
    @0x0db81201:[T:0xe0000424] CV - VISA_enter(visa=0xe0f92858): algHandle = 0xe0f92878
    @0x0db8125d:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> Enter(handle=0xe0f92878)
    @0x0db812b4:[T:0xe0000424] ti.sdo.ce.osal.AlgMem - AlgMem_activate> return

    Then, the program will die, and I stop running using CCS.

    The program stops at the  assemble  "BNOP.S1 C$L1 (PC+8 = 0xe400ee28),5".

    And I config the MEMORY according to the datasheet of DM647.

    It is the Memory error? or Cache error? or CPU is waiting for some event? or I did the wrong configure in DSP/BIOS? Or It is a error on CODE ENGINE? Or It is a silicon bug?

    What can I do to solve or avoid this situation?

    What should I do? Is there anybody here help me?

    I am looking forward to your help!

  • The CCS version is 3.3.82

    The DSP/BIOS version is 5.31.02.08

    The simulator is XDS560PLUS

    The DVSDK version is DSP/BIOS based Davinci DVSDK 1.11.00.00(DM648)

    The CODE ENGINE version is 1.20.02

    L2SRAM 0x00a30000 len 0x00010000;

    IRAM 0x00a00000       len 0x00030000;

    L1D:  0x00f00000        len 0x00008000;

    LIP:    0x00e0000         len 0x00008000;