mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-01-15 06:19:22 +08:00
f51bce3fed
We currently only support building with CCS and SCons is not using. bsp/rm48x50/HALCoGen/HALCoGen.{hcg,dil} is the HALCoGen project file. You may need to regenerate the source file as you like, providing that: 1, IRQ is in Dispatch Mode and the table entry is IRQ_Handler. The channel 5 in enabled and connected to IRQ. 2, RTI driver is enabled and compare3 source is selected to counter1 and the compare3 will generate tick in the period of 10ms. This value is coresponding with RT_TICK_PER_SECOND in rtconfig.h. In CCS, you need to create a new CCS project and create link folders pointing at bsp/rm48x50, libcpu/arm/rm48x50 and src/, include/. Remember to add the include path to the Build Properties.
2428 lines
62 KiB
C
2428 lines
62 KiB
C
/** @file std_nhet.h
|
||
* @brief NHET Instruction Definition File
|
||
* @date 23.May.2013
|
||
* @version 03.05.01
|
||
*
|
||
* (c) Texas Instruments 2009-2013, All rights reserved.
|
||
*/
|
||
|
||
#ifndef __STD_NHET_H__
|
||
#define __STD_NHET_H__
|
||
|
||
#include "sys_common.h"
|
||
|
||
#if defined(_TMS470_BIG) || defined(__big_endian__)
|
||
|
||
#ifndef HET_v2
|
||
# define HET_v2 0
|
||
#endif
|
||
|
||
#ifndef HETBYTE
|
||
# define HETBYTE uint8
|
||
#endif
|
||
|
||
typedef struct memory_format
|
||
{
|
||
uint32 program_word ;
|
||
uint32 control_word ;
|
||
uint32 data_word ;
|
||
uint32 reserved_word ;
|
||
} HET_MEMORY ;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ACMP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct acmp_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 coutprv : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 ext_reg : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} ACMP_FIELDS;
|
||
|
||
typedef union
|
||
{
|
||
ACMP_FIELDS acmp ;
|
||
HET_MEMORY memory ;
|
||
} ACMP_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ECMP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct ecmp_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 hr_lr : 1 ;
|
||
uint32 angle_compare : 1 ;
|
||
uint32 : 7 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 sub_opcode : 2 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} ECMP_FIELDS;
|
||
|
||
typedef union
|
||
{
|
||
ECMP_FIELDS ecmp ;
|
||
HET_MEMORY memory ;
|
||
} ECMP_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* SCMP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct scmp_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 2 ;
|
||
uint32 : 2 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 coutprv : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 compare_mode : 2 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 restart_en : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} SCMP_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
SCMP_FIELDS scmp ;
|
||
HET_MEMORY memory ;
|
||
} SCMP_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* MCMP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct mcmp_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 hr_lr : 1 ;
|
||
uint32 angle_compare : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 save_subtract : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 sub_opcode : 1 ;
|
||
uint32 order : 1 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} MCMP_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
MCMP_FIELDS mcmp ;
|
||
HET_MEMORY memory ;
|
||
} MCMP_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* MOV64 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct mov64_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 compare_mode : 2 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} MOV64_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
MOV64_FIELDS mov64 ;
|
||
HET_MEMORY memory ;
|
||
} MOV64_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* DADM64 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct dadm64_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 compare_mode : 2 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} DADM64_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
DADM64_FIELDS dadm64 ;
|
||
HET_MEMORY memory ;
|
||
} DADM64_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* RADM64 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct RADM64_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 compare_mode : 2 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} RADM64_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
RADM64_FIELDS radm64 ;
|
||
HET_MEMORY memory ;
|
||
} RADM64_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* MOV32 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct MOV32_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 z_flag : 1 ;
|
||
uint32 : 15 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode : 1 ;
|
||
uint32 move_type : 2 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} MOV32_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
MOV32_FIELDS mov32 ;
|
||
HET_MEMORY memory ;
|
||
} MOV32_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ADM32 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct ADM32_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 19 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode : 1 ;
|
||
uint32 move_type : 2 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} ADM32_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
ADM32_FIELDS adm32 ;
|
||
HET_MEMORY memory ;
|
||
} ADM32_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ADCNST INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct ADCNST_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 control : 1 ; /* pk */
|
||
uint32 : 1 ;
|
||
uint32 constant : 25 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} ADCNST_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
ADCNST_FIELDS adcnst ;
|
||
HET_MEMORY memory ;
|
||
} ADCNST_INSTRUCTION;
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* ADD INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct ADD_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 control : 1;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 reg : 2 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} ADD_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
ADD_FIELDS add ;
|
||
HET_MEMORY memory ;
|
||
} ADD_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* ADC INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct ADC_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 control : 1;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 reg : 2 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} ADC_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
ADC_FIELDS adc ;
|
||
HET_MEMORY memory ;
|
||
} ADC_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* SUB INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct SUB_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 control : 1;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 reg : 2 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} SUB_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
SUB_FIELDS sub ;
|
||
HET_MEMORY memory ;
|
||
} SUB_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* SBB INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct SBB_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 control : 1;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 reg : 2 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} SBB_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
SBB_FIELDS sbb ;
|
||
HET_MEMORY memory ;
|
||
} SBB_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* AND INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct AND_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 control : 1;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 reg : 2 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} AND_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
AND_FIELDS and ;
|
||
HET_MEMORY memory ;
|
||
} AND_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* OR INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
|
||
typedef struct OR_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 control : 1;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 reg : 2 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} OR_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
OR_FIELDS or ;
|
||
HET_MEMORY memory ;
|
||
} OR_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* XOR INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct XOR_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 remote_address : 9 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 control : 1;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 reg : 2 ;
|
||
uint32 : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} XOR_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
XOR_FIELDS xor ;
|
||
HET_MEMORY memory ;
|
||
} XOR_INSTRUCTION;
|
||
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* CNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct CNT_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 angle_cnt : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 : 4 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 max : 25 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} CNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
CNT_FIELDS cnt ;
|
||
HET_MEMORY memory ;
|
||
} CNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* APCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct apcnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 edge_select : 2 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 count : 25 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} APCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
APCNT_FIELDS apcnt ;
|
||
HET_MEMORY memory ;
|
||
} APCNT_INSTRUCTION;
|
||
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* PCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct pcnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 period_pulse_select : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 count : 25 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} PCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
PCNT_FIELDS pcnt ;
|
||
HET_MEMORY memory ;
|
||
} PCNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* SCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct scnt_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 1 ;
|
||
uint32 count_mode : 2 ;
|
||
uint32 step_width : 2 ;
|
||
uint32 : 4 ;
|
||
|
||
uint32 : 5 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 gap_start : 25 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} SCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
SCNT_FIELDS scnt ;
|
||
HET_MEMORY memory ;
|
||
} SCNT_INSTRUCTION;
|
||
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ACNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct acnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 edge_select : 1 ;
|
||
uint32 : 7 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 gap_end : 25 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} ACNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
ACNT_FIELDS acnt ;
|
||
HET_MEMORY memory ;
|
||
} ACNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ECNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct ecnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 1 ;
|
||
uint32 count_mode : 2 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 count_cond : 3 ;
|
||
uint32 : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} ECNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
ECNT_FIELDS ecnt ;
|
||
HET_MEMORY memory ;
|
||
} ECNT_INSTRUCTION;
|
||
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* RCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct rcnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 1 ;
|
||
uint32 count_mode : 2 ;
|
||
uint32 : 5 ;
|
||
uint32 count_mode1 : 1 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 : 2 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 divisor : 25 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} RCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
RCNT_FIELDS rcnt ;
|
||
HET_MEMORY memory ;
|
||
} RCNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* DJNZ INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct djnz_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 1 ;
|
||
uint32 sub_opcode : 2 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 4 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 : 10 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} DJNZ_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
DJNZ_FIELDS djnz ;
|
||
HET_MEMORY memory ;
|
||
} DJNZ_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* DJZ INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct djz_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 1 ;
|
||
uint32 sub_opcode : 2 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 4 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 : 10 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} DJZ_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
DJZ_FIELDS djz ;
|
||
HET_MEMORY memory ;
|
||
} DJZ_INSTRUCTION;
|
||
|
||
/*---------------------------------------------*/
|
||
/* PWCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct pwcnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 hr_lr : 1 ;
|
||
uint32 count_mode : 2 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 3 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} PWCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
PWCNT_FIELDS pwcnt ;
|
||
HET_MEMORY memory ;
|
||
} PWCNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* WCAP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct wcap_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 hr_lr : 1 ;
|
||
uint32 : 8 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 capture_condition : 2 ;
|
||
uint32 : 2 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} WCAP_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
WCAP_FIELDS wcap ;
|
||
HET_MEMORY memory ;
|
||
} WCAP_INSTRUCTION;
|
||
|
||
/*----------------------------------------------*/
|
||
/* WCAPE INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
typedef struct wcape_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 capture_condition : 2 ;
|
||
uint32 : 2 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 ts_data : 25 ;
|
||
uint32 ec_data : 7 ;
|
||
|
||
} WCAPE_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
WCAPE_FIELDS wcape ;
|
||
HET_MEMORY memory ;
|
||
} WCAPE_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* BR INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct br_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
|
||
#if HET_v2
|
||
uint32 branch_condition : 5 ;
|
||
#else
|
||
uint32 branch_condition : 3 ;
|
||
uint32 : 1 ;
|
||
uint32 : 1 ;
|
||
#endif
|
||
|
||
uint32 : 2 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 hr_data : 7 ;
|
||
|
||
} BR_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
BR_FIELDS br ;
|
||
HET_MEMORY memory ;
|
||
} BR_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* SHFT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct shft_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 brk : 1 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 : 5 ;
|
||
uint32 shift_mode : 4 ;
|
||
|
||
uint32 : 3 ;
|
||
uint32 request : 2 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 shift_condition : 2 ;
|
||
uint32 : 2 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
|
||
|
||
uint32 data : 25 ;
|
||
uint32 : 7 ;
|
||
|
||
} SHFT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
SHFT_FIELDS shft ;
|
||
HET_MEMORY memory ;
|
||
} SHFT_INSTRUCTION;
|
||
|
||
/* ---------------------------------------------------------------------------------------------------- */
|
||
|
||
#elif defined(_TMS470_LITTLE) || defined(__little_endian__)
|
||
|
||
#ifndef HETBYTE
|
||
# define HETBYTE uint8
|
||
#endif
|
||
|
||
typedef struct memory_format
|
||
{
|
||
uint32 program_word ;
|
||
uint32 control_word ;
|
||
uint32 data_word ;
|
||
uint32 reserved_word ;
|
||
} HET_MEMORY ;
|
||
|
||
/*---------------------------------------------*/
|
||
/* ACMP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct acmp_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 coutprv : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} ACMP_FIELDS;
|
||
|
||
typedef union
|
||
{
|
||
ACMP_FIELDS acmp ;
|
||
HET_MEMORY memory ;
|
||
} ACMP_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ECMP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct ecmp_format
|
||
{
|
||
uint32 : 7 ;
|
||
uint32 angle_compare : 1 ;
|
||
uint32 hr_lr : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 sub_opcode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} ECMP_FIELDS;
|
||
|
||
typedef union
|
||
{
|
||
ECMP_FIELDS ecmp ;
|
||
HET_MEMORY memory ;
|
||
} ECMP_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* SCMP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct scmp_format
|
||
{
|
||
uint32 : 5 ;
|
||
uint32 : 2 ;
|
||
uint32 : 2 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 restart_en : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 compare_mode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 coutprv : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} SCMP_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
SCMP_FIELDS scmp ;
|
||
HET_MEMORY memory ;
|
||
} SCMP_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* MCMP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct mcmp_format
|
||
{
|
||
uint32 : 5 ;
|
||
uint32 save_subtract : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 angle_compare : 1 ;
|
||
uint32 hr_lr : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 order : 1 ;
|
||
uint32 sub_opcode : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} MCMP_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
MCMP_FIELDS mcmp ;
|
||
HET_MEMORY memory ;
|
||
} MCMP_INSTRUCTION;
|
||
|
||
/*---------------------------------------------*/
|
||
/* MOV64 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct mov64_format
|
||
{
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 compare_mode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} MOV64_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
MOV64_FIELDS mov64 ;
|
||
HET_MEMORY memory ;
|
||
} MOV64_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* DADM64 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct dadm64_format
|
||
{
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 compare_mode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} DADM64_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
DADM64_FIELDS dadm64 ;
|
||
HET_MEMORY memory ;
|
||
} DADM64_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* RADM64 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct RADM64_format
|
||
{
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 compare_mode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} RADM64_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
RADM64_FIELDS radm64 ;
|
||
HET_MEMORY memory ;
|
||
} RADM64_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* MOV32 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct MOV32_format
|
||
{
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 move_type : 2 ;
|
||
uint32 sub_opcode : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 : 15 ;
|
||
uint32 z_flag : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} MOV32_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
MOV32_FIELDS mov32 ;
|
||
HET_MEMORY memory ;
|
||
} MOV32_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ADM32 INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct ADM32_format
|
||
{
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 move_type : 2 ;
|
||
uint32 sub_opcode : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 : 19 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} ADM32_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
ADM32_FIELDS adm32 ;
|
||
HET_MEMORY memory ;
|
||
} ADM32_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ADCNST INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct ADCNST_format
|
||
{
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 constant : 25 ;
|
||
uint32 : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} ADCNST_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
ADCNST_FIELDS adcnst ;
|
||
HET_MEMORY memory ;
|
||
} ADCNST_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* ADD INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
typedef struct ADD_format
|
||
{
|
||
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 reg : 2 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} ADD_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
ADD_FIELDS add ;
|
||
HET_MEMORY memory ;
|
||
} ADD_INSTRUCTION;
|
||
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* ADC INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
|
||
typedef struct ADC_format
|
||
{
|
||
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 reg : 2 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} ADC_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
ADC_FIELDS adc ;
|
||
HET_MEMORY memory ;
|
||
} ADC_INSTRUCTION;
|
||
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* SUB INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct SUB_format
|
||
{
|
||
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 reg : 2 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} SUB_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
SUB_FIELDS sub ;
|
||
HET_MEMORY memory ;
|
||
} SUB_INSTRUCTION;
|
||
|
||
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* SBB INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct SBB_format
|
||
{
|
||
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 reg : 2 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} SBB_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
SBB_FIELDS sbb ;
|
||
HET_MEMORY memory ;
|
||
} SBB_INSTRUCTION;
|
||
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* AND INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct AND_format
|
||
{
|
||
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 reg : 2 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} AND_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
AND_FIELDS and ;
|
||
HET_MEMORY memory ;
|
||
} AND_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* OR INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct OR_format
|
||
{
|
||
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 reg : 2 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} OR_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
OR_FIELDS or ;
|
||
HET_MEMORY memory ;
|
||
} OR_INSTRUCTION;
|
||
|
||
|
||
|
||
/*----------------------------------------------*/
|
||
/* XOR INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
|
||
typedef struct XOR_format
|
||
{
|
||
|
||
uint32 remote_address : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 : 1 ;
|
||
uint32 reg : 2 ;
|
||
uint32 rem_dest : 2 ;
|
||
uint32 sub_opcode1 : 1 ;
|
||
uint32 init_flag : 1 ;
|
||
uint32 reg_ext : 1 ;
|
||
uint32 shft_cnt : 5 ;
|
||
uint32 shft_mode : 3 ;
|
||
uint32 src_2 : 3 ;
|
||
uint32 src_1 : 4 ;
|
||
uint32 sub_opcode3 : 3 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} XOR_FIELDS ;
|
||
|
||
|
||
typedef union
|
||
{
|
||
XOR_FIELDS xor ;
|
||
HET_MEMORY memory ;
|
||
} XOR_INSTRUCTION;
|
||
|
||
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* CNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct CNT_format
|
||
{
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 : 4 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 angle_cnt : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 max : 25 ;
|
||
uint32 : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} CNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
CNT_FIELDS cnt ;
|
||
HET_MEMORY memory ;
|
||
} CNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* APCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct apcnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 edge_select : 2 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 count : 25 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} APCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
APCNT_FIELDS apcnt ;
|
||
HET_MEMORY memory ;
|
||
} APCNT_INSTRUCTION;
|
||
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* PCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct pcnt_format
|
||
{
|
||
uint32 pin_select : 5 ;
|
||
uint32 : 1 ;
|
||
uint32 period_pulse_select : 2 ;
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 count : 25 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} PCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
PCNT_FIELDS pcnt ;
|
||
HET_MEMORY memory ;
|
||
} PCNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* SCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct scnt_format
|
||
{
|
||
uint32 : 4 ;
|
||
uint32 step_width : 2 ;
|
||
uint32 count_mode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 : 9 ;
|
||
|
||
uint32 gap_start : 25 ;
|
||
uint32 : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 : 5 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} SCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
SCNT_FIELDS scnt ;
|
||
HET_MEMORY memory ;
|
||
} SCNT_INSTRUCTION;
|
||
|
||
/*---------------------------------------------*/
|
||
/* ACNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct acnt_format
|
||
{
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 : 7 ;
|
||
uint32 edge_select : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 gap_end : 25 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} ACNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
ACNT_FIELDS acnt ;
|
||
HET_MEMORY memory ;
|
||
} ACNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* ECNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct ecnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 count_mode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 count_cond : 3 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 : 3 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} ECNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
ECNT_FIELDS ecnt ;
|
||
HET_MEMORY memory ;
|
||
} ECNT_INSTRUCTION;
|
||
|
||
/*---------------------------------------------*/
|
||
/* RCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct rcnt_format
|
||
{
|
||
|
||
uint32 count_mode1 : 1 ;
|
||
uint32 : 5 ;
|
||
uint32 count_mode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
|
||
uint32 divisor : 25 ;
|
||
uint32 : 1 ;
|
||
uint32 control : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
|
||
} RCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
RCNT_FIELDS rcnt ;
|
||
HET_MEMORY memory ;
|
||
} RCNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* DJNZ INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct djnz_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 sub_opcode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 : 10 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 : 4 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} DJNZ_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
DJNZ_FIELDS djnz ;
|
||
HET_MEMORY memory ;
|
||
} DJNZ_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* DJZ INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct djz_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 sub_opcode : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 : 10 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 : 4 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} DJZ_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
DJZ_FIELDS djz ;
|
||
HET_MEMORY memory ;
|
||
} DJZ_INSTRUCTION;
|
||
|
||
/*---------------------------------------------*/
|
||
/* PWCNT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct pwcnt_format
|
||
{
|
||
uint32 : 6 ;
|
||
uint32 count_mode : 2 ;
|
||
uint32 hr_lr : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 opposite_action : 1 ;
|
||
uint32 pin_action : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 en_pin_action : 1 ;
|
||
uint32 : 3 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} PWCNT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
PWCNT_FIELDS pwcnt ;
|
||
HET_MEMORY memory ;
|
||
} PWCNT_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* WCAP INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct wcap_format
|
||
{
|
||
uint32 : 8 ;
|
||
uint32 hr_lr : 1 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 capture_condition : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 : 3 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} WCAP_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
WCAP_FIELDS wcap ;
|
||
HET_MEMORY memory ;
|
||
} WCAP_INSTRUCTION;
|
||
|
||
/*----------------------------------------------*/
|
||
/* WCAPE INSTRUCTION */
|
||
/*----------------------------------------------*/
|
||
typedef struct wcape_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 capture_condition : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 ec_data : 7 ;
|
||
uint32 ts_data : 25 ;
|
||
|
||
} WCAPE_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
WCAPE_FIELDS wcape ;
|
||
HET_MEMORY memory ;
|
||
} WCAPE_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* BR INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct br_format
|
||
{
|
||
uint32 : 9 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 : 1 ;
|
||
uint32 branch_condition : 3 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 : 3 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 hr_data : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} BR_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
BR_FIELDS br ;
|
||
HET_MEMORY memory ;
|
||
} BR_INSTRUCTION;
|
||
|
||
|
||
/*---------------------------------------------*/
|
||
/* SHFT INSTRUCTION */
|
||
/*---------------------------------------------*/
|
||
typedef struct shft_format
|
||
{
|
||
uint32 shift_mode : 4 ;
|
||
uint32 : 5 ;
|
||
uint32 op_code : 4 ;
|
||
uint32 next_program_address : 9 ;
|
||
uint32 brk : 1 ;
|
||
uint32 reqnum : 3 ;
|
||
uint32 : 6 ;
|
||
|
||
uint32 interrupt_enable : 1 ;
|
||
uint32 ab_register_select : 1 ;
|
||
uint32 t_register_select : 1 ;
|
||
uint32 : 2 ;
|
||
uint32 shift_condition : 2 ;
|
||
uint32 : 1 ;
|
||
uint32 pin_select : 5 ;
|
||
uint32 cond_addr : 9 ;
|
||
uint32 : 3 ;
|
||
uint32 previous_bit : 1 ;
|
||
uint32 auto_read_clear : 1 ;
|
||
uint32 request : 2 ;
|
||
uint32 : 3 ;
|
||
|
||
uint32 : 7 ;
|
||
uint32 data : 25 ;
|
||
|
||
} SHFT_FIELDS ;
|
||
|
||
typedef union
|
||
{
|
||
SHFT_FIELDS shft ;
|
||
HET_MEMORY memory ;
|
||
} SHFT_INSTRUCTION;
|
||
|
||
#endif
|
||
|
||
#endif
|
||
/*--------------------------- End Of File ----------------------------------*/
|