(important) Let the am native support the reopen of sound card.
(not quite important) Add prompt in the teaching materials, as mentioned above. I think this is not quite important because the cause of this problem is not obscure and those who are willing to complete the audio part are strong enough to solve this problem on their own.
在 PA 中出现的所有设备中,声卡应该是最特殊的一种:它在打开时会持续地“记录”
freq
,channels
,samples
三个参数,且在之后不会更改。当机器上自始至终仅运行一个程序时,这不会出现问题。但是在 pa3 中,若/bin/nterm
存在音乐并进入其它程序(如pal
),或若在程序 exit 后重新进入/bin/nterm
并打开新的程序。在这种情况下,声卡会被打开多次。若两次参数freq
等存在差异,则可能会导致音频播放出现异常。故建议在am_native
上添加允许声卡多次打开的代码,并在讲义中加入在nemu
的声卡部分进行调整,允许其多次打开的提示。以下是我的修改:其中管道的清空是必要的,否则可能出现阻塞。但我这里使用的方案个人认为并不优雅,不知道有没有更好的方法。
在 pa4 中,涉及到多个程序的切换(主要是最后的 F1, F2, F3 演示。让两个程序分时运行同时使用声卡应是不允许的,正如不能让两个程序朴素地同时使用 vga)。此时个人认为应该由 OS 进行声卡的切换管理,比如可以在 pcb 中加入相关参数。同样建议在 pa4 讲义中加入相关提示。
Suggestions: