swi.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:1k
源码类别:

uCOS

开发平台:

C/C++

  1. //====================================================================
  2. // File Name  : swi.c
  3. // Function : S3C2440 SWI Test
  4. // Date : March 20, 2002
  5. // Version : 0.0
  6. // History
  7. //   0.0 : Programming start (March 12, 2002) -> SOP
  8. //   0.01: Modified for 2440, DonGo
  9. //====================================================================
  10. #include "def.h"
  11. #include "option.h"
  12. #include "2440addr.h"
  13. #include "2440lib.h"
  14. #include "2440slib.h" 
  15. #include "swi.h"
  16. #include "swis.h"
  17. __swi(0x87) void SwiTest(void);
  18. int swiVar;
  19. //----------------------------------------------------------------------
  20. void __irq Isr_SwiTest(void)
  21. {
  22.     rINTMSK = rINTMSK | BIT_UART0;
  23.     ClearPending(BIT_UART0);    
  24.     SwiTest();
  25.     swiVar++;
  26. }
  27. //**********************[Test_SwiIrq ]***********************************
  28. void Test_SwiIrq(void)
  29. {
  30.     int i;
  31.     swiVar = 1;
  32.     
  33.     Uart_Printf("rUCON0 = %xn",rUCON0);
  34.     Uart_Printf("[ SWI Test ]n");
  35.     Uart_Printf("swiVar = %dn",swiVar);
  36.     Uart_TxEmpty(1);
  37.       //UART0 Tx interrupt bit in rINTPND will be set.
  38.     pISR_UART0 = (U32)Isr_SwiTest;
  39.     pISR_SWI   = (U32)SWI_ISR;
  40.     rINTMSK    = rINTMSK & ~(BIT_UART0);
  41.     for(i=0;i<10000;i++);
  42.     rINTMSK = rINTMSK | BIT_UART0;
  43.     Uart_Printf("swiVar = %dn",swiVar);
  44. }