This commit is contained in:
Filipriec
2026-03-23 09:41:11 +01:00
parent 20dade6168
commit bee9777a4b
3 changed files with 27 additions and 3 deletions

View File

@@ -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" });

View File

@@ -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");
}
}