std_het.h

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C头文件 代码 · 共 783 行 · 第 1/2 页

H
783
字号
/****************************************************************************/
/* std_het.h TMS470HET  Release 1.40                                        */
/* Copyright (c) 1996,1997  Texas Instruments Incorporated                  */
/*                                                                          */
/* NOTE: HET memory allows word (32 bit) accesses only ! So be careful      */
/*       with using the bit field structures (like acmp_format ...)         */
/*                                                                          */
/****************************************************************************/


#ifndef HETBYTE
#   define HETBYTE unsigned char
#endif

typedef volatile struct memory_format
{
  unsigned int program_word  ;
  unsigned int control_word  ;
  unsigned int data_word     ;
  unsigned int reserved_word ;
} HET_MEMORY  ;



/*---------------------------------------------*/
/* ACMP INSTRUCTION                            */
/*---------------------------------------------*/
typedef volatile struct acmp_format
{
  unsigned int                      : 11 ;
  unsigned int brk                  : 1 ;
  unsigned int next_program_address : 8 ;
  unsigned int op_code              : 4 ;
  unsigned int                      : 3 ;
  unsigned int                      : 5 ;
 
  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;  /**/
  unsigned int en_pin_action        : 1 ;
  unsigned int cond_addr            : 8 ;
  unsigned int pin_select           : 5 ;
  unsigned int                      : 2 ; 
  unsigned int pin_action           : 1 ;
  unsigned int                      : 1 ;
  unsigned int t_register_select    : 1 ;
  unsigned int ab_register_select   : 1 ;
  unsigned int interrupt_enable     : 1 ;
 
  unsigned int                      : 7 ;
  unsigned int data                 : 20 ;
  unsigned int                      : 5 ;
 
} ACMP_FIELDS;
 
typedef volatile union
{
  ACMP_FIELDS  acmp   ;
  HET_MEMORY   memory ;
} ACMP_INSTRUCTION;


/*---------------------------------------------*/
/* ECMP INSTRUCTION                            */
/*---------------------------------------------*/
typedef volatile struct ecmp_format   
{
  unsigned int                      : 11 ;          
  unsigned int brk                  : 1 ;          
  unsigned int next_program_address : 8 ;          
  unsigned int op_code              : 4 ;
  unsigned int hr_lr                : 1 ;
  unsigned int angle_compare        : 1 ;
  unsigned int                      : 6 ;

  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;
  unsigned int en_pin_action        : 1 ;
  unsigned int cond_addr            : 8 ;
  unsigned int pin_select           : 5 ;
  unsigned int sub_opcode           : 2 ;
  unsigned int pin_action           : 1 ;
  unsigned int opposite_action      : 1 ;
  unsigned int t_register_select    : 1 ;
  unsigned int ab_register_select   : 1 ; 
  unsigned int interrupt_enable     : 1 ;

  unsigned int                      : 7 ;
  unsigned int data                 : 25 ;

/*TCJ*/
/*unsigned int hr_data              : 5 ;*/

} ECMP_FIELDS;

typedef volatile union 
{
  ECMP_FIELDS  ecmp   ;
  HET_MEMORY   memory ;
} ECMP_INSTRUCTION;


/*---------------------------------------------*/
/* SCMP INSTRUCTION                            */
/*---------------------------------------------*/
typedef volatile struct scmp_format     
{
  unsigned int                      : 11 ;          
  unsigned int brk                  : 1 ;          
  unsigned int next_program_address : 8 ;          
  unsigned int op_code              : 4 ;
  unsigned int                      : 1 ;
  unsigned int                      : 2 ;
  unsigned int                      : 5 ;

  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;
  unsigned int en_pin_action        : 1 ;
  unsigned int cond_addr            : 8 ;
  unsigned int pin_select           : 5 ;
  unsigned int compare_mode         : 2 ;
  unsigned int pin_action           : 1 ;
  unsigned int opposite_action      : 1 ;
  unsigned int                      : 1 ;
  unsigned int restart_en           : 1 ;
  unsigned int interrupt_enable     : 1 ;

  unsigned int                      : 7 ;
  unsigned int data                 : 20 ;
  unsigned int                      : 5 ;

} SCMP_FIELDS ;

typedef volatile union 
{
  SCMP_FIELDS  scmp   ;
  HET_MEMORY   memory ;
} SCMP_INSTRUCTION;


/*---------------------------------------------*/
/* MCMP INSTRUCTION                            */
/*---------------------------------------------*/
typedef volatile struct mcmp_format                     
{
  unsigned int                      : 11 ;
  unsigned int brk                  : 1 ;
  unsigned int next_program_address : 8 ;
  unsigned int op_code              : 4 ;
  unsigned int hr_lr                : 1 ;
  unsigned int angle_compare        : 1 ;
  unsigned int                      : 1 ;
  unsigned int save_subtract        : 1 ;
  unsigned int                      : 4 ;
 
  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;
  unsigned int en_pin_action        : 1 ;
  unsigned int cond_addr            : 8 ;
  unsigned int pin_select           : 5 ;
  unsigned int compare_mode         : 2 ;
  unsigned int pin_action           : 1 ;
  unsigned int opposite_action      : 1 ;
  unsigned int t_register_select    : 1 ;
  unsigned int ab_register_select   : 1 ;
  unsigned int interrupt_enable     : 1 ;
 
  unsigned int                      : 7 ;
  unsigned int data                 : 25 ;

/*TCJ*/
/*unsigned int hr_data              : 5 ;*/
 
} MCMP_FIELDS ; 

typedef volatile union 
{
  MCMP_FIELDS  mcmp   ;
  HET_MEMORY   memory ;
} MCMP_INSTRUCTION;

/*---------------------------------------------*/
/* MOV64 INSTRUCTION                           */
/*---------------------------------------------*/
typedef volatile struct mov64_format                     
{
  unsigned int                      : 11 ;
  unsigned int brk                  : 1 ;
  unsigned int next_program_address : 8 ;          
  unsigned int op_code              : 4 ;
  unsigned int remote_address       : 8 ;

  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;
  unsigned int en_pin_action        : 1 ;
  unsigned int cond_addr            : 8 ;
  unsigned int pin_select           : 5 ;
  unsigned int compare_mode         : 2 ;
  unsigned int pin_action           : 1 ;
  unsigned int opposite_action      : 1 ;
  unsigned int t_register_select    : 1 ;
  unsigned int ab_register_select   : 1 ;
  unsigned int interrupt_enable     : 1 ;
 
  unsigned int                      : 7 ;
  unsigned int data                 : 25 ;

/* TCJ */
/*unsigned int hr_data              : 5 ; */

} MOV64_FIELDS ; 

typedef volatile union 
{
  MOV64_FIELDS  mov64  ;
  HET_MEMORY    memory ;
} MOV64_INSTRUCTION;


/*---------------------------------------------*/
/* DADM64 INSTRUCTION                          */
/*---------------------------------------------*/
typedef volatile struct dadm64_format                     
{
  unsigned int                      : 11 ;
  unsigned int brk                  : 1 ;
  unsigned int next_program_address : 8 ;
  unsigned int op_code              : 4 ;
  unsigned int remote_address       : 8 ;
 
  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;
  unsigned int en_pin_action        : 1 ;
  unsigned int cond_addr            : 8 ;
  unsigned int pin_select           : 5 ;
  unsigned int compare_mode         : 2 ;
  unsigned int pin_action           : 1 ;
  unsigned int opposite_action      : 1 ;
  unsigned int t_register_select    : 1 ;
  unsigned int ab_register_select   : 1 ;
  unsigned int interrupt_enable     : 1 ;
 
  unsigned int                      : 7 ;
  unsigned int data                 : 25 ;

/*TCJ*/
/*unsigned int hr_data              : 5 ;*/
 
} DADM64_FIELDS ; 

typedef volatile union 
{
  DADM64_FIELDS  dadm64 ;
  HET_MEMORY     memory ;
} DADM64_INSTRUCTION;


/*---------------------------------------------*/
/* RADM64 INSTRUCTION                          */
/*---------------------------------------------*/
typedef volatile struct RADM64_format                     
{
  unsigned int                      : 11 ;
  unsigned int brk                  : 1 ;
  unsigned int next_program_address : 8 ;
  unsigned int op_code              : 4 ;
  unsigned int remote_address       : 8 ;
 
  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;
  unsigned int en_pin_action        : 1 ;
  unsigned int cond_addr            : 8 ;
  unsigned int pin_select           : 5 ;
  unsigned int compare_mode         : 2 ;
  unsigned int pin_action           : 1 ;
  unsigned int opposite_action      : 1 ;
  unsigned int t_register_select    : 1 ;
  unsigned int ab_register_select   : 1 ;
  unsigned int interrupt_enable     : 1 ;
 
  unsigned int                      : 7 ;
  unsigned int data                 : 25 ;

/*TCJ*/
/*unsigned int hr_data              : 5 ;*/
 
} RADM64_FIELDS ; 


typedef volatile union 
{
  RADM64_FIELDS  radm64 ;
  HET_MEMORY     memory ;
} RADM64_INSTRUCTION;


/*---------------------------------------------*/
/* MOV32 INSTRUCTION                           */
/*---------------------------------------------*/
typedef volatile struct MOV32_format                     
{
  unsigned int                      : 11 ;
  unsigned int brk                  : 1 ;
  unsigned int next_program_address : 8 ;
  unsigned int op_code              : 4 ;
  unsigned int remote_address       : 8 ;
 
  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;
  unsigned int                      : 14 ;
  unsigned int init_flag            : 1 ;
  unsigned int move_type            : 3 ;
  unsigned int t_register_select    : 1 ;
  unsigned int ab_register_select   : 1 ;
  unsigned int                      : 1 ;
 
  unsigned int                      : 7 ;
  unsigned int data                 : 25 ;

/*TCJ*/
/*unsigned int hr_data              : 5 ;*/
 
} MOV32_FIELDS ; 


typedef volatile union 
{
  MOV32_FIELDS  mov32  ;
  HET_MEMORY    memory ;
} MOV32_INSTRUCTION;


/*---------------------------------------------*/
/* ADM32 INSTRUCTION                           */
/*---------------------------------------------*/
typedef volatile struct ADM32_format                     
{
  unsigned int                      : 11 ;
  unsigned int brk                  : 1 ;
  unsigned int next_program_address : 8 ;
  unsigned int op_code              : 4 ;
  unsigned int remote_address       : 8 ;
 
  unsigned int                      : 10 ;
  unsigned int auto_read_clear      : 1 ;
  unsigned int                      : 14 ;
  unsigned int init_flag            : 1 ;
  unsigned int move_type            : 3 ;
  unsigned int t_register_select    : 1 ;
  unsigned int ab_register_select   : 1 ;
  unsigned int                      : 1 ;
 
  unsigned int                      : 7 ;
  unsigned int data                 : 25 ;

/*TCJ*/
/*unsigned int hr_data              : 5 ; */
 
} ADM32_FIELDS ; 


typedef volatile union 
{
  ADM32_FIELDS  adm32  ;
  HET_MEMORY    memory ;
} ADM32_INSTRUCTION;


/*---------------------------------------------*/
/* ADCNST INSTRUCTION                          */
/*---------------------------------------------*/
typedef volatile struct ADCNST_format                     
{
  unsigned int                      : 11 ;
  unsigned int brk                  : 1 ;
  unsigned int next_program_address : 8 ;
  unsigned int op_code              : 4 ;
  unsigned int remote_address       : 8 ;
 
  unsigned int                      : 11 ;
  unsigned int                      : 1 ;
  unsigned int const                : 20 ;
 
  unsigned int                      : 7 ;
  unsigned int data                 : 25 ;

/*TCJ*/
/*unsigned int hr_data              : 5 ;*/
 
} ADCNST_FIELDS ;


typedef volatile union 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?