Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin' into nostalgia
Browse files Browse the repository at this point in the history
  • Loading branch information
lvyuemeng committed Aug 14, 2024
2 parents 0a526fd + 8851a2d commit af39c01
Showing 1 changed file with 24 additions and 13 deletions.
37 changes: 24 additions & 13 deletions docs/进度跟踪.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,41 @@
# 进度跟踪

## 20240803
## 2024-8-03

### 目前已完成的工作
### 完成工作

1. 封装了 ClkHw 结构和 ClkOps 特征,用于 i2c 驱动完成中的时钟管理功能,代码主要集中在文件 [rust/kernel/clk_provider.rs](rust/kernel/clk_provider.rs)
1. - 封装 ClkHw 结构和 ClkOps 特征,用于 i2c 驱动完成中的时钟管理功能,代码主要集中在文件 [rust/kernel/clk_provider.rs](rust/kernel/clk_provider.rs)
- 建立 interrput.h 尝试部分封装
- 建立 i2c.h 尝试部分封装
2. 将 6.1 内核中 module 宏的 params 字段添加回来,用于添加 i2c 驱动模块的相关参数,代码主要在文件 [rust/macros/module_param.rs](rust/macros/module_param.rs) [rust/macros/helpers.rs](rust/macros/helpers.rs)[rust/macros/module.rs](rust/macros/module.rs)
3. 将 c 版本 i2c 驱动代码翻译成 Rust 版本,代码主要集中在 [drivers/i2c/busses/i2c_bcm2835_rust.rs](drivers/i2c/busses/i2c_bcm2835_rust.rs)

- 其中前两项工作已全部完成,第三项工作还在进行中:其中 bcm2835_i2c_register_div 的实现基本完成,下一步主要是实现 bcm2835_i2c_probe 函数中的内容,以及完成驱动框架的整体流程,让驱动模块真正能运行起来。
- 前三项结构下一步主要是实现 bcm2835_i2c_probe 函数中的内容,以及完成驱动框架的整体流程,让驱动模块真正能运行起来。

### 接下来可做的工作
### 计划工作

#### 结构实现

1. [ ] 使用 module_platform_driver 宏来注册 i2c 驱动模块(现在使用的是 module 宏,但根据老师的建议应该使用前者),并让 i2c 驱动模块能运行起来(不需要真正实现功能,只需要在关键函数中打印一些信息即可)
- [x] 测试模块的加载和卸载,并测试其运行结果 (已在 QEMU 和树莓派中测试,可正常进行模块的probe和remove)
- [ ] 使用真实的 i2c 设备进行测试
2. [ ] 完成 i2c_algorithm 在 rust 下的实现,可以参考 ClkOps 和 UartPortOps 的实现
- [ ] 完成代码编写并通过编译测试
3. [ ] 完成 i2c_adapter 在 rust 下的实现
2. [x] 完成 i2c_algorithm 在 rust 下的实现,可以参考 ClkOps 和 UartPortOps 的实现
- [ ] 完成代码编写并通过编译测试
4. [ ] 完成 i2c_msg 在 rust 下的实现
3. [x] 完成 i2c_adapter 在 rust 下的实现
- [ ] 完成代码编写并通过编译测试
5. [ ] 完成 of_node 部分功能的实现
4. [x] 完成 i2c_msg 在 rust 下的实现
- [x] 完成代码编写并通过编译测试
5. [x] 完成 of_node 部分功能的实现
- [ ] 完成of_node_full_name
6. [ ] 完成 interrupt mod 的部分功能实现
- [ ] 完成 request_irq 的封装
7. [ ] 完成 bcm2835_i2c_probe 函数的实现(依赖前几项工作)
6. [x] 完成 interrupt mod 的部分功能实现
- [x] 完成 request_irq 的封装
- [ ] 完成 bcm2835_i2c_probe 函数的实现(依赖前几项工作)
- [ ] 完成代码编写并通过编译测试
- [ ] 使用真实的 i2c 设备进行功能测试

#### 封装及改进实现

1. [ ] 扩展 Bcm2835I2cDev 结构, 完善封装.
2. [ ] 消除 i2c_bcm2835_rust.rs 中的 unsafe 代码.
3. [ ] 完善补充及增添代码的批注及安全注释.

0 comments on commit af39c01

Please sign in to comment.