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

uCOS

开发平台:

C/C++

  1. /*****************************************
  2.   NAME: power.c
  3.   DESC: SLOW,HOLD mode test
  4.   HISTORY:
  5.   03.23.2002:purnnamu: first release for 2410
  6.   06.02.2002:DonGo: Modified for 2440
  7.  *****************************************/
  8.  
  9. #include "def.h"
  10. #include "option.h"
  11. #include "2440addr.h"
  12. #include "2440lib.h"
  13. #include "2440slib.h" 
  14. #include "iotest.h"
  15. #include "power.h"
  16. #include "memtest.h"
  17. void Test_IO_Strength(void)
  18. {
  19. int i;
  20. U32 dsc_data=0, dsc_adr=0, dsc_ctrl=0;
  21. Uart_Printf("Test2... I/O drive strength control test.n");
  22. Uart_Printf("Current drive strength value(DISC0):%xhn", rDSC0&0xff);
  23. Uart_Printf("DATA[31:0] dive strength(0:12,1:10,2:8,3:6[mA]) : ");
  24. i=Uart_GetIntNum();
  25. switch(i) {
  26. case 0: dsc_data = 0x00; break;
  27. case 1: dsc_data = 0x55; break;
  28. case 2: dsc_data = 0xaa; break;
  29. case 3: dsc_data = 0xff; break;
  30. default: dsc_data=0x00; break;
  31. }
  32. Uart_Printf("ADDR bus dive strength(0:10,1:8,2:6,3:4[mA]) : ");
  33. dsc_adr=Uart_GetIntNum();
  34. Uart_Printf("Control and clcok signal dive strengthn");
  35. Uart_Printf("CLK/Control signal (0:16/10,1:12/8,2:8/6,3:6/4[mA])");
  36. i=Uart_GetIntNum();
  37. switch(i) {
  38. case 0: dsc_ctrl = 0x00000000; break;
  39. case 1: dsc_ctrl = 0x15555555; break;
  40. case 2: dsc_ctrl = 0x2aaaaaaa; break;
  41. case 3: dsc_ctrl = 0x3fffffff; break;
  42. default: dsc_ctrl=0x00000000; break;
  43. }
  44. rDSC0 = (rDSC0 & ~(0x83ff<<0)) | (dsc_adr<<8) | dsc_data;
  45. rDSC1 = dsc_ctrl;
  46. Uart_Printf("rDSC0=%x, rDSC1=%x.n", rDSC0, rDSC1);
  47. Uart_Printf("Memory R/W test(y/n)? ");
  48. if(Uart_Getch()=='y') {
  49. do {
  50. Mem_Test(1);
  51. } while(Uart_GetKey()==0);
  52. }
  53. }