打印
[开发工具]

MDK 中支持位变量的声明吗?

[复制链接]
1849|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
806849108|  楼主 | 2013-10-11 14:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
union SYS_FLAG_UNION
{
uint32_t flag;
struct
{
  a :1,
    b:1,
    c :1,
    d :1,
    e :1,
   f:1,
    g:1,
    h:1,
};
}; 这种变量 在MDK中声明  编译时发现好多位域没有定义? 请问下家怎么解决?
沙发
airwill| | 2013-10-11 14:20 | 只看该作者
给你一个参考吧, 这是库里的定义 (core_cm0.h)

  struct
  {
    uint32_t nPRIV:1;                    /*!< bit:      0  Execution privilege in Thread mode */
    uint32_t SPSEL:1;                    /*!< bit:      1  Stack to be used                   */
    uint32_t FPCA:1;                     /*!< bit:      2  FP extension active flag           */
    uint32_t _reserved0:29;              /*!< bit:  3..31  Reserved                           */
  } b;                                   /*!< Structure used for bit  access                  */

使用特权

评论回复
板凳
李富贵| | 2013-10-11 15:05 | 只看该作者
m3可以用bit-band,比你现在的做法要快。m0不支持就只能用位域了。

使用特权

评论回复
地板
zeluo| | 2013-10-11 20:18 | 只看该作者
还是版主给力   谢谢了  版主   好人

使用特权

评论回复
5
拿起书本| | 2013-10-11 22:02 | 只看该作者
呵呵,M0比M3小,当然性能要稍低一些了。

使用特权

评论回复
6
airwill| | 2013-10-12 10:15 | 只看该作者
bitband 也是可以用这种方式定义的, 看 Keil 的编译手册:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

120

帖子

0

粉丝