2

これらの投稿が約 100 万件あることは知っていますが、これを修正する方法がわかりません。上記で elua_adc_ch_state を定義して再度使用したためでしょうか。エラーのある行はマークされています。

typedef struct 
{
  // Status Bit Flags
  volatile u8     op_pending: 1, // Is there a pending conversion?
                  blocking: 1, // Are we in blocking or non-blocking mode? (0 - blocking, 1 - nonblocking)
                  freerunning: 1, // If true, we don't stop when we've acquired the requested number of samples
                  smooth_ready: 1, // Has smoothing filter warmed up (i.e. smoothlen samples collected)
                  value_fresh: 1; // Whether the value pointed to by value_ptr is fresh

  unsigned        id;

  u8              logsmoothlen;
  volatile u16    smoothidx;
  volatile u32    smoothsum;
  u16             *smoothbuf;

  volatile u16    reqsamples;
  volatile u16    *value_ptr;
} elua_adc_ch_state;

typedef struct
{
  elua_adc_ch_state   *ch_state[ NUM_ADC ]; *** <----
  volatile u16        sample_buf[ NUM_ADC ]; *** <----
  volatile u8         clocked: 1,
                      force_reseq: 1,
                      skip_cycle: 1,
                      running: 1; // Whether or not sequence is running
  volatile u32        ch_active; // bits represent whether channel should be converted on this device
  volatile u32        last_ch_active; // keep copy of old configuration
  unsigned            timer_id, seq_id; // Timer bound to device, sequencer device id
  volatile u8         seq_ctr, seq_len;
} elua_adc_dev_state;

u16、u8、NUM_ADC のすべての割り当てが定義され、含まれています。最初の構造体が問題ないのに、2番目の構造体が失敗する理由がわかりません...循環ヘッダーの依存関係もありません。

ありがとう

4

1 に答える 1