
Firewall (FW)
RM0351
140/1830
DocID024597 Rev 5
Volatile data segment
Volatile data used by the protected code located into the code segment must be defined into
the SRAM 1 memory. The access to this segment is defined into the
. Depending on the Volatile data segment configuration, the
Firewall must be opened or not before accessing this segment area. The segment length
and the base address of the segment as well as the segment options must be configured
before enabling the Firewall (refer to
Section 4.3.5: Firewall initialization
).
The Volatile data segment can also be defined as executable (for the code execution) or
shared using two bit of the Firewall configuration register (bit VDS for the volatile data
sharing option and bit VDE for the volatile data execution capability). For more details, refer
to
4.3.4 Segment
accesses and properties
All DMA accesses to the protected segments are forbidden, whatever the Firewall state, and
generate a system reset.
Segment access depending on the Firewall state
Each of the three segments has specific properties which are presented in
Table 18. Segment accesses according to the Firewall state
Segment
Firewall opened
access allowed
Firewall closed
access allowed
Firewall disabled
access allowed
Code segment
Read and execute
No access allowed.
Any access to the segment
(except the “call gate” entry)
generates a system reset
All accesses are allowed
(according to the Flash sector
protection properties in which
the code is located)
Non-volatile data
segment
Read and write
No access allowed
All accesses are allowed
(according to the Flash sector
protection properties in which
the code is located)
Volatile data
segment
Read and Write
Execute if VDE = 1 and
VDS = 0 into the Firewall
configuration register
No access allowed if VDS = 0
and VDE = 0 into the Firewall
configuration register
Read/write/execute accesses
allowed if VDS = 1 (whatever
VDE bit value)
Execute if VDE = 1 and VDS = 0
but with a “call gate” entry to
open the Firewall at first.
All accesses are allowed