This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Code optimization using ARM instruction

Note: This was originally posted on 11th August 2010 at http://forums.arm.com

Hi Friends,

I am currently working on a project to develop an emergency call application using 3gpp specification 26.267 (eCall standard).

For the same  using the Qualcom reference stack for eCall (3gpp 26.268). I am using micro controller having ARM9 processor with maximum processing power 104 MHz.

I am facing problem to optimize the Qualcom reference eCall stack code. I receive 320 bytes of PCM frame in every 20 ms. Ideally, I need to process that 320 bytes of data and reply back withing 20 ms to avoid data loss.
But in case distorted/corrupted data is received, 3gpp code goes for CRC check and retransmission. But because of my processor's limited capability, my application is not able to process the incoming PCM frames and reply back within 20 ms; requires 1 second to process the data and reply. Hence, I start loosing data.

I have tried to use ARM/THUMB instruction set and -O2 optimization level for the entire project. But didn't help much in case of CRC check.

Could anyone help me to solve this critical problem ?
Parents
  • Note: This was originally posted on 12th August 2010 at http://forums.arm.com

    I have tried to use ARM/THUMB instruction set and -O2 optimization level for the entire project. But didn't help much in case of CRC check.


    The first thing to do is identify what part of the code is taking the most time, using profiling tools or just reading a timer.  If you're sure it's the CRC computation then you should probably look for a more efficient algorithm to compute the CRC.

    Unless you find a big mistake it will probably be hard to get a 50:1 reduction.
Reply
  • Note: This was originally posted on 12th August 2010 at http://forums.arm.com

    I have tried to use ARM/THUMB instruction set and -O2 optimization level for the entire project. But didn't help much in case of CRC check.


    The first thing to do is identify what part of the code is taking the most time, using profiling tools or just reading a timer.  If you're sure it's the CRC computation then you should probably look for a more efficient algorithm to compute the CRC.

    Unless you find a big mistake it will probably be hard to get a 50:1 reduction.
Children
No data