From bee9777a4b3ff5ac3f5b8d6c5710b4e1579a2bae Mon Sep 17 00:00:00 2001 From: Filipriec Date: Mon, 23 Mar 2026 09:41:11 +0100 Subject: [PATCH] blinky --- flake.nix | 2 +- tiva/build.zig | 2 +- tiva/src/main.zig | 26 +++++++++++++++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 7e94b29..ff807f2 100644 --- a/flake.nix +++ b/flake.nix @@ -15,7 +15,7 @@ zls = pkgs.zls; in { devShells.${system}.default = pkgs.mkShell { - buildInputs = [ zig zls ]; + buildInputs = [ zig zls pkgs.openocd ]; shellHook = '' echo "Entering Zig Master Environment" echo "Zig: $(zig version)" diff --git a/tiva/build.zig b/tiva/build.zig index 1e2c11e..4ffee74 100644 --- a/tiva/build.zig +++ b/tiva/build.zig @@ -20,7 +20,7 @@ pub fn build(b: *std.Build) void { const cmsis_path = "/home/priec/programs/CMSIS"; // Generic CMSIS Core (for core_cm4.h) - tiva_module.addIncludePath(.{ .cwd_relative = cmsis_path ++ "/CMSIS/Include" }); + tiva_module.addIncludePath(.{ .cwd_relative = cmsis_path ++ "/Include" }); // TM4C Device Specific (for TM4C123GH6PM.h) tiva_module.addIncludePath(.{ .cwd_relative = cmsis_path ++ "/Device/TI/TM4C/Include" }); diff --git a/tiva/src/main.zig b/tiva/src/main.zig index be45d66..77822f9 100644 --- a/tiva/src/main.zig +++ b/tiva/src/main.zig @@ -1,7 +1,31 @@ const cmsis = @cImport({ + @cDefine("TM4C123GH6PM", ""); @cInclude("TM4C123GH6PM.h"); }); +const GPIO_PORTF_CLK_EN: u32 = 0x20; // Bit 5 (Port F) +const GPIO_PORTF_PIN1_EN: u32 = 0x02; // Bit 1 + +const LED_ON1: u32 = 0x02; + export fn _start() noreturn { - while (true) {} + cmsis.SYSCTL.*.RCGCGPIO |= GPIO_PORTF_CLK_EN; + _ = cmsis.SYSCTL.*.RCGCGPIO; + + cmsis.GPIOF.*.DEN |= GPIO_PORTF_PIN1_EN; + cmsis.GPIOF.*.DIR |= GPIO_PORTF_PIN1_EN; + + const DELAY_VALUE = 4000000; + while (true) { + cmsis.GPIOF.*.DATA = LED_ON1; // LED On + Delay(DELAY_VALUE); + cmsis.GPIOF.*.DATA = 0; // LED On + Delay(DELAY_VALUE); + } +} + +fn Delay(delay: usize) void{ + for(0..delay) |_| { + asm volatile ("nop"); + } }