公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

我正在尝试查看我是否 CAN 使用类似于 pack(1) 的东西在 1 字节边界中分配成员的结构 #pragma 但 CAN编译器指令中找不到帮助我这样做的东西。

 

TLDR:我想拥有与 #pragma pack (1) 相同的功能

 

谢谢 😄

0 点赞
2 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @User13836

 

你能帮忙吗?

 

最诚挚的问候,
Anupama。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

自 TASKING TriCore v6.3r1 以来,已经引入了与对齐相关的新关键字。 你 CAN 看看章节:

1.1.4. 更改对齐方式: __unaligned, __packed__ and __align()

TASK TriCore 工具用户指南。 这允许在字节边界上定位结构成员,因为编译器将始终发出字节访问指令,并且这些指令不受TriCore CPU对齐限制(例如需要偶数地址的单词访问)的影响。

但是请记住,如果您使用 packed,您将付出高性能损失和代码大小增加的代价。 例如,要访问打包数据类型的int类型变量或结构成员,编译器将发出四字节的访问指令,而不是使用一个单词访问指令,如果满足对齐要求,则可能使用单词访问指令。

 

appnote

对齐要求——TriCore 架构的限制

可在以下网址获得:

https://resources.tasking.com/tasking-whitepapers/alignment-requirements-restrictions-for-the-tricor...

可能也会有所帮助。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

 

0 点赞