mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-01-07 16:48:15 +08:00
41 lines
654 B
Raku
41 lines
654 B
Raku
#!/usr/bin/perl
|
|
|
|
# This tool converts a Xilinx xxx.rbt FPGA bitstream to a table that will
|
|
# compile as C source code. The output format is DWORDs, MSB first.
|
|
|
|
local $/ = "\r\n";
|
|
|
|
print "// Generated by rbt2c.pl, do not edit!\n\n";
|
|
|
|
for(1..7) {
|
|
chomp($_ = <>);
|
|
print "//// $_\n";
|
|
}
|
|
|
|
print <<EOT;
|
|
|
|
#include <proxmark3.h>
|
|
|
|
const DWORD FpgaImage[] = {
|
|
EOT
|
|
|
|
while(<>) {
|
|
chomp;
|
|
$v = 0;
|
|
for $b (split(//, $_)) {
|
|
$v <<= 1;
|
|
if($b eq '1') {
|
|
$v |= 1;
|
|
} elsif($b ne '0') {
|
|
die;
|
|
}
|
|
}
|
|
printf("\t0x%08x,\n", $v);
|
|
}
|
|
|
|
print <<EOT;
|
|
};
|
|
|
|
const DWORD FpgaImageLen = sizeof(FpgaImage) / sizeof(FpgaImage[0]);
|
|
|
|
EOT
|