2025-10-23

AM是NEMU的上层应用,之前一直有点糊涂。NEMU是底层实现。

今天做timer卡了很久,一开始在__am_timer_uptime中靠添加printf debug,发现输出的时间一直是100,我以为是nemu或者__am_timer_uptime出了问题,于是就把nemu设置为debug模式,在__am_timer_uptime这里添加了断点,结果发现nemu是正常的,然后我修改了printf打印的串,发现不管把打印的数改成什么都是打印100,原来是printf出问题了。

printf的实现是用了sprintf,但是我用错了,应该用vsprintf,vsprintf