使用BCP example的程序时,ccs设为big Endian模式,现在BCP的 RD 模块的输入用big endian对齐的输入是可以输出正确的RD结果,而且结果也是为big endian对齐的输出。但是LLR是按little endian得来的,请问怎样设置BCP的 RD 模块使得输入和输出都用little endian的格式?谢谢了!
King Wang1:
BCP全部是按照小端工作,但是BCP根据配置的寄存器可以自动转换端点模式来适配大端数据。
还请楼主仔细阅读下BCP的User Guide,里面提到了如何配置输入数据的格式和输出数据的格式。如果有问题可以继续交流。
在bcp user guider的3.3章节,3.3 Data Reformatting and Endian Conversion
John:
回复 King Wang1:
谢谢提醒。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…..
Andy Yin1:
回复 John:
LLR输出是小端,直接让RD工作在小端模式就ok呀,为何你上述讲到将CCS工程设置为大端呢?我觉得不需要进行转换,在小端模式下BCP会认为内存中的数据1 2 3 4对应总线上就是MSB4 3 2 1LSB
在大端模式下BCP的格式转换可以通过设置flow table的endian_in/out及format_in/out,具体请看TM一节。
John:
回复 Andy Yin1:
BCP user guide上endian_in/out只有
0 = 128 bit words1 = 32 bit words2 = 16 bit words3 = 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…..