Мне не удалось найти таблицу данных для "LPC2140", но я нашел таблицу данных для того, что, по-видимому, является семейством устройств вместо этого, и что у вас может быть конкретный LPC2142 / 2144.Таблица , раздел 6.4, показывает, что SRAM сопоставлен с 0x40000000-0x40003FFF
(исходя из того, что вы сказали, что у вас есть вариант SRAM 16 КБ).Это единственное адресное пространство, которое вы должны рассматривать как ОЗУ общего назначения.Все, что находится за пределами этого диапазона в соответствии с таблицей данных, выглядит страшно, и вам следует избегать этого, если вы не полностью знаете, что делаете.
Одна вещь, о которой вы также должны знать, это доступ без выравнивания .STR
записывает полное слово сразу (4 байта), поэтому адрес должен быть выровнен по границе слова.0x40003FFF
не выровнен по 4-байтовой границе;вместо этого вы должны были писать 0x40003FFC
.Если вы просто хотели записать один байт в 0x40003FFF
, вы должны были использовать STRB
.