SSL_MarchCMinusRamTest.c 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /**********************************************************************
  2. * © 2010 Microchip Technology Inc.
  3. *
  4. * FileName: MarchCMInusRamTest.c
  5. * Dependencies: Header (.h) files if applicable, see below
  6. * Processor: PIC18
  7. * Compiler: C18
  8. *
  9. * SOFTWARE LICENSE AGREEMENT:
  10. * Microchip Technology Inc. (“Microchip”) licenses this software to you
  11. * solely for use with Microchip PIC® microcontroller
  12. * products. The software is owned by Microchip and is protected under
  13. * applicable copyright laws. All rights reserved.
  14. *
  15. * SOFTWARE IS PROVIDED “AS IS.” MICROCHIP EXPRESSLY DISCLAIMS ANY
  16. * WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
  17. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  18. * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL MICROCHIP
  19. * BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL
  20. * DAMAGES, LOST PROFITS OR LOST DATA, HARM TO YOUR EQUIPMENT, COST OF
  21. * PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, ANY CLAIMS
  22. * BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF),
  23. * ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER SIMILAR COSTS.
  24. *
  25. * REVISION HISTORY:
  26. *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  27. * Author Date Comments on this revision
  28. *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  29. * CT 09/15/2008 First release of source file
  30. * Mike Cahill 11/11/2010 Updated for HI-TECH v9.80
  31. * MVL 02/22/2011 Modified for HI-TECH v9.81
  32. * VR 07/11/2012 Downgrade to C18 v3.41
  33. *
  34. * Version 1.03
  35. *
  36. *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  37. * ADDITIONAL NOTES:
  38. *
  39. **********************************************************************/
  40. #include "SSL_MarchCMinusRamTest.h"
  41. volatile uint8_t *data_Cm = (uint8_t *)MARCHC_RAM_START_ADDRESS;
  42. volatile uint16_t k;
  43. /*******************************************************************
  44. * Description:
  45. * This function that implements the MarchC Minus test.
  46. * This test is a destructive test !!!
  47. * Input:
  48. * data[] : pointer to an array declared in user memory
  49. * MAX_MEM : value indicating the number of bytes to test
  50. * Return Values:
  51. * FAIL : return value = 0
  52. * PASS : return value = 1
  53. *
  54. *******************************************************************/
  55. unsigned char SSL_RAMtest_MarchCMinus()
  56. {
  57. volatile uint8_t testResult;
  58. //***********************************************
  59. for(k=0;k<=(MAX_MEM_Cm-1);k++)
  60. {
  61. data_Cm[k]=0xAA;
  62. }
  63. //***********************************************
  64. for(k=0;k<=(MAX_MEM_Cm-1);k++)
  65. {
  66. if(data_Cm[k] != 0xAA)
  67. return MARCHCminus_RAM_TEST_FAIL;
  68. else
  69. data_Cm[k]=0x55;
  70. }
  71. //************************************************
  72. for(k=0;k<=(MAX_MEM_Cm-1);k++)
  73. {
  74. if(data_Cm[k] != 0x55)
  75. return MARCHCminus_RAM_TEST_FAIL;
  76. else
  77. data_Cm[k]=0xAA;
  78. }
  79. //************************************************
  80. for(k=(MAX_MEM_Cm-1);k>0;k--)
  81. {
  82. if(data_Cm[k] != 0xAA)
  83. return MARCHCminus_RAM_TEST_FAIL;
  84. else
  85. data_Cm[k]=0x55;
  86. }
  87. if(data_Cm[0] != 0xAA)
  88. return MARCHCminus_RAM_TEST_FAIL;
  89. else
  90. data_Cm[0]=0x55;
  91. //***********************************************
  92. for(k=(MAX_MEM_Cm-1);k>0;k--)
  93. {
  94. if(data_Cm[k] != 0x55)
  95. return MARCHCminus_RAM_TEST_FAIL;
  96. else
  97. data_Cm[k]=0xAA;
  98. }
  99. if(data_Cm[0] != 0x55)
  100. return MARCHCminus_RAM_TEST_FAIL;
  101. else
  102. data_Cm[0]=0xAA;
  103. //***********************************************
  104. return MARCHCminus_RAM_TEST_PASS;
  105. } // End of function