Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: FPGA_bus.cpp
- Revision:
- 23:4b391cfd4f2d
- Parent:
- 22:c47d4177d59c
- Child:
- 25:9cdeb5267a47
diff -r c47d4177d59c -r 4b391cfd4f2d FPGA_bus.cpp
--- a/FPGA_bus.cpp Tue Jun 23 11:39:07 2020 +0000
+++ b/FPGA_bus.cpp Fri Jun 26 11:02:30 2020 +0000
@@ -474,25 +474,35 @@
// BUS_FAIL_2 = no handshake response
// BUS_FAIL_3 = handshake failed to terminate correctly
//
+
int32_t FPGA_bus::soft_check_bus(void)
{
+uint32_t timeout_counter;
- wait_us(uS_DELAY_BEFORE_TEST_HANDSHAKE);
-
- if (uP_handshake_2 == HIGH) {
- return BUS_FAIL_1; // handshake line in wrong init state
+ timeout_counter = HANDSHAKE_TIMEOUT_COUNT;
+ while (uP_handshake_2 == HIGH) {
+ timeout_counter--;
+ if (timeout_counter == 0) {
+ return BUS_FAIL_1; // handshake line in wrong init state
+ }
}
async_uP_handshake_1 = HIGH;
- wait_us(uS_DELAY_BEFORE_TEST_HANDSHAKE);
- if (uP_handshake_2 == LOW) {
- async_uP_handshake_1 = LOW;
- return BUS_FAIL_2; // no handshake response
+ timeout_counter = HANDSHAKE_TIMEOUT_COUNT;
+ while (uP_handshake_2 == LOW) {
+ timeout_counter--;
+ if (timeout_counter == 0) {
+ async_uP_handshake_1 = LOW;
+ return BUS_FAIL_1; // no handshake response
+ }
}
async_uP_handshake_1 = LOW;
- wait_us(uS_DELAY_BEFORE_TEST_HANDSHAKE);
- if (uP_handshake_2 == HIGH) {
- return BUS_FAIL_2; // handshake failed to terminate correctly
- }
+ timeout_counter = HANDSHAKE_TIMEOUT_COUNT;
+ while (uP_handshake_2 == HIGH) {
+ timeout_counter--;
+ if (timeout_counter == 0) {
+ return BUS_FAIL_2; // handshake failed to terminate correctly
+ }
+ }
return NO_ERROR;
}