专栏中心

EEPW首页 > 专栏 > 关于bitfiled的

关于bitfiled的

发布人:0750long 时间:2010-02-01 来源:工程师 发布文章

 

  前些日在VC下的一段代码需要移植到PPC上,利用codewarrior作为编译器,该部分程序主要涉及到一些位操作,而在这个过程中遇到一些小问题——VC下位域的位置与codewarrior下设定正好相反,如下: 

union{
uint8 bytes;
struct{
uint8 bit1 : 1; -- lsb in vc++6.0 & msb in cw for MPC55xx
...
uint8 bit7 : 1; -- msb in vc++6.0 & lsb in cw for MPC55xx }bits;
}Byte_tag;
  小查了下资料:
  cw for X12下位域以byte为单位分配,高于byte以每16位进行安排,最高32bits,每16位位序从上至下为msb->lsb
 
  对比cw for MPC55xx下,默认情况下16位、32位均为msb->lsb安排,另外位域可以通过“#pragma has8bytebitfields on”选项扩展到64bits;可以利用“#pragma reverse_bitfields on”将位序进行反转(ms X12下没有这个选项)。
  
  ms有些规律,至少和大小端、CPU总线位数感觉还是有点关系的,不过,对于“位域”操作,位域在存储的位置与编译器是相关,如果应用对于位域在字节/字中的位置敏感的话,那么这样的程序在移植的过程中可能会遇到麻烦,这样反而利用宏定义来完成“位”的操作显得实惠得多。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

模拟电子技术 第四讲

视频 2010-01-20

国产高精度、高速率ADC芯片,正在崛起

模拟技术 2025-10-27

面向先进处理解决方案的低压大电流设计

应用工程师

e11en 2005-04-14

芯科科技Works With开发者大会深圳站成功举办 展示全球AIoT先进科技与协同创新

模拟电子技术 第五讲

视频 2010-01-20

模拟电子技术 第六讲

视频 2010-01-20

IDT7007高速双端口RAM及其应用

先进开发工具赋能国产车规级MCU在新能源汽车动力系统落地

iButton信息纽扣的介绍

HV9910的应用

资源下载 2007-02-16

淼森波×泰克科技联合实验室正式揭牌

测试测量 2025-10-27

赋能边缘人工智能:2025贸泽与你大咖说即将重磅启幕

IDC发布2026全球IT行业十大预测:塑造未来IT领导力的三大力量

HI-FI必读

意法半导体半桥栅极驱动器简化低压系统中的GaN电路设计

人形机器人,带火这些国产芯片

机器人 2025-10-27

模拟电子技术 第八讲

视频 2010-01-20

模拟电子技术 第七讲

视频 2010-01-20

HT47R20A-1中AorD 轉換的使用介紹

半导体靶材,如何左右7nm以下制程?

EDA/PCB 2025-10-27
更多 培训课堂
更多 焦点
更多 视频

技术专区