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_L152RE.cpp
00001 #if defined(TARGET_NUCLEO_L152RE) 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 == 0x437); 00020 } 00021 00022 TEST(erase,page480) { 00023 int r = iap.erase(480, 480); 00024 ASSERT_TRUE(r == CMD_SUCCESS); 00025 uint8_t* p = (uint8_t*)0x801e000; 00026 dump((uint8_t*)0x801e000); 00027 for(int i = 0; i < 256; i++, p++) { 00028 ASSERT_TRUE(*p == 0x00); 00029 } 00030 } 00031 00032 TEST(erase,page2047) { 00033 int r = iap.erase(2047, 2047); 00034 ASSERT_TRUE(r == CMD_SUCCESS); 00035 uint8_t* p = (uint8_t*)0x0807ff00; 00036 dump((uint8_t*)0x0807ff00); 00037 for(int i = 0; i < 256; i++, p++) { 00038 ASSERT_TRUE(*p == 0x00); 00039 } 00040 } 00041 00042 TEST(erase,page2048) { 00043 int r = iap.erase(2048, 2048); 00044 ASSERT_TRUE(r != CMD_SUCCESS); 00045 } 00046 00047 TEST(blank_check,page480) { 00048 int r = iap.blank_check(480, 480); 00049 ASSERT_TRUE(r == CMD_SUCCESS); 00050 } 00051 00052 TEST(blank_check,page2047) { 00053 int r = iap.blank_check(2047, 2047); 00054 ASSERT_TRUE(r == CMD_SUCCESS); 00055 } 00056 00057 TEST(blank_check,page2048) { 00058 int r = iap.blank_check(2048, 2048); 00059 ASSERT_TRUE(r != CMD_SUCCESS); 00060 } 00061 00062 const uint8_t src[256] = {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}; 00063 00064 TEST(write,page480_0x0801e000) { 00065 ASSERT_TRUE(FLASH_PAGE_SIZE == sizeof(src)); 00066 int r = iap.write((char*)src, (char*)0x0801e000, sizeof(src)); 00067 ASSERT_TRUE(r == CMD_SUCCESS); 00068 ASSERT_TRUE(memcmp(src, (void*)0x0801e000, sizeof(src)) == 0); 00069 } 00070 00071 TEST(erase,page480_481) { 00072 int r = iap.erase(480, 481); 00073 ASSERT_TRUE(r == CMD_SUCCESS); 00074 uint8_t* p = (uint8_t*)0x801e000; 00075 for(int i = 0; i < 256*2; i++, p++) { 00076 ASSERT_TRUE(*p == 0x00); 00077 } 00078 } 00079 00080 TEST(blank_check,page480_481) { 00081 int r = iap.blank_check(480, 481); 00082 ASSERT_TRUE(r == CMD_SUCCESS); 00083 } 00084 00085 TEST(write_eeprom,_0x08080000) { 00086 int r = iap.write_eeprom((char*)src, (char*)0x08080000, sizeof(src)); 00087 ASSERT_TRUE(r == CMD_SUCCESS); 00088 ASSERT_TRUE(memcmp(src,(char*)0x08080000, sizeof(src)) == 0); 00089 } 00090 00091 TEST(read_eeprom,_0x08080000) { 00092 int r = iap.write_eeprom((char*)src, (char*)0x08080000, sizeof(src)); 00093 ASSERT_TRUE(r == CMD_SUCCESS); 00094 uint8_t temp[sizeof(src)]; 00095 r = iap.read_eeprom((char*)0x08080000, (char*)temp, sizeof(src)); 00096 ASSERT_TRUE(r == CMD_SUCCESS); 00097 ASSERT_TRUE(memcmp(temp, src, sizeof(src)) == 0); 00098 } 00099 00100 TEST(write_eeprom,_0x08082000) { 00101 int r = iap.write_eeprom((char*)src, (char*)0x08082000, sizeof(src)); 00102 ASSERT_TRUE(r == CMD_SUCCESS); 00103 } 00104 00105 TEST(read_eeprom,_0x08082000) { 00106 uint8_t temp[sizeof(src)]; 00107 int r = iap.read_eeprom((char*)0x08082000, (char*)temp, sizeof(src)); 00108 ASSERT_TRUE(r == CMD_SUCCESS); 00109 ASSERT_TRUE(memcmp(temp, src, sizeof(src)) == 0); 00110 } 00111 00112 TEST(read_eeprom,_0x08084000) { 00113 uint8_t temp[sizeof(src)]; 00114 int r = iap.read_eeprom((char*)0x08084000, (char*)temp, sizeof(src)); 00115 ASSERT_TRUE(r != CMD_SUCCESS); 00116 } 00117 00118 TEST(eeprom,_0x08083f00) { 00119 int r = iap.write_eeprom((char*)src, (char*)0x08083f00, sizeof(src)); 00120 ASSERT_TRUE(r == CMD_SUCCESS); 00121 uint8_t temp[sizeof(src)]; 00122 r = iap.read_eeprom((char*)0x08083f00, (char*)temp, sizeof(temp)); 00123 ASSERT_TRUE(r == CMD_SUCCESS); 00124 ASSERT_TRUE(memcmp(temp, src, sizeof(temp)) == 0); 00125 } 00126 00127 TEST(write_eeprom,_0x08084000) { 00128 int r = iap.write_eeprom((char*)src, (char*)0x08084000, sizeof(src)); 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_L152RE
Generated on Sat Jul 30 2022 14:04:37 by
1.7.2