blinky
This commit is contained in:
@@ -15,7 +15,7 @@
|
|||||||
zls = pkgs.zls;
|
zls = pkgs.zls;
|
||||||
in {
|
in {
|
||||||
devShells.${system}.default = pkgs.mkShell {
|
devShells.${system}.default = pkgs.mkShell {
|
||||||
buildInputs = [ zig zls ];
|
buildInputs = [ zig zls pkgs.openocd ];
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
echo "Entering Zig Master Environment"
|
echo "Entering Zig Master Environment"
|
||||||
echo "Zig: $(zig version)"
|
echo "Zig: $(zig version)"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ pub fn build(b: *std.Build) void {
|
|||||||
const cmsis_path = "/home/priec/programs/CMSIS";
|
const cmsis_path = "/home/priec/programs/CMSIS";
|
||||||
|
|
||||||
// Generic CMSIS Core (for core_cm4.h)
|
// 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)
|
// TM4C Device Specific (for TM4C123GH6PM.h)
|
||||||
tiva_module.addIncludePath(.{ .cwd_relative = cmsis_path ++ "/Device/TI/TM4C/Include" });
|
tiva_module.addIncludePath(.{ .cwd_relative = cmsis_path ++ "/Device/TI/TM4C/Include" });
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,31 @@
|
|||||||
const cmsis = @cImport({
|
const cmsis = @cImport({
|
||||||
|
@cDefine("TM4C123GH6PM", "");
|
||||||
@cInclude("TM4C123GH6PM.h");
|
@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 {
|
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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user