- 杂志
 论坛 » ARM开发 » RE: 关于arm定义结构体变量的问题
 RE: 关于arm定义结构体变量的问题  发表于 2008-05-12 09:23:03
呢称:snowingfish
加我为好友

好的,结构体变量定义如下:
typedef struct  /* SPC3的1.5KRAM空间定义 */
 {
/*******************************************
   处理器参数区(详细情况可以参见SPC3手册)
********************************************/
  union
  {
   uint w;
   uchar b[2];
  } int_req; /* 0x00-0x01:中断请求寄存器 */
  union
  {
   union
   {
    ulong w;
    uchar b[2];
   } com; /* 中断寄存器(可读) */
   union
   {
    ulong w;
    uchar b[2];
   } ack; /* 中断接受寄存器(可写) */
  } int_reg; /* 0x02-0x03:中断寄存器 */
  union
  {
   ulong  mask;  /* 中断屏蔽寄存器(可写) */
   uchar status[2]; /* 状态寄存器(可读) */
  } is_reg; /* 0x04-0x05:中断屏蔽寄存器和状态寄存器 */
  ulong  mode_reg0; /* 0x06-0x07:模式寄存器0 */
  union
  {
   struct
   {
    uchar din_buffer_sm;  /* 0x08 */
    uchar new_din_buf_cmd;  /* 0x09 */
    uchar dout_buffer_sm;  /* 0x0a */
    uchar next_dout_buf_cmd; /* 0x0b */
   } r; /* 可读 */
   struct
   {
    uchar mode_reg1_s;  /* 0x08 */
    uchar mode_reg1_r;  /* 0x09 */
    uchar wd_baud_ctrl_val;  /* 0x0a */
    uchar mintsdr_val;  /* 0x0b */
   } w; /* 可写 */
  } x1; /* 0x08-0x0b:可设置参数读写单元 */
  uchar diag_buffer_sm;  /* 0x0c */
  uchar new_diag_buffer_cmd; /* 0x0d */
  uchar user_prm_data_ok;  /* 0x0e */
  uchar user_prm_data_nok; /* 0x0f */
  uchar user_cfg_data_ok;  /* 0x10 */
  uchar user_cfg_data_nok; /* 0x11 */
  uchar user_ddb_prm_data_ok; /* 0x12 */
  uchar user_ddb_prm_data_nok; /* 0x13 */
  uchar ssa_buffer_free_cmd; /* 0x14 */
  uchar reserved_15;  /* 0x15 */
/***********************************************
  组织参数区
***********************************************/
  uchar r_ts_adr;   /* 0x16 */
  uchar r_fdl_sap_list_ptr; /* 0x17 */
  ulong r_user_wd_value;  /* 0x18 */
  uchar r_len_dout_buf;  /* 0x1a */
  uchar r_dout_buf_ptr[3]; /* 0x1b */
  uchar r_len_din_buf;  /* 0x1e */
  uchar r_din_buf_ptr[3];  /* 0x1f */
  uchar r_len_ddbout_buf;  /* 0x22 */
  uchar r_ddbout_buf_ptr;  /* 0x23 */
  uchar r_len_diag_buf[2]; /* 0x24 */
  uchar r_diag_buf_ptr[2]; /* 0x26 */
  uchar r_len_cntrl_buf[2]; /* 0x28 */
  uchar r_aux_buf_sel;  /* 0x2a */
  uchar r_aux_buf_ptr[2];  /* 0x2b */
  uchar r_len_ssa_buf;  /* 0x2d */
  uchar r_ssa_buf_ptr;  /* 0x2e */
  uchar r_len_prm_buf;  /* 0x2f */
  uchar r_prm_buf_ptr;  /* 0x30 */
  uchar r_len_cfg_buf;  /* 0x31 */
  uchar r_cfg_buf_ptr;  /* 0x32 */
  uchar r_len_read_cfg_buf; /* 0x33 */
  uchar r_read_cfg_buf_ptr; /* 0x34 */
  uchar r_len_ddb_prm_buf; /* 0x35 */
  uchar r_ddb_prm_buf_ptr; /* 0x36 */
  uchar r_score_exp;  /* 0x37 */
  uchar r_score_error;  /* 0x38 */
  uchar r_real_no_add_change; /* 0x39 */
  uchar r_ident_low;  /* 0x3a */
  uchar r_ident_high;  /* 0x3b */
  uchar r_gc_command;  /* 0x3c */
  uchar r_len_spec_prm_buf; /* 0x3d */
  uchar reserved_3e_3f[2]; /* 0x3e-0x3f */
/***************************************
  用户区
***************************************/
  uchar user[1472];  /* 0x40-:用户区 */
 } SPC3;
恳请大家帮忙给看看,谢谢!


关于我们 | 广告服务 | 企业会员服务 | 新手上路 | 联系我们 | 友情链接
《电子产品世界》杂志社 版权所有 北京东晓国际技术信息咨询有限公司
Copyright ©2002 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备060382号