 ADP Enzone. La poursuite de l'enzone est de tester la protection ADP. La première étape est de créer et d'enlouer un projet de bling sur le bord de la nucléaire. Puis nous allons faire une transition au niveau ADP 1 et vérifier les statistiques. Puis nous allons faire une régression au niveau 0. Ok, let's switch maintenant au STM32 cube ideal. Let's start a new project. Got the target selector. I select the board. L476. Nuclear. Let's call it test ADP. And finish. We initialize all the peripherals with the default mode. So we've got the pinout defined. The code has been generated. Now let's move to the main. And add the blinking code. So in the main, I will go in the wire1 loop. And here I will just add the GPIO toggle in. So let's start with LG2. This port. LG2. Control space to have the completion. And pin. I will add a short delay. And that's it for the code. Let's build the project. Then we will download it. So the bugger is connected. It has been downloaded. If I load the code. Let's check the status. LED is blinking. Fine. Now I propose to do the transition from ADP level 0 to the level 1. To do this, we will use the STM32 cube programmer. You can also do this in your code. Thanks to HL command. But I think it's more simpler here to use the STM32 cube programmer. So here. Here. Let's connect to the board. Oh sorry. I forget to get the debugging link. Here. From STM32 cube programmer. So I remove it. Now I can connect. So here I'm connected on the board. So the core is alt. I can check the flash content. Everything is available. And now I move to the option byte. Let's check the readout protection. No protection at all. So let's move to the ADP level 1. Apply. Option byte is successfully programmed. Ok. So now I disconnect. And if I push a reset button. No blinking LED. Remember to do this. Now I connect. And if I push a reset button. No blinking LED. Remember in the theory. I warn you about the fact. When you program the ADP level. You need to do a full power cycle. So here to do this. I will remove the jumper. And put it again. And now my program is functional. Ok. So this is really important to have this in mind. So I'm in ADP level 1. Let's try to connect and dump the flash content. So if I connect. I've got a warning. Error data read fail. What happened? Here we try to access this address. And if I try. Say it's not possible. All the flash content is locked. And doing this. I violate. I will say the security. And now even if the core. If I disconnect. The LED is not blinking. If I do a reset. So again. Is to do a full power cycle. So I'm better. Here we've got the LED blinking back. Ok. So our code is well protected. Now let's do a regression. Because we can still modify the option byte. Even if I can't access the flash. So if I connect again. I go on the option byte. And I do the regression. To the ADP level 0. If I apply it. Option byte successfully programmed. And if I have a look. In my flash content. I was able to read it. But now you can see. It has been eras. During the transition of the ADP level 1 to ADP level 0. There is a flash mass eras. And you can prevent this. This is a security mechanism. So here now. I've got a board without any firmware inside. I think that's what I want to show you. Thank you.