STM32_IAP test

Dependencies:   STM32_IAP mbed

Committer:
va009039
Date:
Sun May 01 01:17:14 2016 +0000
Revision:
0:51e4fa01745a
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:51e4fa01745a 1 #if defined(TARGET_NUCLEO_F446RE)
va009039 0:51e4fa01745a 2 #include "mbed.h"
va009039 0:51e4fa01745a 3 #include "mytest.h"
va009039 0:51e4fa01745a 4 #include "IAP.h"
va009039 0:51e4fa01745a 5
va009039 0:51e4fa01745a 6 DigitalOut led1(LED1);
va009039 0:51e4fa01745a 7 RawSerial pc(USBTX,USBRX);
va009039 0:51e4fa01745a 8 IAP iap;
va009039 0:51e4fa01745a 9
va009039 0:51e4fa01745a 10 void dump(const uint8_t* addr, size_t size) {
va009039 0:51e4fa01745a 11 for(size_t i = 0; i < size; i++) {
va009039 0:51e4fa01745a 12 if (i%32 == 0) { printf("%p:", addr); }
va009039 0:51e4fa01745a 13 printf(" %02x%s", *addr++, i%32 == 31 ? "\n" : "");
va009039 0:51e4fa01745a 14 }
va009039 0:51e4fa01745a 15 }
va009039 0:51e4fa01745a 16
va009039 0:51e4fa01745a 17 TEST(read_ID,test1) {
va009039 0:51e4fa01745a 18 int r = iap.read_ID();
va009039 0:51e4fa01745a 19 ASSERT_TRUE(r == 0x421);
va009039 0:51e4fa01745a 20 }
va009039 0:51e4fa01745a 21
va009039 0:51e4fa01745a 22 TEST(erase,sector2) {
va009039 0:51e4fa01745a 23 int r = iap.erase(2, 2);
va009039 0:51e4fa01745a 24 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 25 }
va009039 0:51e4fa01745a 26
va009039 0:51e4fa01745a 27 TEST(blank_check,sector2) {
va009039 0:51e4fa01745a 28 int r = iap.blank_check(2, 2);
va009039 0:51e4fa01745a 29 //dump((const uint8_t*)0x8008000, 64);
va009039 0:51e4fa01745a 30 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 31 r = iap.blank_check(3, 2);
va009039 0:51e4fa01745a 32 ASSERT_TRUE(r != CMD_SUCCESS);
va009039 0:51e4fa01745a 33 }
va009039 0:51e4fa01745a 34
va009039 0:51e4fa01745a 35 uint8_t src[256];
va009039 0:51e4fa01745a 36
va009039 0:51e4fa01745a 37 TEST(write,sector2_0x08008000) {
va009039 0:51e4fa01745a 38 for(int i = 0; i < sizeof(src); i++) {
va009039 0:51e4fa01745a 39 src[i] = i&0xff;
va009039 0:51e4fa01745a 40 }
va009039 0:51e4fa01745a 41 int r = iap.write((char*)src, (char*)0x08008000, sizeof(src));
va009039 0:51e4fa01745a 42 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 43 ASSERT_TRUE(memcmp(src, (void*)0x08008000, sizeof(src)) == 0);
va009039 0:51e4fa01745a 44 }
va009039 0:51e4fa01745a 45
va009039 0:51e4fa01745a 46 TEST(erase,sector3) {
va009039 0:51e4fa01745a 47 int r = iap.erase(3, 3);
va009039 0:51e4fa01745a 48 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 49 }
va009039 0:51e4fa01745a 50
va009039 0:51e4fa01745a 51 TEST(erase,sector4) {
va009039 0:51e4fa01745a 52 int r = iap.erase(4, 4);
va009039 0:51e4fa01745a 53 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 54 }
va009039 0:51e4fa01745a 55
va009039 0:51e4fa01745a 56 TEST(erase,sector5) {
va009039 0:51e4fa01745a 57 int r = iap.erase(5, 5);
va009039 0:51e4fa01745a 58 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 59 }
va009039 0:51e4fa01745a 60
va009039 0:51e4fa01745a 61 TEST(erase,sector6) {
va009039 0:51e4fa01745a 62 int r = iap.erase(6, 6);
va009039 0:51e4fa01745a 63 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 64 }
va009039 0:51e4fa01745a 65
va009039 0:51e4fa01745a 66 TEST(erase,sector7) {
va009039 0:51e4fa01745a 67 int r = iap.erase(7, 7);
va009039 0:51e4fa01745a 68 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 69 }
va009039 0:51e4fa01745a 70
va009039 0:51e4fa01745a 71 TEST(erase,sector8) {
va009039 0:51e4fa01745a 72 int r = iap.erase(8, 8);
va009039 0:51e4fa01745a 73 ASSERT_TRUE(r != CMD_SUCCESS);
va009039 0:51e4fa01745a 74 }
va009039 0:51e4fa01745a 75
va009039 0:51e4fa01745a 76 TEST(blank_check,sector3) {
va009039 0:51e4fa01745a 77 int r = iap.blank_check(3, 3);
va009039 0:51e4fa01745a 78 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 79 }
va009039 0:51e4fa01745a 80
va009039 0:51e4fa01745a 81 TEST(blank_check,sector3_4) {
va009039 0:51e4fa01745a 82 int r = iap.blank_check(3, 4);
va009039 0:51e4fa01745a 83 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 84 }
va009039 0:51e4fa01745a 85
va009039 0:51e4fa01745a 86 TEST(blank_check,sector3_7) {
va009039 0:51e4fa01745a 87 int r = iap.blank_check(3, 7);
va009039 0:51e4fa01745a 88 ASSERT_TRUE(r == CMD_SUCCESS);
va009039 0:51e4fa01745a 89 }
va009039 0:51e4fa01745a 90
va009039 0:51e4fa01745a 91 int main() {
va009039 0:51e4fa01745a 92 pc.baud(115200);
va009039 0:51e4fa01745a 93 printf("%s", __FILE__);
va009039 0:51e4fa01745a 94
va009039 0:51e4fa01745a 95 RUN_ALL_TESTS();
va009039 0:51e4fa01745a 96 for(;;) {
va009039 0:51e4fa01745a 97 led1 = !led1;
va009039 0:51e4fa01745a 98 wait_ms(200);
va009039 0:51e4fa01745a 99 }
va009039 0:51e4fa01745a 100 }
va009039 0:51e4fa01745a 101 #endif // TARGET_NUCLEO_F446RE