Norimasa Okamoto / Mbed 2 deprecated STM32_IAP_test

Dependencies:   STM32_IAP mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main_F446RE.cpp Source File

main_F446RE.cpp

00001 #if defined(TARGET_NUCLEO_F446RE)
00002 #include "mbed.h"
00003 #include "mytest.h"
00004 #include "IAP.h"
00005 
00006 DigitalOut led1(LED1);
00007 RawSerial pc(USBTX,USBRX);
00008 IAP iap;
00009 
00010 void dump(const uint8_t* addr, size_t size) {
00011     for(size_t i = 0; i < size; i++) {
00012         if (i%32 == 0) { printf("%p:", addr); }
00013         printf(" %02x%s", *addr++, i%32 == 31 ? "\n" : "");
00014     }
00015 }
00016 
00017 TEST(read_ID,test1) {
00018     int r = iap.read_ID();
00019     ASSERT_TRUE(r == 0x421); 
00020 }
00021 
00022 TEST(erase,sector2) {
00023     int r = iap.erase(2, 2);
00024     ASSERT_TRUE(r == CMD_SUCCESS);
00025 }
00026 
00027 TEST(blank_check,sector2) {
00028     int r = iap.blank_check(2, 2);
00029     //dump((const uint8_t*)0x8008000, 64);
00030     ASSERT_TRUE(r == CMD_SUCCESS);
00031     r = iap.blank_check(3, 2);
00032     ASSERT_TRUE(r != CMD_SUCCESS);
00033 }
00034 
00035 uint8_t src[256];
00036     
00037 TEST(write,sector2_0x08008000) {
00038     for(int i = 0; i < sizeof(src); i++) {
00039         src[i] = i&0xff;
00040     }
00041     int r = iap.write((char*)src, (char*)0x08008000, sizeof(src));
00042     ASSERT_TRUE(r == CMD_SUCCESS);
00043     ASSERT_TRUE(memcmp(src, (void*)0x08008000, sizeof(src)) == 0);
00044 }
00045 
00046 TEST(erase,sector3) {
00047     int r = iap.erase(3, 3);
00048     ASSERT_TRUE(r == CMD_SUCCESS);
00049 }
00050 
00051 TEST(erase,sector4) {
00052     int r = iap.erase(4, 4);
00053     ASSERT_TRUE(r == CMD_SUCCESS);
00054 }
00055 
00056 TEST(erase,sector5) {
00057     int r = iap.erase(5, 5);
00058     ASSERT_TRUE(r == CMD_SUCCESS);
00059 }
00060 
00061 TEST(erase,sector6) {
00062     int r = iap.erase(6, 6);
00063     ASSERT_TRUE(r == CMD_SUCCESS);
00064 }
00065 
00066 TEST(erase,sector7) {
00067     int r = iap.erase(7, 7);
00068     ASSERT_TRUE(r == CMD_SUCCESS);
00069 }
00070 
00071 TEST(erase,sector8) {
00072     int r = iap.erase(8, 8);
00073     ASSERT_TRUE(r != CMD_SUCCESS);
00074 }
00075 
00076 TEST(blank_check,sector3) {
00077     int r = iap.blank_check(3, 3);
00078     ASSERT_TRUE(r == CMD_SUCCESS);
00079 }
00080 
00081 TEST(blank_check,sector3_4) {
00082     int r = iap.blank_check(3, 4);
00083     ASSERT_TRUE(r == CMD_SUCCESS);
00084 }
00085 
00086 TEST(blank_check,sector3_7) {
00087     int r = iap.blank_check(3, 7);
00088     ASSERT_TRUE(r == CMD_SUCCESS);
00089 }
00090         
00091 int main() {
00092     pc.baud(115200);
00093     printf("%s", __FILE__);
00094 
00095     RUN_ALL_TESTS();
00096     for(;;) {
00097         led1 = !led1;
00098         wait_ms(200);
00099     }
00100 }
00101 #endif // TARGET_NUCLEO_F446RE