|
|||||||||||
| 技術(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 進(jìn)不了中斷 |
| 作者:ARC的蜈蚣 欄目:DSP技術(shù) |
我在調(diào)試的時(shí)候進(jìn)入不了中斷。 具體的情況如下: 我開了2個(gè)中斷 int2 int5。分別是TIME1周期中斷 和 sci 發(fā)送接收中斷,但是在調(diào)試的時(shí)候2個(gè)中斷都進(jìn)入不了。 程序: *IFR = 0xFFFF; // 中斷標(biāo)志寄存器 // 清除所有掛起中斷 *IMR = 0x0012; // 中斷屏蔽寄存器 // b5 INT6 0 INT6的中斷被屏蔽 // b4 INT5 1 INT5的中斷被屏蔽 // b3 INT4 0 INT4的中斷被屏蔽 // b2 INT3 0 INT3的中斷被屏蔽 // b1 INT2 1 INT2的中斷被屏蔽 // b0 INT1 0 INT1的中斷被屏蔽 EINT; *SCICTL2 = *SCICTL2 | B0_MSK; // 允許發(fā)送中斷 *SCITXBUF = 0x0055; 向量配置: .ref _c_int0 .ref _c_int2 .ref _c_int5 .ref _PHANTOM .sect "vectors" rset: B _c_int0 ;00h reset int1: B _PHANTOM ;02h INT1 int2: B _c_int2 ;04h INT2 int3: B _PHANTOM ;06h INT3 int4: B _PHANTOM ;08h INT4 int5: B _c_int5 ;0Ah INT5 int6: B _PHANTOM ;0Ch INT6 CMD文件配置: MEMORY { PAGE 0: VECS: org = 00000h , len = 00040h /* 中斷向量存儲(chǔ)空間 */ PROG: org = 00044h , len = 07fbch /* 片內(nèi) FLASH 程序存儲(chǔ)空間 */ SARAM_P: org = 8000h , len = 7ffh /* SARAM印射 */ EX_PROG: org = 08800h , len = 07600h /* 片外程序空間 */ DARAM_P: org = 0ff00h , len = 100h /* DARAM(B0)印射 */ SECTIONS { vectors: > EX_PROG PAGE 0 .text: > EX_PROG PAGE 0 請(qǐng)問我有什么地方不對(duì)? 并且我用開發(fā)機(jī)帶的光盤中的AD程序測(cè)試,也進(jìn)入不了中斷。 |
| 2樓: | >>參與討論 |
| 作者: ARC的蜈蚣 于 2006/3/11 14:05:00 發(fā)布:
發(fā)現(xiàn)問題(中斷產(chǎn)生了,但沒有進(jìn)到我要求的中斷地址) 可以看到程序運(yùn)行到了內(nèi)部存儲(chǔ)器的中斷向量地址。 但是問題接著出現(xiàn)。我沒辦法將我的程序加載到內(nèi)部程序空間。 更改CMD文件 MEMORY { PAGE 0: VECS: org = 00000h , len = 00040h /* 中斷向量存儲(chǔ)空間 */ PROG: org = 00044h , len = 07fbch /* 片內(nèi) FLASH 程序存儲(chǔ)空間 */ SARAM_P: org = 8000h , len = 7ffh /* SARAM印射 */ EX_PROG: org = 08800h , len = 07600h /* 片外程序空間 */ DARAM_P: org = 0ff00h , len = 100h /* DARAM(B0)印射 */ SECTIONS { vectors: > VECS PAGE 0 /* 此處改為內(nèi)部空間 */ .text: > EX_PROG PAGE 0 加載程序的時(shí)候出錯(cuò),加載不了。 我使用的是SEED_DEC2407開發(fā)板 seed7.820.069.0406 ccs2.0 請(qǐng)問如何解決該問題? |
|
| 3樓: | >>參與討論 |
| 作者: 小泥子 于 2006/3/12 18:19:00 發(fā)布:
可疑! 能發(fā)你的原程序(整個(gè))到 elasa1016@126.com 我來理解一下 共同努力 |
|
| 4樓: | >>參與討論 |
| 作者: ARC的蜈蚣 于 2006/3/15 21:10:00 發(fā)布:
解決了 原來是seed的仿真板要用它制定的GEL文件。自己編寫的不行。 |
|
| 5樓: | >>參與討論 |
| 作者: gaost 于 2006/3/16 10:44:00 發(fā)布:
問題總是多種多樣,關(guān)鍵還是靠自己 |
|
| 6樓: | >>參與討論 |
| 作者: hexiaof200 于 2006/3/18 10:40:00 發(fā)布:
這樣試試吧 因?yàn)?x系列的中斷向量都只指向片內(nèi)的地址,你先燒一個(gè)簡(jiǎn)單的中斷轉(zhuǎn)移程序到片內(nèi),將所有的中斷都指向片外(你的調(diào)試ram)的某一個(gè)位置,然后再調(diào)試,當(dāng)時(shí)我是這么解決的,不知道其他高手又沒有更優(yōu)的方案 |
|
| 7樓: | >>參與討論 |
| 作者: xyq2001 于 2006/3/18 21:40:00 發(fā)布:
不懂! DSP的中斷本來就是兩級(jí)的,為什么還要自己寫中斷轉(zhuǎn)移程序?? |
|
| 8樓: | >>參與討論 |
| 作者: ARC的蜈蚣 于 2006/3/22 17:40:00 發(fā)布:
是這樣的 2407有兩種工作模式:1. 微處理器模式 2. 微控制器模式 微處理器模式的復(fù)位和中斷地址都是片外的空間(片外程序存儲(chǔ)器0000h~ffffh) 微控制器模式的復(fù)位和中斷地址都是片內(nèi)的空間(片內(nèi)程序存儲(chǔ)器0000h~ffffh) 選擇方式由2407的118腳(MP/MC)來選擇,還可以通過寄存器SCCR2的Bit2更改。 我的問題出在SEED的仿真板。 SEED的仿真板將2407的118腳(MP/MC)接地(微控制器模式)。但是它的仿真板確不能LOAD程序到內(nèi)部程序空間!所以產(chǎn)生中斷后進(jìn)入片內(nèi)空間(天啦,我的程序不在片內(nèi))所以無法進(jìn)入中斷。 解決辦法 1. 動(dòng)手術(shù),改仿真板。將2407的118腳(MP/MC)接到+3.3V。 2. 使用SEED提供的GEL文件。 優(yōu)缺點(diǎn): 1. 優(yōu)點(diǎn):改過后使用方便(見2的缺點(diǎn))。缺點(diǎn):不方便改,t m d 用的是6層板,而且引腳邊上打的過孔。 2. 優(yōu)點(diǎn):不用動(dòng)硬件。缺點(diǎn):每次復(fù)位DSP都要在菜單中重新選擇一下外部空間。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |