[Armadillo:08904] 割り込み制御について質問です

linux armadillo email@hidden
2013年 6月 19日 (水) 19:04:05 JST


はじめまして。
Armadillo440を使用し、組み込みLinuxの勉強中で、割り込みのプログラムのコンパイルがうまくいかずに詰まっております。

Armadillo 実践開発ガイド〜組み込みLinux の導入から製品化まで〜を参考にコンパイルしています。

環境は以下の通りで設定はすべてデフォルトのままです。
VMware ATDE3
Linux 2.6.26-2-686

gcc hoge.c だと<module.h>がみつからないとでたので
gcc -I /usr/src/linux/include hoge.cと入力したところ以下のエラーがでました。
インクルードパスが間違っているのでしょうか?
ご教授お願いします。

以下、ソース・エラーです
--------------------------------------------------------------------------------ソース

#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/sched.h>

static char *devname="inttest";
static int irq=158;
static char *id="interrupt test";
#if LINUX_VERSION_CODE > 0x20115
MODULE_PARM(devname, "s");
MODULE_PARM(irq, "i");
MODULE_PARM(id, "s");
#endif

static void inttest_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
  printk("interrupted irq:%d dev_id:%s   jiffies:%ld\n",
         irq,(char *)dev_id,jiffies);
}

int init_module(void)
{
  printk("install '%s' into irq %d\n",devname,irq);
  if (request_irq(irq, inttest_interrupt, SA_INTERRUPT|SA_SHIRQ,
                  devname, id))
    return -EBUSY;

  return 0;
}

void cleanup_module(void)
{
  printk("remove '%s' from irq %d\n",devname,irq);
  free_irq(irq,id);
};

--------------------------------------------------------------------------------エラー

/usr/src/linux/include/linux/interrupt.h:58: error: conflicting types for
‘irqreturn_t’
/usr/src/linux/include/linux/irqreturn.h:19: error: previous definition of
‘irqreturn_t’ was here
/usr/src/linux/include/linux/interrupt.h:61: error: expected
specifier-qualifier-list before ‘irq_handler_t’
/usr/src/linux/include/linux/interrupt.h:60: warning: empty declaration
/usr/src/linux/include/linux/interrupt.h:71: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘no_action’
/usr/src/linux/include/linux/interrupt.h:72: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘request_irq’
/usr/src/linux/include/linux/interrupt.h:74: error: storage class specified
for parameter ‘free_irq’
/usr/src/linux/include/linux/interrupt.h:76: warning: empty declaration
/usr/src/linux/include/linux/interrupt.h:78: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘devm_request_irq’
/usr/src/linux/include/linux/interrupt.h:81: error: storage class specified
for parameter ‘devm_free_irq’
/usr/src/linux/include/linux/interrupt.h:101: error: storage class
specified for parameter ‘disable_irq_nosync’
/usr/src/linux/include/linux/interrupt.h:102: error: storage class
specified for parameter ‘disable_irq’
/usr/src/linux/include/linux/interrupt.h:103: error: storage class
specified for parameter ‘enable_irq’
/usr/src/linux/include/linux/interrupt.h:113: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:118: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:206: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:211: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:225: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘cli’
/usr/src/linux/include/linux/interrupt.h:229: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘sti’
/usr/src/linux/include/linux/interrupt.h:233: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘save_flags’
/usr/src/linux/include/linux/interrupt.h:238: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘restore_flags’
/usr/src/linux/include/linux/interrupt.h:243: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘save_and_cli’
/usr/src/linux/include/linux/interrupt.h:266: warning: empty declaration
/usr/src/linux/include/linux/interrupt.h:285: warning: empty declaration
/usr/src/linux/include/linux/interrupt.h:293: error: storage class
specified for parameter ‘open_softirq’
/usr/src/linux/include/linux/interrupt.h:294: error: storage class
specified for parameter ‘softirq_init’
/usr/src/linux/include/linux/interrupt.h:296: error: storage class
specified for parameter ‘raise_softirq_irqoff’
/usr/src/linux/include/linux/interrupt.h:297: error: storage class
specified for parameter ‘raise_softirq’
/usr/src/linux/include/linux/interrupt.h:320: warning: empty declaration
/usr/src/linux/include/linux/interrupt.h:336: warning: empty declaration
/usr/src/linux/include/linux/interrupt.h:364: error: storage class
specified for parameter ‘__tasklet_schedule’
/usr/src/linux/include/linux/interrupt.h:367: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:372: error: storage class
specified for parameter ‘__tasklet_hi_schedule’
/usr/src/linux/include/linux/interrupt.h:375: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:382: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:388: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:395: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:401: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:406: error: storage class
specified for parameter ‘tasklet_kill’
/usr/src/linux/include/linux/interrupt.h:407: error: storage class
specified for parameter ‘tasklet_kill_immediate’
/usr/src/linux/include/linux/interrupt.h:409: error: storage class
specified for parameter ‘tasklet_init’
/usr/src/linux/include/linux/interrupt.h:453: error: storage class
specified for parameter ‘probe_irq_on’
/usr/src/linux/include/linux/interrupt.h:454: error: storage class
specified for parameter ‘probe_irq_off’
/usr/src/linux/include/linux/interrupt.h:455: error: storage class
specified for parameter ‘probe_irq_mask’
/usr/src/linux/include/linux/interrupt.h:463: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
/usr/src/linux/include/linux/interrupt.h:467: warning: ‘struct seq_file’
declared inside parameter list
irq_3.c:6: error: storage class specified for parameter ‘devname’
irq_3.c:6: error: parameter ‘devname’ is initialized
irq_3.c:7: error: storage class specified for parameter ‘irq’
irq_3.c:7: error: parameter ‘irq’ is initialized
irq_3.c:8: error: storage class specified for parameter ‘id’
irq_3.c:8: error: parameter ‘id’ is initialized
irq_3.c:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before
‘{’ token
irq_3.c:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before
‘{’ token
irq_3.c:33: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before
‘{’ token
irq_3.c:36: error: expected declaration specifiers before ‘;’ token
irq_3.c:8: error: declaration for parameter ‘id’ but no such parameter
irq_3.c:7: error: declaration for parameter ‘irq’ but no such parameter
irq_3.c:6: error: declaration for parameter ‘devname’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:467: error: declaration for
parameter ‘show_interrupts’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:455: error: declaration for
parameter ‘probe_irq_mask’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:454: error: declaration for
parameter ‘probe_irq_off’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:453: error: declaration for
parameter ‘probe_irq_on’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:408: error: declaration for
parameter ‘tasklet_init’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:407: error: declaration for
parameter ‘tasklet_kill_immediate’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:406: error: declaration for
parameter ‘tasklet_kill’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:372: error: declaration for
parameter ‘__tasklet_hi_schedule’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:364: error: declaration for
parameter ‘__tasklet_schedule’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:297: error: declaration for
parameter ‘raise_softirq’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:296: error: declaration for
parameter ‘raise_softirq_irqoff’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:294: error: declaration for
parameter ‘softirq_init’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:293: error: declaration for
parameter ‘open_softirq’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:292: error: declaration for
parameter ‘__do_softirq’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:291: error: declaration for
parameter ‘do_softirq’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:103: error: declaration for
parameter ‘enable_irq’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:102: error: declaration for
parameter ‘disable_irq’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:101: error: declaration for
parameter ‘disable_irq_nosync’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:81: error: declaration for
parameter ‘devm_free_irq’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:74: error: declaration for
parameter ‘free_irq’ but no such parameter
/usr/src/linux/include/linux/interrupt.h:58: error: declaration for
parameter ‘irqreturn_t’ but no such parameter
/usr/src/linux/include/linux/hardirq.h:162: error: declaration for
parameter ‘irq_exit’ but no such parameter
/usr/src/linux/include/linux/hardirq.h:146: error: declaration for
parameter ‘irq_enter’ but no such parameter
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20130619/982add2c/attachment.html>


armadillo メーリングリストの案内