diff --git a/CubeKeil Example/Core/Src/main.c b/CubeKeil Example/Core/Src/main.c
index c4cea99..fcbfe9e 100644
--- a/CubeKeil Example/Core/Src/main.c
+++ b/CubeKeil Example/Core/Src/main.c
@@ -59,6 +59,7 @@ void SystemClock_Config(void);
W25_HandleTypeDef hw25;
HAL_StatusTypeDef W25_RES;
W25_WriteInitTypeDef writeInit;
+W25_WriteInitTypeDef MCUFlashToExternalFlashInit;
uint8_t read_buff[20] = {0};
uint8_t write_buff[20] = {0x14,0x13,0x12,0x11,0x10,
@@ -110,32 +111,44 @@ int main(void)
hw25.GPIOs.MISO_PIN = GPIO_PIN_2;
hw25.GPIOs.MOSI_PIN = GPIO_PIN_3;
W25_Base_Init(&hw25);
- /* USER CODE END 2 */
-
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
-
- // Example for FLASH: using manufactire info CMD
- uint32_t w25_ID = W25_CMD_Read_JEDEC_ID(&hw25);
- uint64_t w25_unique_ID = W25_CMD_Read_Device_ID(&hw25);
-
- // Example for FLASH: erase/program/read functions
- W25_RES = W25_FLASH_Erase_Sector(&hw25, 0, 1000);
- W25_RES = W25_FLASH_Program_Area(&hw25, 0xf9, write_buff, 15, 100);
- W25_CMD_Read_Data(&hw25, 0xf9, read_buff, 15);
-
// Example for FLASH: write area functions init
+ // writting on two pages:
+ // writing 15 bytes at 0xf9 - its writting 7 bytes at first page, and 8 bytes at second page
+ writeInit.fSavePrevoisData = 1;
writeInit.pDataPtr = write_buff;
writeInit.Data_Address = 0xfb;
writeInit.Data_Size = 1;
writeInit.Sector_Address = 0xf9;
writeInit.Sector_Size = 15;
+
+ /* USER CODE END 2 */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ // Example for FLASH: using manufactire info CMD
+ uint32_t w25_ID = W25_CMD_Read_JEDEC_ID(&hw25);
+ uint64_t w25_unique_ID = W25_CMD_Read_Device_ID(&hw25);
+
+ // Example fpr FLASH: writting MCU Program to external FLASH
+ MCUFlashToExternalFlashInit.pDataPtr = (uint8_t *)FLASH_BASE;
+ MCUFlashToExternalFlashInit.Data_Address = 0;
+ MCUFlashToExternalFlashInit.Data_Size = 0x2000;
+ MCUFlashToExternalFlashInit.Sector_Address = 0;
+ MCUFlashToExternalFlashInit.Sector_Size = 0x2000;
+ W25_RES = W25_FLASH_Write(&hw25, &MCUFlashToExternalFlashInit, 5000);
+ uint32_t FLASH_shift = 0;
+ W25_RES = W25_FLASH_Read(&hw25, 0x0000+FLASH_shift, read_buff, 15, 100);
+
+ // Example for FLASH: erase/program/read functions
+ W25_RES = W25_FLASH_Erase(&hw25, 0, 1, 1000);
+ W25_RES = W25_FLASH_Program(&hw25, 0xf9, write_buff, 15, 100);
+ W25_RES = W25_FLASH_Read(&hw25, 0xf9, read_buff, 15, 100);
while (1)
- {
+ {
+
// Example for FLASH: write area functions
- W25_FLASH_Write_Area(&hw25, &writeInit, 1000);
- HAL_Delay(10);
- W25_CMD_Read_Data(&hw25, 0xf9, read_buff, 15);
+ W25_RES = W25_FLASH_Write(&hw25, &writeInit, 1000);
+ W25_RES = W25_FLASH_Read(&hw25, 0xf9, read_buff, 15, 100);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
@@ -144,6 +157,7 @@ int main(void)
uint32_t generated_rng;
HAL_RNG_GenerateRandomNumber(&hrng, &generated_rng);
write_buff[7] = generated_rng&0xFF;
+ write_buff[0] = (generated_rng>>16)&0xFF;
}
/* USER CODE END 3 */
}
diff --git a/CubeKeil Example/MDK-ARM/flash eeprom Example.uvoptx b/CubeKeil Example/MDK-ARM/flash eeprom Example.uvoptx
index de0ccbe..22383cf 100644
--- a/CubeKeil Example/MDK-ARM/flash eeprom Example.uvoptx
+++ b/CubeKeil Example/MDK-ARM/flash eeprom Example.uvoptx
@@ -152,9 +152,9 @@
0
0
- 135
+ 140
1
- 134230152
+ 134230654
0
0
0
@@ -163,12 +163,60 @@
1
../Core/Src/main.c
- \\flash_eeprom_Example\../Core/Src/main.c\135
+ \\flash_eeprom_Example\../Core/Src/main.c\140
1
0
- 136
+ 138
+ 1
+ 134230628
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ../Core/Src/main.c
+
+ \\flash_eeprom_Example\../Core/Src/main.c\138
+
+
+ 2
+ 0
+ 150
+ 1
+ 134230760
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ../Core/Src/main.c
+
+ \\flash_eeprom_Example\../Core/Src/main.c\150
+
+
+ 3
+ 0
+ 198
+ 1
+ 134229880
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\..\spi_flash\spi_flash.c
+
+ \\flash_eeprom_Example\../../spi_flash/spi_flash.c\198
+
+
+ 4
+ 0
+ 151
1
0
0
@@ -177,7 +225,23 @@
0
0
0
- ../Core/Src/main.c
+ ..\..\spi_flash\spi_flash.c
+
+
+
+
+ 5
+ 0
+ 171
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\spi_flash\spi_flash.c
@@ -186,37 +250,37 @@
0
1
- w25_ID
+ hw25
1
1
- w25_unique_ID
+ W25_RES
2
1
- W25_RES
+ read_buff
3
1
- read_buff
+ write_buff
4
1
- write_buff
+ sector_buff
5
1
- sector_buff
+ writeInit
6
1
- writeInit
+ writebuff
@@ -240,7 +304,33 @@
2
endsize
+
+ 4
+ 2
+ &tickstart
+
+
+ 5
+ 2
+ &0x20000760
+
+
+
+ 1
+ 0
+ 0x08000000
+ 0
+
+
+
+
+ 2
+ 0
+ 0x20000708
+ 0
+
+
0