summaryrefslogtreecommitdiff
path: root/goal.fiddle
diff options
context:
space:
mode:
Diffstat (limited to 'goal.fiddle')
-rw-r--r--goal.fiddle25
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);
};
};