<font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 12.8px;">hello :</span></font><div><font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 12.8px;"><span style="white-space:pre">        </span>i find some BUG when use bsp with mmu</span></font></div><div><font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 12.8px;"><span style="white-space:pre">   </span>1. all device memory must set XN bit. </span></font><span style="font-family: Verdana, Arial, Helvetica, sans-serif;">device memory </span><span style="font-family: Verdana, Arial, Helvetica, sans-serif;">Instruction fetches not allowed (always treated as XN=1).(see armv7  arm-arm ***</span><font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 12.8px;">B5.2.1 Access permissions***</span></font><span style="font-family: Verdana, Arial, Helvetica, sans-serif;">) </span><font face="Verdana, Arial, Helvetica, sans-serif">On our board this case </font><span style="font-family: Verdana, Arial, Helvetica, sans-serif;">fetches</span><span style="font-family: Verdana, Arial, Helvetica, sans-serif;"> </span><span style="font-family: Verdana, Arial, Helvetica, sans-serif;">Instruction</span><span style="font-family: Verdana, Arial, Helvetica, sans-serif;">  in device memory.</span><span style="font-family: Verdana, Arial, Helvetica, sans-serif;"> </span><font face="Verdana, Arial, Helvetica, sans-serif">This bug is quite troublesome to find!</font></div><div><font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 12.8px;"><span style="white-space:pre">      </span>2. link.cmd  MMU memory must align by page size(1M or 4K ). if not , may case Page property override!!</span></font></div><div><font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 12.8px;"><span style="white-space:pre">        </span>3. may support page 1m an 4K mix. i have change a version and it work well. this will save memory.</span></font></div><div><span style="white-space:pre">  </span>4.  can use MMU to do stack check.  stack will map twice £¬ </div><div><span style="white-space:pre">           </span>(1)one-one mapping </div><div><span style="white-space:pre">              </span>(2)  mapping with hole.  like</div><div><span style="white-space:pre">                  </span>{|-----------other virtual space ------------<span style="font-size: 12.8px;">| stack (map phy memory) | --- page size hole (only has virtual memory , not map phy memory )---| stack2|  --- page size hole (only has virtual memory , not map phy memory )---|</span> -----------other virtual space ------------|}</div><div><br></div><div><span style="white-space:pre">      </span>5. memory with mpu, can use a region protect stack last 32 byte ,  when task switch , switch stack to other task's stack. </div><div><span style="white-space:pre">  </span></div><div><span style="white-space:pre">      </span>4 and 5 , We're implementing the code for test.</div><div><span style="white-space:pre">       </span></div><div></div></font>