 We already generated project in Cubemax Perspective and now we can move to Quadespi Implementation. Let's have a look to generated files. There is Quadespi init function which sets Quadespi interface and Quadespi MSP function which set Quadespi pinout. Public storage contains driver for sales type assembled on F7 discovery board. Files have implementation only in user code parts. There are two ways how to copy functionality to project. We can either copy paste user code parts to project or we can replace all files and then regenerate project by Cubemax. During regeneration Cubemax leaves user parts untouched but fill rest of configuration. We can see that Cubemax parts is missing here now. But we can go to Cubemax Perspective and regenerate the project. We can see that Cubemax fill the missing parts to the files and begin parts are here from the previous file. Now we have Quadespi driver implemented and it is time to test the driver in real communication. Our application is able to initialize a stem32 Quadespi Peripheral, reset external memory chip, configure memory to required behavior, erase memory, write buffer to specific address and read data back from memory. This is basic example how to check whether our driver works properly. You can find test implementation in file main underscore test dot c. Please copy content of parts user code 0 and user code 2 to your main dot c file. We edit Quadespi driver to project but we are not sure that driver works in a good way. Since it is hard to debug external loader application we should test it now with basic main dot c functionality before we change other stuff. Go again to public storage folder and open testing folder. We will copy user parts to main dot c file. Now we can connect discovery board with USB to PC, build project and click to debug. If the application reach while loop at the end the driver works properly. The test checked arrays, write and read functionality of the driver. Ok let's summarize the steps we did. Firstly we created a cube IDE stem32 projects, then we wrote Quadespi driver with chip support package functionality and as the last step we trigger application test with success. So for now we have working Quadespi driver in a stem32 project. But the task of this handzone is creating of external loader. So we will add loader specifics files to application. It is loader underscore src and def underscore inf files. Additionally we will change the linker file to being compatible with cube programmer. The last part is changing this application to external loader. It requires some loader files and adaptation of project settings. Storage have loader files for H7 and other devices. Difference between H7 and other is AXI SRAM address. We have F7 device so we have to copy all content from other devices folder to our project. Now let's change a project settings. We have added new linker file but it is not supported yet. Please go to project properties. So we have to change linker from default value to new linker. And additionally we have to unmark checkbox discard unused sections. And click apply and close and build the project. The loader should have suffix stldr but we cannot see it here. It is because suffix of L file must be changed to stldr. You can either do it manually by changing L file or you can use post-build cube ID command. Command is available in storage folder. After build operation you can see our new external loader file was created. Perfect. We have external loader file now it's time to program external memory. So please copy file from project to cube programmer folder. The path is program files stmicroelectronics, stm32cube, cube programmer bin, external loader. Now we can open cube programmer tool. Please connect the board through a stealing and choose our loader for external memory programming. The name, start address, size and type are defined in def underscore inf dot c file. You can change it as you want. Back to cube programmer and load the binary to memory. The binary is located in quad SPI testing folder. Then change the address to 90 million hexa and start programming. Programming is done. We can go to read window and check content of quad SPI by reading address 90 million. We can see content of external quad SPI memory. That's all for the session. I hope you enjoyed the session and hopefully we will create a good quad SPI community with lot of drivers. Thank you for watching.