18
18
#include " MbedTester.h"
19
19
#include " fpga_config.h"
20
20
#include " BlockDevice.h"
21
+ #include " platform/mbed_wait_api.h"
22
+ #include " platform/mbed_error.h"
23
+ #include " drivers/MbedCRC.h"
21
24
22
25
#define mbed_tester_printf (...)
23
26
@@ -76,7 +79,7 @@ class MbedTesterBitMap {
76
79
uint32_t _bitmap[(width + 31 ) / 32 ];
77
80
};
78
81
79
- static uint8_t spi_transfer (DigitalInOut *clk, DigitalInOut *mosi, DigitalInOut *miso, uint8_t data)
82
+ static uint8_t spi_transfer (mbed:: DigitalInOut *clk, mbed:: DigitalInOut *mosi, mbed:: DigitalInOut *miso, uint8_t data)
80
83
{
81
84
uint8_t ret = 0 ;
82
85
for (int i = 0 ; i < 8 ; i++) {
@@ -90,7 +93,7 @@ static uint8_t spi_transfer(DigitalInOut *clk, DigitalInOut *mosi, DigitalInOut
90
93
return ret;
91
94
}
92
95
93
- static void mbed_tester_command (DigitalInOut *clk, DigitalInOut *mosi, DigitalInOut *miso, uint8_t miso_index, uint32_t addr, bool write_n_read, uint8_t *data, uint8_t size)
96
+ static void mbed_tester_command (mbed:: DigitalInOut *clk, mbed:: DigitalInOut *mosi, mbed:: DigitalInOut *miso, uint8_t miso_index, uint32_t addr, bool write_n_read, uint8_t *data, uint8_t size)
94
97
{
95
98
// 8 - Start Key
96
99
for (uint32_t i = 0 ; i < sizeof (KEY); i++) {
@@ -126,7 +129,7 @@ static void mbed_tester_command(DigitalInOut *clk, DigitalInOut *mosi, DigitalIn
126
129
127
130
}
128
131
129
- static bool mbed_tester_test (DigitalInOut *clk, DigitalInOut *mosi, DigitalInOut *miso, uint8_t miso_index)
132
+ static bool mbed_tester_test (mbed:: DigitalInOut *clk, mbed:: DigitalInOut *mosi, mbed:: DigitalInOut *miso, uint8_t miso_index)
130
133
{
131
134
uint8_t buf[4 ];
132
135
memset (buf, 0 , sizeof (buf));
@@ -138,7 +141,7 @@ static bool mbed_tester_test(DigitalInOut *clk, DigitalInOut *mosi, DigitalInOut
138
141
class MbedTesterBlockDevice : public BlockDevice {
139
142
public:
140
143
141
- MbedTesterBlockDevice (DigitalInOut &mosi, DigitalInOut &miso, DigitalInOut &clk, DigitalInOut &cs, uint32_t frequency)
144
+ MbedTesterBlockDevice (mbed:: DigitalInOut &mosi, mbed:: DigitalInOut &miso, mbed:: DigitalInOut &clk, mbed:: DigitalInOut &cs, uint32_t frequency)
142
145
: _mosi(mosi), _miso(miso), _clk(clk), _cs(cs), _wait_ns(1000000000 / frequency / 2 ), _init(false ) {
143
146
144
147
// Set initial values
@@ -430,10 +433,10 @@ class MbedTesterBlockDevice : public BlockDevice {
430
433
wait_ns (_wait_ns);
431
434
}
432
435
433
- DigitalInOut &_mosi;
434
- DigitalInOut &_miso;
435
- DigitalInOut &_clk;
436
- DigitalInOut &_cs;
436
+ mbed:: DigitalInOut &_mosi;
437
+ mbed:: DigitalInOut &_miso;
438
+ mbed:: DigitalInOut &_clk;
439
+ mbed:: DigitalInOut &_cs;
437
440
uint32_t _wait_ns;
438
441
bool _init;
439
442
};
@@ -636,12 +639,12 @@ void MbedTester::set_control_pins_manual(PinName clk, PinName mosi, PinName miso
636
639
_control_valid = true ;
637
640
}
638
641
639
- bool MbedTester::firmware_dump (FileHandle *dest, Callback<void (uint8_t )> progress)
642
+ bool MbedTester::firmware_dump (mbed:: FileHandle *dest, mbed:: Callback<void (uint8_t )> progress)
640
643
{
641
644
_update_control_pins ();
642
645
643
646
if (!progress) {
644
- progress = callback (dummy_progress);
647
+ progress = mbed:: callback (dummy_progress);
645
648
}
646
649
647
650
// Mapping intentionally different from control channel to prevent
@@ -717,12 +720,12 @@ bool MbedTester::firmware_dump(FileHandle *dest, Callback<void(uint8_t)> progres
717
720
return true ;
718
721
}
719
722
720
- bool MbedTester::firmware_dump_all (FileHandle *dest, Callback<void (uint8_t )> progress)
723
+ bool MbedTester::firmware_dump_all (mbed:: FileHandle *dest, mbed:: Callback<void (uint8_t )> progress)
721
724
{
722
725
_update_control_pins ();
723
726
724
727
if (!progress) {
725
- progress = callback (dummy_progress);
728
+ progress = mbed:: callback (dummy_progress);
726
729
}
727
730
728
731
// Mapping intentionally different from control channel to prevent
@@ -770,12 +773,12 @@ bool MbedTester::firmware_dump_all(FileHandle *dest, Callback<void(uint8_t)> pro
770
773
return true ;
771
774
}
772
775
773
- bool MbedTester::firmware_update (FileHandle *src, Callback<void (uint8_t )> progress)
776
+ bool MbedTester::firmware_update (mbed:: FileHandle *src, mbed:: Callback<void (uint8_t )> progress)
774
777
{
775
778
_update_control_pins ();
776
779
777
780
if (!progress) {
778
- progress = callback (dummy_progress);
781
+ progress = mbed:: callback (dummy_progress);
779
782
}
780
783
781
784
// Mapping intentionally different from control channel to prevent
@@ -814,7 +817,7 @@ bool MbedTester::firmware_update(FileHandle *src, Callback<void(uint8_t)> progre
814
817
815
818
// Setup CRC calculation
816
819
uint32_t crc;
817
- MbedCRC<POLY_32BIT_ANSI, 32 > ct;
820
+ mbed:: MbedCRC<POLY_32BIT_ANSI, 32 > ct;
818
821
if (ct.compute_partial_start (&crc) != 0 ) {
819
822
sys_pin_mode_disabled ();
820
823
return false ;
@@ -1156,9 +1159,9 @@ int MbedTester::io_expander_i2c_read(uint8_t i2c_index, uint8_t dev_addr, uint8_
1156
1159
// sda_val = _aux_index
1157
1160
// scl_in = _mosi_index (PHYSICAL_NC)
1158
1161
// scl_val = _clk_index
1159
- DigitalInOut *sda_in = _miso;
1160
- DigitalInOut *sda_val = _aux;
1161
- DigitalInOut *scl_val = _clk;
1162
+ mbed:: DigitalInOut *sda_in = _miso;
1163
+ mbed:: DigitalInOut *sda_val = _aux;
1164
+ mbed:: DigitalInOut *scl_val = _clk;
1162
1165
sda_in->input ();
1163
1166
sda_val->output ();
1164
1167
*sda_val = 1 ;
@@ -1295,9 +1298,9 @@ int MbedTester::io_expander_i2c_write(uint8_t i2c_index, uint8_t dev_addr, uint8
1295
1298
// sda_val = _aux_index
1296
1299
// scl_in = _mosi_index (PHYSICAL_NC)
1297
1300
// scl_val = _clk_index
1298
- DigitalInOut *sda_in = _miso;
1299
- DigitalInOut *sda_val = _aux;
1300
- DigitalInOut *scl_val = _clk;
1301
+ mbed:: DigitalInOut *sda_in = _miso;
1302
+ mbed:: DigitalInOut *sda_val = _aux;
1303
+ mbed:: DigitalInOut *scl_val = _clk;
1301
1304
sda_in->input ();
1302
1305
sda_val->output ();
1303
1306
*sda_val = 1 ;
@@ -2205,15 +2208,15 @@ bool MbedTester::_find_control_indexes(PhysicalIndex &clk_out, PhysicalIndex &mo
2205
2208
// Free CLK and MOSI pins found. Mark them as unavailable
2206
2209
allowed.clear (clk_index);
2207
2210
allowed.clear (mosi_index);
2208
- DigitalInOut clk (_form_factor.get (clk_index), PIN_OUTPUT, ::PullNone, 0 );
2209
- DigitalInOut mosi (_form_factor.get (mosi_index), PIN_OUTPUT, ::PullNone, 0 );
2211
+ mbed:: DigitalInOut clk (_form_factor.get (clk_index), PIN_OUTPUT, ::PullNone, 0 );
2212
+ mbed:: DigitalInOut mosi (_form_factor.get (mosi_index), PIN_OUTPUT, ::PullNone, 0 );
2210
2213
2211
2214
for (uint8_t miso_index = 0 ; miso_index < max_pins; miso_index++) {
2212
2215
if (!allowed.get (miso_index)) {
2213
2216
continue ;
2214
2217
}
2215
2218
2216
- DigitalInOut miso (_form_factor.get (miso_index));
2219
+ mbed:: DigitalInOut miso (_form_factor.get (miso_index));
2217
2220
if (!mbed_tester_test (&clk, &mosi, &miso, miso_index)) {
2218
2221
// Pin doesn't work
2219
2222
continue ;
@@ -2225,7 +2228,7 @@ bool MbedTester::_find_control_indexes(PhysicalIndex &clk_out, PhysicalIndex &mo
2225
2228
continue ;
2226
2229
}
2227
2230
2228
- DigitalInOut aux (_form_factor.get (aux_index));
2231
+ mbed:: DigitalInOut aux (_form_factor.get (aux_index));
2229
2232
if (!mbed_tester_test (&clk, &mosi, &aux, aux_index)) {
2230
2233
// Pin doesn't work
2231
2234
continue ;
@@ -2259,10 +2262,10 @@ bool MbedTester::_find_control_indexes(PhysicalIndex &clk_out, PhysicalIndex &mo
2259
2262
2260
2263
void MbedTester::_setup_control_pins ()
2261
2264
{
2262
- _clk = new DigitalInOut (_form_factor.get (_clk_index), PIN_OUTPUT, ::PullNone, 0 );
2263
- _mosi = new DigitalInOut (_form_factor.get (_mosi_index), PIN_OUTPUT, ::PullNone, 0 );
2264
- _miso = new DigitalInOut (_form_factor.get (_miso_index));
2265
- _aux = new DigitalInOut (_form_factor.get (_aux_index));
2265
+ _clk = new mbed:: DigitalInOut (_form_factor.get (_clk_index), PIN_OUTPUT, ::PullNone, 0 );
2266
+ _mosi = new mbed:: DigitalInOut (_form_factor.get (_mosi_index), PIN_OUTPUT, ::PullNone, 0 );
2267
+ _miso = new mbed:: DigitalInOut (_form_factor.get (_miso_index));
2268
+ _aux = new mbed:: DigitalInOut (_form_factor.get (_aux_index));
2266
2269
}
2267
2270
2268
2271
void MbedTester::_free_control_pins ()
0 commit comments