Hay varias interpretaciones de 'seguro'.
Uno es, ¿puede el procesador acceder a los bloques de RAM como bloques contiguos?
Eso se describirá en la hoja de datos de la pieza. Yo esperaría que los microcontroladores con RAM separada pero adyacente pudieran tener algunas restricciones. Por ejemplo, puede que no haya restricciones para la CPU, pero el bus puede impedir el acceso a algunos bloques por parte de DMA.
Por lo tanto, puede desarrollar un programa y luego descubrir que necesita usar DMA. Ese sería un momento en que el comportamiento podría volverse "inseguro". Rastrear el error podría ser difícil si la memoria necesaria en las transferencias de DMA está cruzando y desviando el límite de la memoria a medida que el programa evoluciona.
Un segundo uso de diferentes nombres de segmentos para la misma memoria es "reutilizar" la memoria en diferentes etapas del ciclo de vida de un programa. Por ejemplo, algunos bloques de variables pueden ser necesarios durante una fase temprana de la vida del programa, por ejemplo, para la inicialización, pero nunca más tarde. Por lo tanto, podría tener las variables de "superposición" del vinculador con tiempos de vida diferentes. Esto puede ser difícil de depurar y hacer que el mantenimiento sea mucho más difícil porque su programa está administrando la vida útil de sus variables.
¿Para qué va a utilizar los segmentos de memoria alternativos (RAM0, RAM1, RAM0_M1PART1 y RAM1_PART2) para?
¿Planea pedirle al vinculador que coloque variables o código en los cuatro segmentos de memoria dentro de un programa? Como se explicó anteriormente, es poco probable que esto sea seguro a menos que se administre cuando los segmentos de memoria alternativos están 'vivos', de modo que sus vidas no se superpongan.