音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

2407 C語言編程包含頭文件的問題

作者:不愛說話 欄目:DSP技術(shù)
2407 C語言編程包含頭文件的問題
由于程序比較大,所以我把它們根據(jù)功能分別寫到幾個(gè)C文件里,因?yàn)槊總(gè)文件里都會(huì)用到些寄存器,所以每個(gè)文件開都包含了頭文件#include "2407c.h"
編譯的時(shí)候就報(bào)錯(cuò)了,說XXXX多重定義了,我知道是#include "2407c.h"次數(shù)太多的原因,但是每個(gè)文件里都有用到其中的一些寄存器,所以必須包含這個(gè)頭文件,有什么辦法能解決這個(gè)問題嗎,能讓程序編譯通過.

2樓: >>參與討論
computer00
使用#ifndef   #define的結(jié)構(gòu)。
看看系統(tǒng)自帶的頭文件是如何做的?

3樓: >>參與討論
不愛說話
我試過了
不行,我按你說的條件編譯方法試過的,還出那些錯(cuò)誤.

4樓: >>參與討論
computer00
那就是你代碼的問題了。
將頭文件復(fù)制上來看看。

5樓: >>參與討論
不愛說話
2407c.h
/*************************************************************************
/* File NAME: 2407c.h
/*
/* DESCRIPTION: 240x register definitions, Bit codes for BIT instruction
/*************************************************************************/

#ifndef __2407c_h__
#define __2407c_h__

/* 240x CPU core registers*/

unsigned int *IMR         =    (unsigned int *)0x0004;    /* Interrupt Mask Register*/
unsigned int *IFR         =    (unsigned int *)0x0006;    /* Interrupt Flag Register*/

/* SYSTEM configuration and interrupt registers*/

unsigned int *SCSR1         =    (unsigned int *)0x7018;    /* SYSTEM CONTROL & Status register. 1 */
unsigned int *SCSR2         =    (unsigned int *)0x7019;    /* SYSTEM CONTROL & Status register. 2*/
unsigned int *DINR         =    (unsigned int *)0x701C;    /* DEVICE Identification NUMBER register. */


......................
......................

#endif

6樓: >>參與討論
lczsx2000
在頭文件里面這么做,舉個(gè)例子!
/*************************************************************************
/* File NAME: 2407c.h
/*
/* DESCRIPTION: 240x register definitions, Bit codes for BIT instruction
/*************************************************************************/

#ifndef __2407c_h__
#define __2407c_h__

/* 240x CPU core registers*/

#define IMR       ((unsigned int volatile *)0x0004)    /* Interrupt Mask Register*/


7樓: >>參與討論
computer00
樓上正解。
樓主這樣做法,當(dāng)然會(huì)重復(fù)定義了。

如果你只是訪問IMR寄存器的值的話,還可以這么做:

/* 240x CPU core registers*/

#define IMR  (*((volatile unsigned int *)0x0004))    /* Interrupt Mask Register*/



以后訪問時(shí),只要用IMR就可以了。

IMR=xx;
xx=IMR;


8樓: >>參與討論
不愛說話
謝謝啊
其實(shí)我用的這個(gè)頭文件也是從書上拿來的.
回頭我換一個(gè)你們說的那種頭文件試試

9樓: >>參與討論
xyq2001
有道理!

一個(gè)是宏定義,一個(gè)是簡(jiǎn)單的變量定義。

10樓: >>參與討論
小泥子
欽佩 樓主
從上代碼的意思

      :只是想用一個(gè)符號(hào)wer 來代替后面的一串串
     是吧

     #define   合適!!
     支持
如果想用  匯編 哪該用 哪條指令?
    謝謝
      

11樓: >>參與討論
不愛說話
to lczsx2000
我按你的例子改了我的頭文件寫法,現(xiàn)在可以在不同的C文件中包含這個(gè)頭文件了,已經(jīng)沒問題了,謝謝啊.

12樓: >>參與討論
gaost
長見識(shí)
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
DM642(EVM) Ver1.1多路實(shí)時(shí)圖像處理開發(fā)平臺(tái)[提供CPLD源代碼]
做過nRF401請(qǐng)進(jìn)來。。。
求助ccs5000哪有下載的地啊?
TMS320VC33求助
知道門禁系統(tǒng)下位機(jī)串口通信方面(用dsp c54)的高手請(qǐng)進(jìn)!
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)