Lines Matching refs:out
25 …void output_symbols(FILE *out, std::string prefix, const std::vector<compiled_source::symbol> &sym… in output_symbols()
29 fprintf(out, "#define %s%s %d\n", prefix.c_str(), s.name.c_str(), s.value); in output_symbols()
34 fprintf(out, "\n"); in output_symbols()
39 fprintf(out, "#define %soffset_%s %du\n", prefix.c_str(), s.name.c_str(), s.value); in output_symbols()
44 fprintf(out, "\n"); in output_symbols()
48 void header(FILE *out, std::string msg) { in header()
50 fprintf(out, "// %s //\n", dashes.c_str()); in header()
51 fprintf(out, "// %s //\n", msg.c_str()); in header()
52 fprintf(out, "// %s //\n", dashes.c_str()); in header()
53 fprintf(out, "\n"); in header()
66 FILE *out = open_single_output(destination); in output() local
67 if (!out) return 1; in output()
69 header(out, "This file is autogenerated by pioasm; do not edit!"); in output()
71 fprintf(out, "#pragma once\n"); in output()
72 fprintf(out, "\n"); in output()
73 fprintf(out, "#if !PICO_NO_HARDWARE\n"); in output()
74 fprintf(out, "#include \"hardware/pio.h\"\n"); in output()
75 fprintf(out, "#endif\n"); in output()
76 fprintf(out, "\n"); in output()
78 output_symbols(out, "", source.global_symbols); in output()
81 header(out, program.name); in output()
85 fprintf(out, "#define %swrap_target %d\n", prefix.c_str(), program.wrap_target); in output()
86 fprintf(out, "#define %swrap %d\n", prefix.c_str(), program.wrap); in output()
87 fprintf(out, "#define %spio_version %d\n", prefix.c_str(), program.pio_version); in output()
88 fprintf(out, "\n"); in output()
90 output_symbols(out, prefix, program.symbols); in output()
92 fprintf(out, "static const uint16_t %sprogram_instructions[] = {\n", prefix.c_str()); in output()
96 fprintf(out, " // .wrap_target\n"); in output()
98 fprintf(out, " 0x%04x, // %2d: %s\n", (uint16_t)inst, i, in output()
101 fprintf(out, " // .wrap\n"); in output()
104 fprintf(out, "};\n"); in output()
105 fprintf(out, "\n"); in output()
107 fprintf(out, "#if !PICO_NO_HARDWARE\n"); in output()
108 fprintf(out, "static const struct pio_program %sprogram = {\n", prefix.c_str()); in output()
109 fprintf(out, " .instructions = %sprogram_instructions,\n", prefix.c_str()); in output()
110 fprintf(out, " .length = %d,\n", (int) program.instructions.size()); in output()
111 fprintf(out, " .origin = %d,\n", program.origin.get()); in output()
112 fprintf(out, " .pio_version = %spio_version,\n", prefix.c_str()); in output()
113 fprintf(out, "#if PICO_PIO_VERSION > 0\n"); in output()
114 fprintf(out, " .used_gpio_ranges = 0x%x\n", program.used_gpio_ranges); in output()
115 fprintf(out, "#endif\n"); in output()
116 fprintf(out, "};\n"); in output()
117 fprintf(out, "\n"); in output()
118 …fprintf(out, "static inline pio_sm_config %sprogram_get_default_config(uint offset) {\n", prefix.c… in output()
119 fprintf(out, " pio_sm_config c = pio_get_default_sm_config();\n"); in output()
120 …fprintf(out, " sm_config_set_wrap(&c, offset + %swrap_target, offset + %swrap);\n", prefix.c_st… in output()
123 fprintf(out, " sm_config_set_in_pin_count(&c, %d);\n", program.in.pin_count); in output()
124 …fprintf(out, " sm_config_set_in_shift(&c, %d, %d, %d);\n", program.in.right, program.in.autop, … in output()
126 if (program.out.pin_count >= 0) { in output()
127 fprintf(out, " sm_config_set_out_pin_count(&c, %d);\n", program.out.pin_count); in output()
128 …fprintf(out, " sm_config_set_out_shift(&c, %d, %d, %d);\n", program.out.right, program.out.auto… in output()
131 fprintf(out, " sm_config_set_set_pin_count(&c, %d);\n", program.set_count); in output()
134 …fprintf(out, " sm_config_set_sideset(&c, %d, %s, %s);\n", program.sideset_bits_including_opt.ge… in output()
147 …fprintf(out, " sm_config_set_mov_status(&c, %s, %d);\n", types[program.mov_status_type], progra… in output()
159 fprintf(out, " sm_config_set_fifo_join(&c, %s);\n", type); in output()
162 …fprintf(out, " sm_config_set_clkdiv_int_frac(&c, %d, %d);\n", program.clock_div_int, program.cl… in output()
164 fprintf(out, " return c;\n"); in output()
165 fprintf(out, "}\n"); in output()
169 fprintf(out, "\n"); in output()
172 fprintf(out, "%s", contents.c_str()); in output()
173 fprintf(out, "\n"); in output()
178 fprintf(out, "#endif\n"); in output()
179 fprintf(out, "\n"); in output()
181 if (out != stdout) { fclose(out); } in output()