У меня есть некоторый код C, работающий в режиме RTL, я использую CPU I6400
код C - это просто простой код для чтения и записи из некоторой подсистемы, например,
Я пытался писать по этому адресу: 0x001e400000
(физический адрес), поэтому, когда ЦП выполняет этот адрес, я получил TLB exception
, потому что этот адрес является отображенной областью, после многих исследований мне стало интересно, что мне нужно перевести этот адрес из виртуального адреса в физический адрес, я заменяю этотадрес на 0xffffffffbe400000 (Kseg1)
, теперь я могу написать некоторое значение в этом адресе, но когда я попытался прочитать с этого адреса (W / R) или другого адреса, я получил исключение на KSEG2,
Вы представляете, почему шаг написания проходит правильно, а шаг чтения создает исключение?