 Proprietary code without protection also called PCROP and frankly speaking I think I will use this acronym until the end of this presentation. So this feature is a memory error in flash that is defined execute only mode. That means the CPU can jump in this error to execute code but can't read or write it. This region can be read even thanks to the debugging link and it's configured thanks option by because it's a static protection so bisector for the F4, F7, L0, L1 family by Aurelia for the L4, H7, G0, G4 and WB. To remove the PCROP you need to have two conditions. The first one you should have one option byte which name is PCROP underscore ADP option bit that should be set. Then you should perform a ADP1 to ADP0 regression. I describe more of this mechanism in the ADP chapter but just to sum up if you do such kind of transition there is a mass errors of all the flash and if the PCROP underscore ADP is set then the PCROP region will be removed also. If you do this regression of ADP level without setting the PCROP ADP then it will do a mass errors without altering the PCROP region so the content is still there. The constraints link to this region it's execute only so you have to compile to remove all data access from the code of this portion of code so there is GCC option, KL option and AI option for sure. So you have to modify your scatter file to put in place only this read only region in the good area of the flash. Not so easy there is some application not to do that and the unsone that I proposed just after the theory we will experiment this. Okay just to sum up what's happened on the flash we've got our firmware IP code I will say some valuable firmware we want to protect okay so it have been compiled just to remove all data access and then we protect it thanks PCROP. In the SRAM I just show you that this firmware will need to use some SRAM for the volatil data and unfortunately is not protected by the PCROP or it can't be. So imagine a malicious firmware it can't read or write this firmware IP so it can't try to get the bits and try to unassembly it it can't even read or access to it but it can launch it and if it launch it there will be some volatil data that will be present in the SRAM and the malicious firmware could see them. It's something to have in mind when you develop. So the benefit of this mechanism firmware IP protection for sure you can access to it even from the core or the debugging link. Mutual protection if you've got different presions of PCROP and you can have different firmware which are just behind each one but which cannot I will say access the content. It's an interesting feature in ADP level 0. ADP level 0 that means there is no security activated mainly or flash access is for free only for the PCROP region so you can deliver a firmware to collaborators and it's completely hide by PCROP. Code integrity can be modified the weakness of this mechanism the volatil data that are not protected and also the fact that you have to do some specific compilation not so easy sometimes. The first tips you've got the possibility to hide some data in the PCROP region in fact we will use some assembly code because with the assembler you can generate some value in registers without any data access. So I just put here an example if you are executing such kind of code you will have in the R1 directly the value 5F454F without any data access. So for a security point of view imagine you have specific key value you just calling the value with this assembling code and put it behind PCROP after it can only be executed and then you get for sure the value somewhere in the registers so you have to take care where you put it but it's a way to I will say to store some secret value inside the flash. Some specificity on the LDRO there is a mutual exclusion with WRP protection that mean if you activated WRP you can't activate PCROP and symmetrically if you have PCROP you can use write protection. On the F4 it's not available on the ZORF1 and we've got also the mutual exclusion with WRP protection for the others. For the F7 take care it's not available on the F74, F75, F76 and F77. Here you've got the sum up of which family have the capability of the flash PCROP and now I propose to switch to Anzan just before sorry the reference here if you are interesting to configure PCROP I really advise to download this Xcube PCROP so it's a cool example with some practical on microcontroller F4, F7 and L4 and there is a three associated application note which explains how to compile on how to modify scatter files. Now we switch to the Anzan.