From 0d85786a399494394cb01e20e9bc8aee043d49ba Mon Sep 17 00:00:00 2001 From: Marnix Klooster Date: Mon, 30 Dec 2024 11:48:18 +0100 Subject: [PATCH] STM32F3DISCOVERY: Working blinky This enables the STM32F3DISCOVERY build of blinky, which blinks all 8 LEDs simulateously. --- examples/stmicro/stm32/build.zig | 5 +++-- examples/stmicro/stm32/src/blinky.zig | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/examples/stmicro/stm32/build.zig b/examples/stmicro/stm32/build.zig index 1493be78..cb276870 100644 --- a/examples/stmicro/stm32/build.zig +++ b/examples/stmicro/stm32/build.zig @@ -10,14 +10,15 @@ pub fn build(b: *std.Build) void { const mz_dep = b.dependency("microzig", .{}); const mb = MicroBuild.init(b, mz_dep) orelse return; + const stm32 = mb.ports.stm32; const available_examples = [_]Example{ - .{ .target = mb.ports.stm32.chips.STM32F103C8, .name = "STM32F103C8", .file = "src/blinky.zig" }, + .{ .target = stm32.chips.STM32F103C8, .name = "STM32F103C8", .file = "src/blinky.zig" }, + .{ .target = stm32.boards.stm32f3discovery, .name = "stm32f3discovery", .file = "src/blinky.zig" }, // TODO: stm32.pins.GlobalConfiguration is not available on those targets // .{ .target = stm32.chips.stm32f303vc, .name = "stm32f303vc", .file = "src/blinky.zig" }, // .{ .target = stm32.chips.stm32f407vg, .name = "stm32f407vg", .file = "src/blinky.zig" }, // .{ .target = stm32.chips.stm32f429zit6u, .name = "stm32f429zit6u", .file = "src/blinky.zig" }, - // .{ .target = stm32.boards.stm32f3discovery, .name = "stm32f3discovery", .file = "src/blinky.zig" }, // .{ .target = stm32.boards.stm32f4discovery, .name = "stm32f4discovery", .file = "src/blinky.zig" }, // .{ .target = stm32.boards.stm3240geval, .name = "stm3240geval", .file = "src/blinky.zig" }, // .{ .target = stm32.boards.stm32f429idiscovery, .name = "stm32f429idiscovery", .file = "src/blinky.zig" }, diff --git a/examples/stmicro/stm32/src/blinky.zig b/examples/stmicro/stm32/src/blinky.zig index 8bf1938d..c9258c0e 100644 --- a/examples/stmicro/stm32/src/blinky.zig +++ b/examples/stmicro/stm32/src/blinky.zig @@ -20,6 +20,28 @@ pub fn main() !void { pins.led, }; break :res .{ pins, all_leds }; + } else if (comptime microzig.config.board_name != null and std.mem.eql(u8, microzig.config.board_name.?, "STM32F3DISCOVERY")) { + const pins = (stm32.pins.GlobalConfiguration{ .GPIOE = .{ + .PE8 = .{ .mode = .{ .output = .push_pull } }, + .PE9 = .{ .mode = .{ .output = .push_pull } }, + .PE10 = .{ .mode = .{ .output = .push_pull } }, + .PE11 = .{ .mode = .{ .output = .push_pull } }, + .PE12 = .{ .mode = .{ .output = .push_pull } }, + .PE13 = .{ .mode = .{ .output = .push_pull } }, + .PE14 = .{ .mode = .{ .output = .push_pull } }, + .PE15 = .{ .mode = .{ .output = .push_pull } }, + } }).apply(); + const all_leds = .{ + pins.PE8, + pins.PE9, + pins.PE10, + pins.PE11, + pins.PE12, + pins.PE13, + pins.PE14, + pins.PE15, + }; + break :res .{ pins, all_leds }; } else { @compileError("blinky is not (yet?) implemented for this target"); }