掌握中斷原理及WDT驅動編程
二、 實驗內容
1)查看用戶手冊,編寫c程序1c.c,用c編寫子程序vic0_init, 完成vic0第27號中斷的初始化,子程序 wdt_init,完成wdt初始化,使得wdt每隔1秒發生中斷一次,子程序clear_int清除wdt和vic中斷,子程序led_init完成初始化led,led_on( char on)完成根據參數on的值控制led燈的亮滅。在彙編文件1s.S中編寫子程序cpu_int_on,使能cpu中斷,中斷處理子程序isr,調用led_on函數使4個led燈交替點亮和熄滅。在1c.c中編寫主程序_start,分別調用上述子程序,使得wdt每秒發生一次中斷,用來控制led燈交替點亮和熄滅。
2)編寫c程序 2c.c,完成上述第1題的功能。其中cpu_int_on在c文件中使用內嵌彙編編寫,其他子程序均使用c編寫。
提示:c中斷處理函數聲明:__attribute__((interrupt)) void isr( void )
三、 實驗儀器設備、工具軟件
1.PC微機。
2.ubuntu14.04 64位。
3. arm-linux-gcc,minicom,tftpd-hpa,uboot
四、 實驗過程和詳細設置步驟
1 .查看用戶手冊,編寫c程序1c.c,用c編寫子程序vic0_init, 完成vic0第27號中斷的初始化,子程序 wdt_init,完成wdt初始化,使得wdt每隔1秒發生中斷一次,子程序clear_int清除wdt和vic中斷,子程序led_init完成初始化led,led_on( char on)完成根據參數on的值控制led燈的亮滅。在彙編文件1s.S中編寫子程序cpu_int_on,使能cpu中斷,中斷處理子程序isr,調用led_on函數使4個led燈交替點亮和熄滅。在1c.c中編寫主程序_start,分別調用上述子程序,使得wdt每秒發生一次中斷,用來控制led燈交替點亮和熄滅。
代碼如下圖所示:
2. 編寫c程序 2c.c,完成上述第1題的功能。其中cpu_int_on在c文件中使用內嵌彙編編寫,其他子程序均使用c編寫。
提示:c中斷處理函數聲明:__attribute__((interrupt)) void isr( void )
代碼如下圖所示: