/*;*<*>******************************************************** * ram_addr_test * * This performs a destructive test on the range of ram specified * * 1) Write 0s to all ram and check all written to 0 * 2) Perform addr line check * Note: This routine or the functions called must only use memory * on the stack **start*/ enum inite_return ram_addr_test(char *lower_addr, char *upper_addr) { register int mask; if (lower_addr >= upper_addr) return PASS; fill_ram(lower_addr, upper_addr,TEST1_VALUE); if ((int)verify_ram(lower_addr,upper_addr,TEST1_VALUE) == (int) FAIL) return FAIL; *lower_addr = TEST2_VALUE; if ((int)verify_ram(lower_addr+1,upper_addr,TEST1_VALUE) == (int) FAIL) return FAIL; *lower_addr = TEST1_VALUE; for (mask=1; (lower_addr+mask)<=upper_addr; mask <<= 1) { if (addr_test(lower_addr,upper_addr,lower_addr+mask)==FAIL){ return FAIL; } } fill_ram(lower_addr, upper_addr, FILL_MEM_VALUE); if (verify_ram(lower_addr,upper_addr,FILL_MEM_VALUE) == (int) FAIL) return FAIL; return PASS; } /*end ram_addr_test*/
/*;*<*>******************************************************** * ext_banked_ram_test * **start*/ enum inite_return ext_banked_ram_test(void) { enum ram_bank_number bank_loop; hw_ram_bank_set(RAM_BANK_0); if ( (int)FAIL == (int)ram_test((char *)LOWER_BANKED_RAM_ADDR, (char *)UPPER_BANKED_RAM_ADDR ) ) { return FAIL; } if (verify_ram_bank_switch((char *)LOWER_BANKED_RAM_ADDR) == FAIL) { return FAIL; } /* * Fill the banks with data */ for (bank_loop=RAM_BANK_0; (int) bank_loop < (int) RAM_BANK_END; bank_loop++) { hw_ram_bank_set(bank_loop); fill_ram((char *)LOWER_BANKED_RAM_ADDR, (char *)UPPER_BANKED_RAM_ADDR, FILL_MEM_VALUE); } return PASS; } /*end ext_banked_ram_test*/
void OLED::clear() { fill_ram(0x00); }