
Contents AN4968
2/46 DocID030088 Rev 1
Contents
1 Memory protection description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1 Read out protection (RDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 Read protection level 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 Read protection level 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3 Read protection level 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.4 Internal Flash memory content updated on STM32F72xxx and
STM32F73xxx RDP protected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Write protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Proprietary Code Read Out Protection (PCROP) . . . . . . . . . . . . . . . . . . . 8
1.3.1 PCROP protection overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2 How to enable the PCROP protection . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.3 How to disable the PCROP protection . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.4 Placing and executing PCROP-ed IP-code . . . . . . . . . . . . . . . . . . . . . . 11
2 PCROP example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 Example requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Hardware requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Example overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Scenario overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 PCROP-ed IP-code: FIR lowpass filter . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Software settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 STEP1: ST Customer level n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Project flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 Generating an execute-only IP-code . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.3 Placing IP-code and data segments in Flash and RAM memories . . . . 23
2.3.4 Write protection of constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.5 Protecting the IP-code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.6 Executing PCROP-ed IP-code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.7 Creating header file and generating symbol definition file . . . . . . . . . . . 32
2.4 STEP2: ST Customer level n+1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 Project flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.2 Creating an end user project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.3 Including header file and adding symbol definition file . . . . . . . . . . . . . 37