0%

wt-second-stage-summary

选题杂谈

​ 得知开源操作系统夏令营第二阶段我入选的时候,其实还是挺惊喜的。我第二阶段选的做的方向是移植Rustsbi到哪吒开发板上。其实之前我没有过移植经验,但是好像其他更没什么经验,又不想选标了简单(大概?)难度的文档制作,想给自己创造点难度(后面确实认识到难度了0.0),又因为之前参加全国大学生操作系统大赛(因为没有知识储备啥的,没有做出什么东西),见过Rustsbi-k210,于是我在夏令营第二阶段便选择了Rustsbi的移植工作。

移植的工作与困难

​ 在正式开发之前,整了大概七八天的串口通信,开发环境配置,Rustsbi文档阅读,USB驱动安装,烧写软件phoenixsuit,哪吒D1开发板进入FEL烧写模式等等。这中间真是坑点颇多,识别不到设备啊,识别不到FEL模式啊,无法使用USB驱动啊等等。

​ 历经千辛万苦之后,便开始了Rustsbi的移植工作,一开始是准备纯靠自己看SBI文档手撸一个出来,一两天后发现自己好像水平不太够。于是便参考Rustsbi在K210上的移植代码,慢慢开始写了起来。K210版本中,有社区自带的K210-hal包,于是需要自己写一个类似的hal包,这也弄了挺久。最后用xfel烧录到哪吒D1开发板上后,串口输出的内容有些问题,发现几个问题:1.pmp没初始化 2.输出的格式不对,于是就是漫长的修bug时间。

​ 最后把rustsbi-D1.bin和test-kernel.bin(测试模块)dd到一起,一起烧录进去,就OK了。

​ 本来是计划要开发D1开发板的SD卡驱动,时间原因与知识储备原因,只看了一部分相关文档,并未实现。

夏令营体验

​ 夏令营的两个月,还是非常充实的。先是一个月的基础知识的学习,再是一个月的开发与研究。平时也有各路大佬分享会。

​ 我觉得在学习过程中,不能半途而废,应该坚持,不会的可以多咨询论坛大佬,老师,同学。我在第二阶段的开发过程中,其实还有8,9天就要结束的时候,我的移植工作还没有明显的进展,但也没有放弃,一步步的来,能做到哪都是成就,尽力就好,所幸,最后还是出了一丢丢东西的。

​ 每天的工作应该有个计划,按照计划来,一步步的走。

​ 平时遇到一些bug或者困难,我会去咨询(或者交流)一下经验更多的同组的杨云枫同学,这里也是非常感谢他,给了我很多帮助,没有觉得我很笨或者啥的,哈哈。

后续想法

​ 之后也会维护好这个项目,添加一些拓展功能和D1开发板的SD卡驱动。

致谢

​ 特别感谢杨云枫同学,洛佳学长,肖洛元学长和各位老师。