But there are no regions generally. There is no way any system can know if a write at some address is a legitimate write to the variable at that address or a stack overflow into that address.
Obviously if you are not using all the SRAM, you can define the middle section as unused in a platform specific way. But the question is why? If you have some memory left after the variables are allocated, you might as well allocate it for the heap/stack.
And this is where you need to decide how much of that memory in the middle you are willing to waste. Obviously if you don't have a lot of data and you can limit your stack to a very small size, you can declare most of the SRAM as RO, but this is not a typical scenario.