第六章-无RTOS有中断之基本IP驱动程式设计.pptVIP

  • 3
  • 0
  • 约1.65千字
  • 约 14页
  • 2018-06-22 发布于河南
  • 举报

第六章-无RTOS有中断之基本IP驱动程式设计.ppt

第六章-无RTOS有中断之基本IP驱动程式设计

無RTOS有中斷之基本IP驅動程式設計 General Systems LAB/系統晶片實驗室 國立高雄第一科技大學 陳朝烈 教授 崑山科技大學 吳俊慶 鄭宇良 目錄 中斷訊號輸出至Debug Port實驗 中斷訊號輸出至Debug Port實驗 6.1.1 FPGA固定時間發出中斷訊號 發展平台: CDK AMBA/FPGA Platform Development Kit 實驗目的: 了解中斷 學會如何外接LED做簡易的Debug 實驗項目: 將中斷訊號輸出至Debug Port上 FPGA發出中斷訊號並將寫入Data顯示至Debug Port 實驗流程與結果 6.2.1 設計流程 6.2.2 主程式介紹 6.2.2 主程式介紹 6.2.2 主程式介紹 6.2.2 主程式介紹 6.2.3 副程式介紹 6.2.4 測試結果 6.2.4 測試結果 6.2.4 測試結果 * FPGA固定時間發出中斷訊號 ……………………………………… 4 實驗流程與結果 設計流程 …………………………………………………………… 6 主程式介紹 ………………………………………………………… 7 副程式介紹 ………………………………………………………… 11 測試結果 …………………………………………………………… 12 Start Init Connect It’s ISR Set INTC_IECR bit x Set INTC_IMR bit x Set INTC_ISCR bit x to trigger interrupt ISR active LoopCtrl wait interrupt Stop Disable Clear All interrupt Y N Start Init Connect It’s ISR Set INTC_IECR bit x Set INTC_IMR bit x 說明: 設定中斷暫存器中 IECR、ICCR、TEST 這三個暫存器的內容值 ※設定方式可依照第X章,PWM初始化方式去設定 說明: num29為FPGA使用的中斷訊號腳 使用request_irq這個內建函式來安裝中斷副程式 Start Init Connect It’s ISR Set INTC_IECR bit x Set INTC_IMR bit x Start Init Connect It’s ISR Set INTC_IECR bit x Set INTC_IMR bit x 說明: 設定中斷暫存器中 IECR、IMR 這兩個暫存器的內容值 ※因為不想改變原本暫存器的內容值, 所以先讀取值,以OR的方式來設定 Set INTC_ISCR bit x to trigger interrupt ISR active LoopCtrl wait interrupt Y N 說明: 設定中斷暫存器中,ISCR這暫存器, 在第100行處等待FPGA發出中斷訊號, 在接收中斷超過50次時,跳出迴圈結束程式 ※因為執行完副程式時,程式會跳回100行,再次判斷 為了能讓程式繼續往下執行,所以在副程式中, 將waitctrl設定成0 Set INTC_ISCR bit x to trigger interrupt ISR active LoopCtrl wait interrupt Y N 說明: 在第153行處將DATA加1後寫入FPGA, DATA預設為0x10 在第154行處將waitctrl設定成0, 結束等待中斷 HWDATA[7:0] 0 0 0 1 0 0 0 1 Data=0x11 HWDATA[7:0] 0 0 0 1 0 0 1 0 Data=0x12 HWDATA[7:0] 0 0 0 1 0 0 1 1 Data=0x13 * * *

文档评论(0)

1亿VIP精品文档

相关文档