Разделение RAM-ключа для нескольких микропрограмм
Если я использую несколько микропрограмм в одном ключе (например 4 программы для ключа с 128кБ), то как быть с RAM-ключа: следует его делать общим для всех четырех программ или разделить на несколько частей, задавая соответствующие значения в makefile?
Отсюда возникают следующие вопросы:
1) Если я разделяю RAM на части, то каким должно быть выравнивание памяти?
2) Если я использую общую RAM на все четыре программы, то доступны ли значения NO_INIT-переменных, созданных одной программой в другой; т.е. может ли программа номер 2 изменить (случайно или намеренно) данные, расположенные по адресу NO_INIT-переменной, которая описана и создавалась в программе номер 1?
3) Могут ли совпадать имена буферов ввода-вывода для всех программ, записанных в ключ, или же обязательно должны различаться? Если я использую общую RAM, то все буферы будут создаваться по одному и то му адресу и "перетирать" друг друга?
4) Кстати, по какому адресу располагаются буферы ввода-вывода? Вначале зарезервированной RAM? Сначала идет буфер ввода, а за ним буфер вывода?