使用Rust重构C语言写的FreeRTOS,并添加FatFS文件系统拓展模块,增加其应用场景
| 日期 | 事件 | 结果 | 备注 |
|---|---|---|---|
| 2025.3.3-2025.3.12 | 各自调研,提出选题 | 于皓翔:OS preresearch RAY; 刘思宇:FreeRTOS与FATFS的重构及结合; 李易:ROS(机器人操作系统)调研; 王超然:虚拟化技术; 黄明昊:Nginx负载均衡算法优化; 马文宇:AIOS; |
老师否定了改进Nginx相关的选题 |
| 2025.3.15 | 第一次讨论(线下) | 对选题进行了初步的探讨,确定了几个基本方向,准备与老师讨论 | 0315 1st discussion |
| 2025.3.17 | 与老师讨论 | 将“FreeRTOS与FATFS的重构及结合”与“基于区块链的分布式文件系统”作为初步的选题,准备调研之后从中确定选题 | |
| 2025.3.18-2025.3.23 | 各自选择两者之一调研 | 于皓翔:Blockchain_Research; 刘思宇:FreeRTOS与FATFS的重构及结合; 李易:基于区块链和IPFS的操作系统可能选题调研; 王超然:区块链技术; 黄明昊:基于区块链的模型驱动文件系统; 马文宇:AIOS; |
|
| 2025.3.23 | 第二次讨论(线下) | 在两个不同的选题中,经过“激烈”的讨论,最终选定为:FreeRTOS与FatFs的结合及部分内核的Rust重构与添加 | 0323 2nd discussion |
| 2025.3.24 | 第三次讨论(线下) | 我们在线下具体讨论了调研报告的内容和分工,具体分工为: 于皓翔 - C语言的局限性和Rust的优越性,C语言与Rust的混合编译; 刘思宇&&李易 - FreeRTOS文档&&源码阅读; 黄明昊&&马文宇 - FatFs文档&&源码阅读; 王超然 - FreeRTOS 系统可拓展模块及其应用场景 |
|
| 2025.3.29 | 第四次讨论(线下) | 我们在研讨室根据这一周各自的调研内容,撰写了最终的调查报告 | researchReport |
| 2025.3.30 | 第五次讨论(线上) | 我们使用飞书协作平台开了一个线上会议,详细讨论了可行性报告的内容以及分工,具体分工如下: 李易:Rust改写C语言的可行性;刘思宇:Rust与C的混合编译;于皓翔, 王超然:嵌入式系统可拓展模块;黄明昊, 马文宇:FatFS 源码+文档分析 |
|
| 2025.4.5 | 第六次讨论(线下) | 我们在2211空教室合作完成了可行性报告的撰写。同时,我们分析了后续工作:FreeRTOS和FatFS的结合部署;FatFS的单独部署;QEMU上部署FreeRTOS;rust全局分配器(这个任务旨在探讨重构方案),并开始对部署FreeRTOS与FatFS的尝试 | 可行性报告 |
| 2025.4.19 | 第七次讨论(线下) | 我们分别完成了原版FreeRTOS与FatFS的单独部署,并在2211教室合作整理了中期汇报的文字内容,由李易同学完成了中期汇报PPT的整合与制作。 最后,我们讨论了Rust重构的具体步骤,初步确定为:从FreeRTOS数据结构与Rust的对应入手,在此基础上逐个函数地进行改性测试,由刘思宇、于皓翔同学进行数据结构对应工作,其余同学继续学习Rust、FreeRTOS架构,并尝试改写单个函数。 注:接下来10~15天,因期中考试、比赛等影响,进度暂停 |
中期汇报 |
| 2025.5.17 | 第八次讨论(线下) | 我们初步完成了数据结构的对应工作,并对Rust与FreeRTOS有了一定的了解。在此基础上,我们给出了模块与函数对外的接口,以及一些全局变量的定义。之后,我们继续讨论了这个月要进行的内核重构分工,每个人对应了一定数量的函数,并借助cursor生成并修改了部分代码 | |
| 2025.5.24 | 第九次讨论(线下) | 我们讨论了遇到的bug,分享了debug的经验,并对接下来几天大家需要攻克的事情,进行了更细致的重构与测试分工,为了保证进度,设置了严格的ddl。最后,我们上传了最新的工作。 | |
| 2025.6.1 | 第十次讨论(线下) | 我们为进一步优化,减少unsafe块进行了尝试与讨论,准备对C语言的双链表进行rust相关对应(数据结构对应部分依旧由刘思宇和于皓翔同学完成),其他unsafe场景如裸指针解引、union类型等由李易、王超然、马文宇、黄明昊调研并进行尝试改进 | |
| 2025.6.5 | 第十一次讨论(线下) | 初步完成了Rust改写以及重构部分,我们对于各个模块分别编写测试程序,进行正确性测试 | |
| 2025.6.11 | 第十二次讨论(线下) | 汇总进展与问题,接下来的下两周准备期末考试,考试结束后开始尝试Qemu测试与上板验证 | |
| 2025.6.24 | 第十三次讨论(线下) | 考试结束后进行Qemu测试,遇到了硬件接口问题 | |
| 2025.6.26 | 第十四次讨论(线下) | 解决了硬件接口问题,尝试为Rust版本添加模块 | |
| 2025.6.28 | 第十五次讨论(线下) | Rust版本添加模块结束,开始期末答辩ppt相关工作,答辩分工如下: 文件模块:马文宇;日志模块:王超然;C重构:于皓翔;Rust重构:刘思宇,李易;介绍与总结:黄明昊 |
|
| 2025.7.2 | 第十六次讨论(线下) | 完成最终的大作业报告,延续答辩的分工 | 期末报告 |
