Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main_F411RE.cpp
00001 #if defined(TARGET_NUCLEO_F411RE) 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) { 00013 printf("%p:", addr); 00014 } 00015 printf(" %02x", *addr); 00016 addr++; 00017 if (i%32 == 31) { 00018 printf("\n"); 00019 } 00020 } 00021 } 00022 00023 TEST(read_ID,_0x431) { 00024 int r = iap.read_ID(); 00025 ASSERT_TRUE(r == 0x431); 00026 } 00027 00028 TEST(erase,sector2) { 00029 int r = iap.erase(2, 2); 00030 ASSERT_TRUE(r == CMD_SUCCESS); 00031 } 00032 00033 TEST(blank_check,sector2) { 00034 int r = iap.blank_check(2, 2); 00035 //dump((const uint8_t*)0x8008000, 64); 00036 ASSERT_TRUE(r == CMD_SUCCESS); 00037 } 00038 00039 TEST(blank_check,sector3_sector2) { 00040 int r = iap.blank_check(3, 2); 00041 ASSERT_TRUE(r != CMD_SUCCESS); 00042 } 00043 00044 TEST(blank_check,sector8) { 00045 int r = iap.blank_check(8, 8); 00046 ASSERT_TRUE(r != CMD_SUCCESS); 00047 } 00048 00049 uint8_t src[256]; 00050 00051 TEST(write,sector2_0x08008000) { 00052 for(int i = 0; i < sizeof(src); i++) { 00053 src[i] = i&0xff; 00054 } 00055 int r = iap.write((char*)src, (char*)0x08008000, sizeof(src)); 00056 ASSERT_TRUE(r == CMD_SUCCESS); 00057 ASSERT_TRUE(memcmp(src, (void*)0x08008000, sizeof(src)) == 0); 00058 } 00059 00060 TEST(erase,sector2_sector3) { 00061 int r = iap.erase(2, 3); 00062 ASSERT_TRUE(r == CMD_SUCCESS); 00063 } 00064 00065 TEST(erase,sector4) { 00066 int r = iap.erase(4, 4); 00067 ASSERT_TRUE(r == CMD_SUCCESS); 00068 } 00069 00070 TEST(erase,sector5) { 00071 int r = iap.erase(5, 5); 00072 ASSERT_TRUE(r == CMD_SUCCESS); 00073 } 00074 00075 TEST(erase,sector6) { 00076 int r = iap.erase(6, 6); 00077 ASSERT_TRUE(r == CMD_SUCCESS); 00078 } 00079 00080 TEST(erase,sector7) { 00081 int r = iap.erase(7, 7); 00082 ASSERT_TRUE(r == CMD_SUCCESS); 00083 } 00084 00085 TEST(erase,sector8) { 00086 int r = iap.erase(8, 8); 00087 ASSERT_TRUE(r != CMD_SUCCESS); 00088 } 00089 00090 TEST(blank_check,sector2_sector7) { 00091 int r = iap.blank_check(2, 7); 00092 ASSERT_TRUE(r == CMD_SUCCESS); 00093 } 00094 00095 TEST(blank_check,sector8_sector9) { 00096 int r = iap.blank_check(8, 9); 00097 ASSERT_TRUE(r != CMD_SUCCESS); 00098 } 00099 00100 TEST(write,sector2_0x0800bf00) { 00101 const int dst = 0x0800bf00; 00102 for(int i = 0; i < sizeof(src); i++) { 00103 src[i] = i&0xff; 00104 } 00105 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00106 ASSERT_TRUE(r == CMD_SUCCESS); 00107 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00108 } 00109 00110 TEST(write,sector3_0x0800c000) { 00111 const int dst = 0x0800c000; 00112 for(int i = 0; i < sizeof(src); i++) { 00113 src[i] = i&0xff; 00114 } 00115 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00116 ASSERT_TRUE(r == CMD_SUCCESS); 00117 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00118 } 00119 00120 TEST(write,sector3_0x0800ff00) { 00121 const int dst = 0x0800ff00; 00122 for(int i = 0; i < sizeof(src); i++) { 00123 src[i] = i&0xff; 00124 } 00125 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00126 ASSERT_TRUE(r == CMD_SUCCESS); 00127 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00128 } 00129 00130 TEST(write,sector4_0x08010000) { 00131 const int dst = 0x08010000; 00132 for(int i = 0; i < sizeof(src); i++) { 00133 src[i] = i&0xff; 00134 } 00135 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00136 ASSERT_TRUE(r == CMD_SUCCESS); 00137 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00138 } 00139 00140 TEST(write,sector4_0x0801ff00) { 00141 const int dst = 0x0801ff00; 00142 for(int i = 0; i < sizeof(src); i++) { 00143 src[i] = i&0xff; 00144 } 00145 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00146 ASSERT_TRUE(r == CMD_SUCCESS); 00147 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00148 } 00149 00150 TEST(write,sector5_0x08020000) { 00151 const int dst = 0x08020000; 00152 for(int i = 0; i < sizeof(src); i++) { 00153 src[i] = i&0xff; 00154 } 00155 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00156 ASSERT_TRUE(r == CMD_SUCCESS); 00157 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00158 } 00159 00160 TEST(write,sector5_0x0803ff00) { 00161 const int dst = 0x0803ff00; 00162 for(int i = 0; i < sizeof(src); i++) { 00163 src[i] = i&0xff; 00164 } 00165 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00166 ASSERT_TRUE(r == CMD_SUCCESS); 00167 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00168 } 00169 00170 TEST(write,sector6_0x08040000) { 00171 const int dst = 0x08040000; 00172 for(int i = 0; i < sizeof(src); i++) { 00173 src[i] = i&0xff; 00174 } 00175 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00176 ASSERT_TRUE(r == CMD_SUCCESS); 00177 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00178 } 00179 00180 TEST(write,sector6_0x0805ff00) { 00181 const int dst = 0x0805ff00; 00182 for(int i = 0; i < sizeof(src); i++) { 00183 src[i] = i&0xff; 00184 } 00185 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00186 ASSERT_TRUE(r == CMD_SUCCESS); 00187 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00188 } 00189 00190 TEST(write,sector7_0x08060000) { 00191 const int dst = 0x08060000; 00192 for(int i = 0; i < sizeof(src); i++) { 00193 src[i] = i&0xff; 00194 } 00195 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00196 ASSERT_TRUE(r == CMD_SUCCESS); 00197 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00198 } 00199 00200 TEST(write,sector7_0x0807ff00) { 00201 const int dst = 0x0807ff00; 00202 for(int i = 0; i < sizeof(src); i++) { 00203 src[i] = i&0xff; 00204 } 00205 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00206 ASSERT_TRUE(r == CMD_SUCCESS); 00207 ASSERT_TRUE(memcmp(src, (void*)dst, sizeof(src)) == 0); 00208 } 00209 00210 TEST(write,sector8_0x08080000) { 00211 const int dst = 0x08080000; 00212 int r = iap.write((char*)src, (char*)dst, sizeof(src)); 00213 ASSERT_TRUE(r != CMD_SUCCESS); 00214 } 00215 00216 int main() { 00217 pc.baud(115200); 00218 printf("%s\n", __FILE__); 00219 00220 RUN_ALL_TESTS(); 00221 for(;;) { 00222 led1 = !led1; 00223 wait_ms(200); 00224 } 00225 } 00226 #endif // TARGET_NUCLEO_F411RE
Generated on Sat Jul 30 2022 14:04:37 by
1.7.2