器件型号:BEAGLEBN
工具/软件:TI C/C++编译器
您好!
根据 SPRUHV7A 文档的第6.4.1.1节"寄存器中传递的参数布局"、大小为64位或更小的结构在寄存器中传递。
但是、对于 此 C 代码段、使用 clpru 版本 v2.1.5:
struct S7{char a[7];}; char test_struct_pass (struct S7 s) { 返回 s.a[2]; }
我得到以下汇编:
|test_struct_pass |: ;*---------------------------------------------- * 子部分 R2、R2、0x02 ;[ALU_PRU] SBBO R13.B2、R2、0、2 ;[ALU_PRU] LBBO &R13.B2、R2、2、7 ;[ALU_PRU]|10| s、s LBBO R13.B2、R2、0、2 ;[ALU_PRU] 添加 R2、R2、0x02 ;[ALU_PRU] JMP r3.w2. ;[ALU_PRU]
我阅读文档的方式是、我希望生成以下代码:
|test_struct_pass |: ;*---------------------------------------------- * MOV R14.b0、R14.B2 JMP r3.w2. ;[ALU_PRU]
如果确认上述差异、TI 将更新哪些文档或工具链?
谢谢、
Dimitar