mirror of
https://github.com/raspberrypi/pico-sdk.git
synced 2025-08-09 04:22:44 +03:00
Initial Release
This commit is contained in:
41
tools/pioasm/hex_output.cpp
Normal file
41
tools/pioasm/hex_output.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include "output_format.h"
|
||||
#include <iostream>
|
||||
|
||||
struct hex_output : public output_format {
|
||||
struct factory {
|
||||
factory() {
|
||||
output_format::add(new hex_output());
|
||||
}
|
||||
};
|
||||
|
||||
hex_output() : output_format("hex") {}
|
||||
|
||||
std::string get_description() {
|
||||
return "Raw hex output (only valid for single program inputs)";
|
||||
}
|
||||
|
||||
virtual int output(std::string destination, std::vector<std::string> output_options,
|
||||
const compiled_source &source) {
|
||||
FILE *out = open_single_output(destination);
|
||||
if (!out) return 1;
|
||||
|
||||
if (source.programs.size() > 1) {
|
||||
// todo don't have locations any more!
|
||||
std::cerr << "error: hex output only supports a single program input\n";
|
||||
return 1;
|
||||
}
|
||||
for (const auto &i : source.programs[0].instructions) {
|
||||
fprintf(out, "%04x\n", i);
|
||||
}
|
||||
if (out != stdout) { fclose(out); }
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
static hex_output::factory creator;
|
Reference in New Issue
Block a user