diff options
Diffstat (limited to 'goal.fiddle')
-rw-r--r-- | goal.fiddle | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/goal.fiddle b/goal.fiddle index c35e172..708a44d 100644 --- a/goal.fiddle +++ b/goal.fiddle @@ -4,27 +4,31 @@ option processor arm_cortex_m4; option align 32; import "./types.fdl" (data_t); - -[[ search = ".local/fiddle/libs" ]] import "./stm32l432.fdl"; +package fiddle.lang { + bits data_t : enum(1) { + high = 0b1, + low = 0b0, + }; +}; + [[ cpp: namespace = "stm32l432::gpio" ]] [[ rust: package = "Stm32l432.Gpio" ]] [[ zig: package = "stm32l432.gpio" ]] [[ c: prefix = "stm32l432_gpio_" ]] -package gpio { - +package stm32l4.gpio { location gpio_a_base = 0x4800_0000; location gpio_b_base = 0x4800_0400; location gpio_c_base = 0x4800_0800; - bits data_t : enum(1) { - high = 0b1, - low = 0b0, - }; + using stm32l432; /** * Structure of the GPIO port on an stm32l432 + */ + type gpio_t : struct { + assert_pos(0); reg (32) : struct { /** The mode for each pin. */ @@ -122,7 +126,7 @@ package gpio { union { assert_pos(0x10); ro reg (32) : struct { - id_r : data_t[16]; + id_r : fiddle.lang.data_t[16]; reserved(16); }; @@ -149,7 +153,7 @@ package gpio { assert_pos(0x14); wo reg (32) : struct { union { - rw od_r : data_t[16]; + rw od_r : fiddle.lang.data_t[16]; struct { rw osp_v : (15); @@ -215,6 +219,7 @@ package gpio { reg(32) : struct { asc_r : (16); + [[ export_as = "ascr_upper" ]] reserved (16); }; }; |