stypedefs+=self.get_typedef32(comment="MULT_SAXI DMA addresses/lengths in 32-bit DWORDS",
data=self._enc_mult_saxi_addr(),
name="x393_mult_saxi_al",typ="rw",# some - wo, others - ro
frmt_spcs=frmt_spcs)
#
returnstypedefs
...
...
@@ -1009,6 +1026,38 @@ class X393ExportC(object):
(('_Interrupts and interrupt masks are controlled through channel CMDFRAMESEQ module',)),
(("X393_CMDSEQMUX_STATUS_CTRL","",vrlg.CMDSEQMUX_ADDR,0,None,"x393_status_ctrl","rw","CMDSEQMUX status control mode (status provides current frame numbers)")),
(("X393_CMDSEQMUX_STATUS","",vrlg.STATUS_ADDR+vrlg.CMDSEQMUX_STATUS,0,None,"x393_cmdseqmux_status","ro","CMDSEQMUX status data (frame numbers and interrupts"))]
sdefines+=[
(('Event logger',)),
(('_Event logger configuration/data is writtent to the module ising two 32-bit register locations : data and address.',)),
(('_Address consists of 2 parts - 2-bit page (configuration, imu, gps, message) and a 5-bit sub-address autoincremented when writing data.',)),
(("X393_LOGGER_STATUS","",vrlg.STATUS_ADDR+vrlg.LOGGER_STATUS_REG_ADDR,0,None,"x393_logger_status","ro","Logger status data (sequence number)"))]
#TODO: Add interrupt for the logger?
#MULT SAXI DMA engine control
ba=0
ia=0
c="chn"
sdefines+=[
(('MULT SAXI DMA engine control. Of 4 channels only one (number 0) is currently used - for the event logger',)),
(("X393_MULT_SAXI_STATUS_CTRL","",vrlg.MULT_SAXI_CNTRL_ADDR,0,None,"x393_status_ctrl","rw","MULT_SAXI status control mode (status provides current DWORD pointer)")),
(("X393_MULT_SAXI_BUF_ADDRESS",c,vrlg.MULT_SAXI_ADDR+0,2,z3,"x393_mult_saxi_al","wo","MULT_SAXI buffer start address in DWORDS")),
(("X393_MULT_SAXI_BUF_LEN",c,vrlg.MULT_SAXI_ADDR+1,2,z3,"x393_mult_saxi_al","wo","MULT_SAXI buffer length in DWORDS")),
(("X393_MULT_SAXI_STATUS",c,vrlg.STATUS_ADDR+vrlg.MULT_SAXI_STATUS_REG,1,z3,"x393_mult_saxi_al","ro","MULT_SAXI current DWORD pointer"))]
returnsdefines
defdefine_other_macros(self):# Used mostly for development/testing, not needed for normal camera operation