|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
求ADS1.2之HANDLER關(guān)鍵字 的用法. |
| 作者:goodguy 欄目:ARM技術(shù) |
謝謝各位路過的大哥大姐,我對handler一詞的理解甚淺,想深入了解一下,求給個 HANDLER關(guān)鍵字 的用法的介紹! 謝謝啦啊! |
| 2樓: | >>參與討論 |
| 作者: weiganglnu 于 2005/7/20 14:14:00 發(fā)布:
這個是關(guān)鍵字么?你在哪里看到的,能不舉個例子? |
|
| 3樓: | >>參與討論 |
| 作者: weiganglnu 于 2005/7/20 14:25:00 發(fā)布:
你是不是看到這個"Timer0_Handler HANDLER Timer0"? 你是不是看到這個"Timer0_Handler HANDLER Timer0"? 往上看是不是有如下內(nèi)容? CODE32 AREA IRQ,CODE,READONLY MACRO $IRQ_Label HANDLER $IRQ_Exception_Function EXPORT $IRQ_Label ; The label for exports 輸出的標(biāo)號 IMPORT $IRQ_Exception_Function ; The imported LABELS 引用的外部標(biāo)號 $IRQ_Label SUB LR, LR, #4 ; Calculate the returning address 計算返回地址 STMFD SP!, {R0-R3, R12, LR} ; Protects the task environments 保存任務(wù)環(huán)境 MRS R3, SPSR ; Protects the status variable 保存狀態(tài) STMFD SP, {R3,LR}^ ; Protects SPSR and SP in user status, Notice: DO NOT write BACK.保存SPSR和用戶狀態(tài)的SP,注意不能回寫 ; If the SP is written BACK, it should be adjusted to its appropriate VALUE later.如果回寫的是用戶的SP,所以后面要調(diào)整SP NOP SUB SP, SP, #4*2 MSR CPSR_c, #(NoInt | SYS32Mode) ; SWITCH to the SYSTEM Mode 切換到系統(tǒng)模式 BL $IRQ_Exception_Function ; call the C interrupt handler funtion 調(diào)用c語言的中斷處理程序 MSR CPSR_c, #(NoInt | IRQ32Mode) ; SWITCH bak to IRQ mode 切換回irq模式 LDMFD SP, {R3,LR}^ ; Recover SPSR and SP in user status, Notic: DO NOT write BACK. 恢復(fù)SPSR和用戶狀態(tài)的SP,注意不能回寫 ; If the SP is written BACK, it should be adjusted to its appropriate VALUE later.如果回寫的是用戶的SP,所以后面要調(diào)整SP MSR SPSR_cxsf, R3 ADD SP, SP, #4*2 ; LDMFD SP!, {R0-R3, R12, PC}^ ; MEND 有的話不就是個宏么?看宏定義就知道了. |
|
| 4樓: | >>參與討論 |
| 作者: goodguy 于 2005/7/21 8:14:00 發(fā)布:
原來handler只是一個宏名! 引用的時候如何使用呢? IRQ_Handler HANDLER IRQ_Exception 上面這句話是引用嗎? 怎么引用起來覺得怪怪的啊! |
|
| 5樓: | >>參與討論 |
| 作者: weiganglnu 于 2005/7/21 11:05:00 發(fā)布:
查關(guān)于宏的使用 查關(guān)于宏的使用. 再看這段代碼. CODE32 AREA IRQ,CODE,READONLY MACRO $IRQ_Label HANDLER $IRQ_Exception_Function EXPORT $IRQ_Label ; The label for exports 輸出的標(biāo)號 IMPORT $IRQ_Exception_Function ; The imported LABELS 引用的外部標(biāo)號 $IRQ_Label SUB LR, LR, #4 ; Calculate the returning address 計算返回地址 STMFD SP!, {R0-R3, R12, LR} ; Protects the task environments 保存任務(wù)環(huán)境 MRS R3, SPSR ; Protects the status variable 保存狀態(tài) STMFD SP, {R3,LR}^ ; Protects SPSR and SP in user status, Notice: DO NOT write BACK.保存SPSR和用戶狀態(tài)的SP,注意不能回寫 ; If the SP is written BACK, it should be adjusted to its appropriate VALUE later.如果回寫的是用戶的SP,所以后面要調(diào)整SP NOP SUB SP, SP, #4*2 MSR CPSR_c, #(NoInt | SYS32Mode) ; SWITCH to the SYSTEM Mode 切換到系統(tǒng)模式 BL $IRQ_Exception_Function ; call the C interrupt handler funtion 調(diào)用c語言的中斷處理程序 MSR CPSR_c, #(NoInt | IRQ32Mode) ; SWITCH bak to IRQ mode 切換回irq模式 LDMFD SP, {R3,LR}^ ; Recover SPSR and SP in user status, Notic: DO NOT write BACK. 恢復(fù)SPSR和用戶狀態(tài)的SP,注意不能回寫 ; If the SP is written BACK, it should be adjusted to its appropriate VALUE later.如果回寫的是用戶的SP,所以后面要調(diào)整SP MSR SPSR_cxsf, R3 ADD SP, SP, #4*2 ; LDMFD SP!, {R0-R3, R12, PC}^ ; MEND |
|
| 6樓: | >>參與討論 |
| 作者: yyyaling 于 2005/7/21 16:41:00 發(fā)布:
可以查閱《嵌入式系統(tǒng)開發(fā)與應(yīng)用》一書 P222到P224 |
|
| 7樓: | >>參與討論 |
| 作者: wurunwei 于 2005/7/22 11:16:00 發(fā)布:
能貼出來嗎,我也沒看見宏定義 |
|
| 8樓: | >>參與討論 |
| 作者: weiganglnu 于 2005/7/22 11:27:00 發(fā)布:
宏定義 MACRO $IRQ_Label HANDLER $IRQ_Exception_Function EXPORT $IRQ_Label ; The label for exports 輸出的標(biāo)號 IMPORT $IRQ_Exception_Function ; The imported LABELS 引用的外部標(biāo)號 $IRQ_Label SUB LR, LR, #4 ; Calculate the returning address 計算返回地址 STMFD SP!, {R0-R3, R12, LR} ; Protects the task environments 保存任務(wù)環(huán)境 MRS R3, SPSR ; Protects the status variable 保存狀態(tài) STMFD SP, {R3,LR}^ ; Protects SPSR and SP in user status, Notice: DO NOT write BACK.保存SPSR和用戶狀態(tài)的SP,注意不能回寫 ; If the SP is written BACK, it should be adjusted to its appropriate VALUE later.如果回寫的是用戶的SP,所以后面要調(diào)整SP NOP SUB SP, SP, #4*2 MSR CPSR_c, #(NoInt | SYS32Mode) ; SWITCH to the SYSTEM Mode 切換到系統(tǒng)模式 BL $IRQ_Exception_Function ; call the C interrupt handler funtion 調(diào)用c語言的中斷處理程序 MSR CPSR_c, #(NoInt | IRQ32Mode) ; SWITCH bak to IRQ mode 切換回irq模式 LDMFD SP, {R3,LR}^ ; Recover SPSR and SP in user status, Notic: DO NOT write BACK. 恢復(fù)SPSR和用戶狀態(tài)的SP,注意不能回寫 ; If the SP is written BACK, it should be adjusted to its appropriate VALUE later.如果回寫的是用戶的SP,所以后面要調(diào)整SP MSR SPSR_cxsf, R3 ADD SP, SP, #4*2 ; LDMFD SP!, {R0-R3, R12, PC}^ ; MEND |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |