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.

BCP little Endian 设置问题



使用BCP example的程序时,ccs设为big Endian模式,现在BCP的 RD 模块的输入用big endian对齐的输入是可以输出正确的RD结果,而且结果也是为big endian对齐的输出。但是LLR是按little endian得来的,请问怎样设置BCP的 RD 模块使得输入和输出都用little endian的格式?谢谢了!

  • BCP全部是按照小端工作,但是BCP根据配置的寄存器可以自动转换端点模式来适配大端数据。

    还请楼主仔细阅读下BCP的User Guide,里面提到了如何配置输入数据的格式和输出数据的格式。如果有问题可以继续交流。

    在bcp user guider的3.3章节,3.3 Data Reformatting and Endian Conversion

  • 谢谢提醒。3.3章节提到的了数据转换,但我的意思是直接设置BCP寄存器,这样就不用进行数据转换了,怎样才能设置呢?

    要求如下:

    1.  得到的解扰输出是这样的(按字节排列):

            1  2  3  4  5  6  7  8  9  10  11  12.....

    2.  为了RD把 上述数据格式为:

            4  3  2  1  8  7  6  5  12  11  10   9.....

    3.  RD 输出字节顺序为:

           4  3  2  1  8  7  6  5  12  11  10   9.....

    4.  对输出进行格式:

           1  2  3  4  5  6  7  8  9  10  11  12.....

    现在通过1-4是可以完成工作,现在就是希望省去2 和 4 的格式化,直接通过下面的1,2使用RD:

    1.  得到的解扰输出是这样的(按字节排列),作为RD输入:

            1  2  3  4  5  6  7  8  9  10  11  12.....

    3.  RD 输出字节顺序为:

           1  2  3  4  5  6  7  8  9  10  11  12.....


  • LLR输出是小端,直接让RD工作在小端模式就ok呀,为何你上述讲到将CCS工程设置为大端呢?我觉得不需要进行转换,在小端模式下BCP会认为内存中的数据1 2 3 4对应总线上就是MSB4 3 2 1LSB

    在大端模式下BCP的格式转换可以通过设置flow table的endian_in/out及format_in/out,具体请看TM一节。

  • BCP user guide上endian_in/out只有

    0 = 128 bit words
    1 = 32 bit words
    2 = 16 bit words
    3 = 8 bit words

    这几个选项,没有明确的大小端设置。

    请问,如果DSP工作在大端模式,那么RD 的endian_in/out设置为3 = 8 bit words,format_in/out设置为0 = No Change,是不是这个时候RD就相当于输入输出都是小端模式了。这样可以完成如下功能吗?谢谢!

    1.  得到的解扰输出是这样的(按字节排列),作为RD输入:

            1  2  3  4  5  6  7  8  9  10  11  12.....

    3.  RD 输出字节顺序为:

           1  2  3  4  5  6  7  8  9  10  11  12.....

  • 格式转换只会在大端模式下起作用,如果在大端下设置8bit模式下,则会以字节为单位转换,像你说的那样输入输出与小端类似,你可以在板卡上实测理解。