在我写虚拟内存时遇到一些问题,jalrt0就是可以的,而callmain则没办法成功 而且这里默认main是偏移前的地址,怪哉!!! 让我们看看jalr 和call(伪指令!!!) 然后在链接后看看main的地址,主要看程序中main是不是偏移 悬着的心也死了!!! 查看一下ucore也有类似的问题,看看他们怎么解释     太复杂了!看不懂! 结论 在mmu之前jalr已经将pc值设置为绝对地址(也就是物理main+偏移=虚拟main),而call则不同,它是一条伪指令是在mmu后面执行的,这个就会造成:call到虚拟main+偏移=非法访问!

  pOQlk6xJ7yt8   2024年04月10日   42   0   0 嵌入式

g编译os的memory'时不知道为什么报错。尝试了很多方法(也可能搜错了) 可以确定是纯虚函数出现了问题   复习一下虚函数的子类构造和析构的过程吧(一年过去了) 允许派生类调用父类的同名函数而实现不同的功能,也叫动态联编。 底层原理:虚函数表+虚函数表指针。每一个类都会对应一个虚函数表,一个存放虚函数地址的虚函数表,并创建虚函数指针(vptr)来指向表。 虚函数和纯虚函数的区别纯虚函数和虚函数都可以在子类中被重写,他们的区别是:1.纯虚函数只有定义,没有实现,而虚函数有定义,也有实现的代码。纯虚函数语法:virtualvoidprint()=0;2.包含纯虚函数的类不能定义...

  pOQlk6xJ7yt8   2024年03月30日   76   0   0 嵌入式

不得不说,这个我写了两天。第一天晚上想移植一篇博客的,后来经过四个小时发现是错了谁懂啊!今天早上又找了一篇,大错误我都改了,有一个潜在的小bug是自己调试跳出来的,谁懂啊!得找阅读量高的才行! 先把刚刚的小错误放一下  也不知道博主怎么想的,同时i和keynum,害,害我好找!!! 改后就好了 由于老师要求的数据规模太大,我小小的vs承受不起,我只能想法设法减少我开辟的空间,连数组都不要了(哭) 结构(这是我采取的数据结构) 1//关键字索引0(不记录)1234(不记录具体数值) 2//孩子的索引01234 3 4//树结点信息 5typedefstructTreenode ...

  pOQlk6xJ7yt8   2023年11月30日   15   0   0 算法与数据结构
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~