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_L031K6.cpp
00001 #if defined(TARGET_NUCLEO_L031K6) 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 = 32) { 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 == 0x425); 00020 } 00021 00022 TEST(erase,page224) { 00023 int r = iap.erase(224, 224); 00024 ASSERT_TRUE(r == CMD_SUCCESS); 00025 uint8_t* p = (uint8_t*)0x08007000; 00026 dump((uint8_t*)0x08007000); 00027 for(int i = 0; i < 128; i++, p++) { 00028 ASSERT_TRUE(*p == 0x00); 00029 } 00030 } 00031 00032 TEST(erase,page256) { 00033 int r = iap.erase(256, 256); 00034 ASSERT_TRUE(r != CMD_SUCCESS); 00035 } 00036 00037 TEST(blank_check,page224) { 00038 int r = iap.blank_check(224, 224); 00039 ASSERT_TRUE(r == CMD_SUCCESS); 00040 } 00041 00042 TEST(blank_check,page256) { 00043 int r = iap.blank_check(256, 256); 00044 ASSERT_TRUE(r != CMD_SUCCESS); 00045 } 00046 00047 const uint8_t src[128] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28}; 00048 00049 TEST(write,page224_0x08007000) { 00050 int r = iap.write((char*)src, (char*)0x08007000, sizeof(src)); 00051 ASSERT_TRUE(r == CMD_SUCCESS); 00052 if (r == CMD_SUCCESS) { 00053 ASSERT_TRUE(memcmp(src, (void*)0x08007000, sizeof(src)) == 0); 00054 } 00055 } 00056 00057 TEST(write,page255_0x08007f80) { 00058 int r = iap.erase(255, 255); 00059 ASSERT_TRUE(r == CMD_SUCCESS); 00060 r = iap.blank_check(255, 255); 00061 ASSERT_TRUE(r == CMD_SUCCESS); 00062 r = iap.write((char*)src, (char*)0x08007f80, sizeof(src)); 00063 ASSERT_TRUE(r == CMD_SUCCESS); 00064 if (r == CMD_SUCCESS) { 00065 ASSERT_TRUE(memcmp(src, (void*)0x08007f80, sizeof(src)) == 0); 00066 } 00067 } 00068 00069 TEST(write,page256_0x08008000) { 00070 int r = iap.prepare(256, 256); 00071 ASSERT_TRUE(r != CMD_SUCCESS); 00072 r = iap.erase(256, 256); 00073 ASSERT_TRUE(r != CMD_SUCCESS); 00074 r = iap.write((char*)src, (char*)0x08008000, sizeof(src)); 00075 ASSERT_TRUE(r != CMD_SUCCESS); 00076 } 00077 00078 TEST(erase,page224_225) { 00079 int r = iap.erase(224, 225); 00080 ASSERT_TRUE(r == CMD_SUCCESS); 00081 uint8_t* p = (uint8_t*)0x08007000; 00082 for(int i = 0; i < 128*2; i++, p++) { 00083 ASSERT_TRUE(*p == 0x00); 00084 } 00085 } 00086 00087 TEST(blank_check,page224_225) { 00088 int r = iap.blank_check(224, 225); 00089 ASSERT_TRUE(r == CMD_SUCCESS); 00090 } 00091 00092 TEST(write_eeprom,_0x08080000) { 00093 int r = iap.write_eeprom((char*)src, (char*)0x08080000, sizeof(src)); 00094 ASSERT_TRUE(r == CMD_SUCCESS); 00095 if (r == CMD_SUCCESS) { 00096 ASSERT_TRUE(memcmp(src,(char*)0x08080000, sizeof(src)) == 0); 00097 } 00098 } 00099 00100 TEST(read_eeprom,_0x08080000) { 00101 int r = iap.write_eeprom((char*)src, (char*)0x08080000, sizeof(src)); 00102 ASSERT_TRUE(r == CMD_SUCCESS); 00103 uint8_t temp[sizeof(src)]; 00104 r = iap.read_eeprom((char*)0x08080000, (char*)temp, sizeof(src)); 00105 ASSERT_TRUE(r == CMD_SUCCESS); 00106 if (r == CMD_SUCCESS) { 00107 ASSERT_TRUE(memcmp(temp, src, sizeof(src)) == 0); 00108 } 00109 } 00110 00111 TEST(eeprom,_0x080803f0) { // 0x0808003ff-0x080803ff 00112 const size_t size = 16; 00113 int r = iap.write_eeprom((char*)src, (char*)0x080803f0, size); 00114 ASSERT_TRUE(r == CMD_SUCCESS); 00115 uint8_t temp[size]; 00116 r = iap.read_eeprom((char*)0x080803f0, (char*)temp, sizeof(temp)); 00117 ASSERT_TRUE(r == CMD_SUCCESS); 00118 if (r == CMD_SUCCESS) { 00119 ASSERT_TRUE(memcmp(temp, src, sizeof(temp)) == 0); 00120 } 00121 } 00122 00123 TEST(eeprom,_0x08080400) { // 0x080800400-0x0808040f 00124 const size_t size = 16; 00125 int r = iap.write_eeprom((char*)src, (char*)0x08080400, size); 00126 ASSERT_TRUE(r != CMD_SUCCESS); 00127 uint8_t temp[size]; 00128 r = iap.read_eeprom((char*)0x08080400, (char*)temp, sizeof(temp)); 00129 ASSERT_TRUE(r != CMD_SUCCESS); 00130 } 00131 00132 int main() { 00133 pc.baud(115200); 00134 printf("%s", __FILE__); 00135 00136 RUN_ALL_TESTS(); 00137 for(;;) { 00138 led1 = !led1; 00139 wait_ms(200); 00140 } 00141 } 00142 #endif // TARGET_NUCLEO_L031K6
Generated on Sat Jul 30 2022 14:04:37 by
1.7.2