CPLD: Introduce Config type to clean up programming interface.

Hide the details of how the CPLD data is stored.
This commit is contained in:
Jared Boone
2017-06-02 16:54:24 -07:00
parent 76c2cc77af
commit a3483a8394
4 changed files with 21 additions and 10 deletions
+4 -4
View File
@@ -27,11 +27,11 @@
#include "jtag_target_gpio.hpp"
#include "cpld_max5.hpp"
#include "cpld_xilinx.hpp"
#include "portapack_cpld_data.hpp"
#include "hackrf_cpld_data.hpp"
bool cpld_update_if_necessary(
const std::array<uint16_t, 3328>& block_0,
const std::array<uint16_t, 512>& block_1
const portapack::cpld::Config config
) {
jtag::GPIOTarget target {
portapack::gpio_cpld_tck,
@@ -65,11 +65,11 @@ bool cpld_update_if_necessary(
}
/* Verify CPLD contents against current bitstream. */
auto ok = cpld.verify(block_0, block_1);
auto ok = cpld.verify(config.block_0, config.block_1);
/* CPLD verifies incorrectly. Erase and program with current bitstream. */
if( !ok ) {
ok = cpld.program(block_0, block_1);
ok = cpld.program(config.block_0, config.block_1);
}
/* If programming OK, reset CPLD to user mode. Otherwise leave it in