Hello, guys

In my understanding, function exec.c:address_space_rw is used to handle read 
and write access requests to address space. In order to check my opinion, I 
write guest code and debug Qemu to see the path of code execution.


If I read or write with address of MMIO like UART,  it will hit function 
address_space_rw.


*UART_ADDR = 'c';  //hit address_space_rw


However, if I read from or write to RAM address, it does NOT hit 
address_space_rw. Consider below code:


char str[] = {'h', 'e', 'l', 'l', 'o', '\0'};   //This array should locate in 
RAM virtualized by Qemu
char temp = str[2]; //Read char from RAM, NO hit to address_space_rw
str[3] = 'k';  //Write char to RAM, NO hit to address_space_rw


For address_space_rw, why access requests to MMIO and RAM address have 
different results? Are there any other functions that are used to handle R/W 
request to virtual RAM in Qemu?


Could you give me some idea? Any suggestions will be helpful. Thanks a lot.




-Kaiyuan 





Reply via email to