FreeRTOS module improvements
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 14/100
- Issue 类型
- 功能
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
- 技术栈
- c
调研方向
This is a roadmap of several separate tasks, not one change. Start with the FreeRTOS module's Zig wrapper in modules/freertos/src/root.zig and the RP2040 config in modules/freertos/config/RP2040/FreeRTOSConfig.h. Done would mean one sub-item (for example, wrapping one more FreeRTOS API function) is finished with maintainers agreeing on the approach first, since the multicore and port questions are still open design decisions.
由索引模型根据 Issue 内容生成。
描述
#871 introduced FreeRTOS integration for RP2040 and RP2350 ARM targets but there is still more things to do.
More Zig wrapping functions
At this moment only few FreeRTOS API functions are wrapped in zig module, would be nice to add all of them.
More config options in build
Right now all FreeRTOS configs are set in FreeRTOSConfig.h file, would be nice to extract some of this option to zig build file. For example:
configTOTAL_HEAP_SIZE
configSUPPORT_STATIC_ALLOCATION
configNUMBER_OF_CORES
Allocator selection
Current implementation support just on default FreeRTOS heap allocator / strategy: heap_1.c We should allow in build config to select this by configuration option and expose all 5 standard allocators + add extra option where custom zig allocator could be provided.
Multicore support
Current ports for RP2xxx do not support multicore operation because the following functions remain unimplemented: multicore_launch_core1, multicore_reset_core1, and multicore_doorbell_claim_unused.
The main question is where these functions should be implemented: in Zig itself, or in C glue code that utilizes the Pico SDK implementation, similar to how IRQ handling is currently done. This confusion arose because the current Zig HAL already has an implementation of multicore_launch_core1, but its quality and correctness are unclear. Or maybe there should be build option to say which elements should be provided by C code?
RP2350 RISC-V port
I tried to add this port but finally get stuck with 2 missing symbols: __StackOneTop and __StackTop. In PicoSDK those are defined in liner script so microzig target would have to introduce something similar.
ESP32 C3 port
First, the base version used there is an older FreeRTOS release (V10.5.1) with custom patches. The current FreeRTOS version (V11.2.0) used by the MicroZig module already includes these patches and changes, so the only relevant parts are likely located here.
This code can either be reused directly or copied and slightly modified as needed. Don't know if generic RISC-V target from FreeRTOS repository can be used in this case directly.
CH32V port
Probably good place to start is this repo. It looks like those ports are using generic RISC-V port from FreeRTOS-Kernel repository and only thing that have to be included is additional header from chip_specific_extensions folder? All the rest code in linked repo looks like copy/paste from FreeRTOS.
- 主要语言
- Zig
- 星标
- 2.3k
- 派生
- 198
- 平均合并
- 1 天 8 小时
- 30 天内合并 PR
- 37
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ZigEmbeddedGroup/microzig 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 88/100
ZigEmbeddedGroup/microzig#1086 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 69/100
ZigEmbeddedGroup/microzig#1085 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
ZigEmbeddedGroup/microzig#1061 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
ZigEmbeddedGroup/microzig#1059 · 1 条评论 ·
维护者通常 1 天内回复
-
regz: AVR peripherals generated at address 0 when the register-group name matches the module (ATDF)可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 4/5 3-5 天 新手友好度 48/100
ZigEmbeddedGroup/microzig#1072 ·
维护者通常 1 天内回复
查看 ZigEmbeddedGroup/microzig 的全部 Issue
相似的 Issue
-
bug
难度 1/5 1 小时以内 新手友好度 90/100
维护者通常 1 天内回复
-
good first issue Hacktoberfest
难度 1/5 1 小时以内 新手友好度 90/100
Adnan9-63/life-tracker#43 ·
维护者通常 2 天内回复
-
ci: nothing regenerates the Go contract types, so a hand-edit to types.gen.go passes可能已有人在做 @shaiknoorullah 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
shaiknoorullah/hg-mono#993 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
FormidableLabs/spectacle#1372 ·