Better support for creating user board targets
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 15/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
調査の方向性
The payload centres on the custom board setup in build.zig, which calls mb.ports.rp2xxx.chips.rp2040.derive with pico_board.imports, and on boards/xiao_rp2040.zig, which imports shared/rp2040_bootrom.zig. Start by reading how the pico board's bootrom import is exposed through MicroBuild, then decide how a user board could reuse the generated bootrom without copying the file. Done means a design decision on the API, which the thread has not yet reached.
索引モデルが issue の本文から書いたものです。
説明
When attempting to create a custom, project-specific board target for the XIAO RP2040 I found that it was very difficult to reuse parts from predefined boards that use the RP2040 chip. More specifically, it required a very roundabout way to setup the bootloader.
build.zig:
const std = @import("std");
const microzig = @import("microzig");
const MicroBuild = microzig.MicroBuild(.{
.rp2xxx = true,
});
pub fn build(b: *std.Build) void {
const mz_dep = b.dependency("microzig", .{});
const mb = MicroBuild.init(b, mz_dep) orelse return;
const pico_board = mb.ports.rp2xxx.boards.raspberrypi.pico.board orelse return;
const target = mb.ports.rp2xxx.chips.rp2040.derive(.{
.board = .{
.name = "XIAO RP2040",
.root_source_file = b.path("boards/xiao_rp2040.zig"),
.imports = pico_board.imports,
},
});
const firmware = mb.add_firmware(.{
.name = "main",
.target = target,
.optimize = .ReleaseSmall,
.root_source_file = b.path("src/main.zig"),
});
mb.install_firmware(firmware, .{});
}
boards/xiao_rp2040.zig:
const microzig = @import("microzig");
const hal = microzig.hal;
pub const xosc_freq = 12_000_000;
pub const bootrom = @import("shared/rp2040_bootrom.zig");
comptime {
_ = bootrom;
}
pub const pin_config = hal.pins.GlobalConfiguration{
.GPIO12 = .{ .name = "rgb_led", .direction = .out },
.GPIO17 = .{ .name = "user_led_r", .direction = .out },
.GPIO16 = .{ .name = "user_led_g", .direction = .out },
.GPIO25 = .{ .name = "user_led_b", .direction = .out },
};
I find I'm having to reference the generated bootloader for rp2040 boards though other boards (here the rp pico) and copy over the rp2040_bootrom.zig to my project for it to compile, which feels convoluted. Is it possible to streamline this process by, for example, exposing the bootloader generation to the user?
- 主要言語
- Zig
- スター
- 2.3k
- フォーク
- 198
- 平均マージ
- 1日 8時間
- マージ済み PR(30日)
- 37
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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)オープン
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
ZigEmbeddedGroup/microzig#1072 ·
メンテナーはふだん 1 日以内に返信
ZigEmbeddedGroup/microzig の issue をすべて見る
似ている issue
-
--version on a main build shows no commit hash対応中かも @switch87 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
storytold/photocraft#5247 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
apache/grails-core#16635 ·
メンテナーはふだん 1 日以内に返信
-
kind/feature triage/accepted
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
projectbluefin/dakota#1773 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Update uv to 0.12.18オープン
難易度 2/5 1時間未満 初心者へのやさしさ 68/100