Добрый день!
1.1 Если выбран режим загрузки из ОЗУ или BFLASH адрес чтения/записи MFLASH должен быть указан с учетом смещения 1000_0000 или внутри модуля MFLASH адресация с 0?
Если вы читаете из глобального адресного пространства, то 1000_0000. Если через регистры - то с 0.
Но фактически, вы можете в регистр вносить и глобальный адрес 1000_0000 - старшие биты там всё равно отбросятся.
1.2.Если выбран режим загрузки из MFLASH, чтение данных (через шину не через регистр) с адреса 1000_0000 и с адреса 0h даст одинаковый результат?
Верно, одинаковый.
2.как поведет себя модуль если значение регистра адреса не будет выравнено по границе 64 байта.
Он будет выровнен автоматически - значение нижних битов отбрасывается, обеспечивая выравнивание по 64 байта.
3.Если необходимо записать менее 16 слов, чем заполнить регистры DATA (0xFFFFFFFF или 0x0)
0xFFFFFFFF. В регистрах DATA[x] эти значения уже лежат по умолчанию. После каждой записи все регистры заполняются 0xFFFFFFFF вновь. Т.е. достаточно модифицировать только нужное слово. Однако, если было произведено чтение через эти регистры, то забить их значением 0xFFFFFFFF надо вручную, т.к. они будут хранить результаты последнего чтения.
4.Правильно ли я планирую алгоритм записи?
Предположим были записаны данные через регистры DATA[0],DATA[1], при следующем включении необходимо сохранить ДОПОЛНИТЕЛЬНО 2 слова. Адрес должен быть выравнен, поэтому либо смещать адрес относительно предыдущей записи на 64, либо заполнить ВСЕ регистры DATA[x] (x=0..15) значением 0xFFFFFFFF (или 0), а в регистры DATA[2], DATA[3] - добавить нужные данные для записи.
В этом случае достаточно просто модифицировать только DATA[2], DATA[3] (ответ на п.3) и сделать запись по выровненному адресу.