mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
i2c: fix error in FSM for restarted reads
The transition from the ADDR state to the read state was broken for non-final reads. The FSM diagram was also wrong for this transition. Since reads are always the last transaction in a sequence in our current usage, this doesn't actually fix any known bugs. git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1350 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
98822bff98
commit
47c36b3da0
@ -146,11 +146,8 @@ digraph stm32_i2c_fsm {
|
||||
r_last_txn_addr -> r_last_txn_pre_one [ label="ADDR\nlen==1" ]
|
||||
r_more_txn_addr -> r_more_txn_pre_one [ label="ADDR\nlen==1" ]
|
||||
|
||||
r_last_txn_addr -> r_last_txn_pre_last [ label="ADDR\nlen==2" ]
|
||||
r_more_txn_addr -> r_more_txn_pre_last [ label="ADDR\nlen==2" ]
|
||||
|
||||
r_last_txn_addr -> r_last_txn_pre_first [ label="ADDR\nlen>2" ]
|
||||
r_more_txn_addr -> r_more_txn_pre_first [ label="ADDR\nlen>2" ]
|
||||
r_last_txn_addr -> r_last_txn_pre_first [ label="ADDR\nlen>=2" ]
|
||||
r_more_txn_addr -> r_more_txn_pre_first [ label="ADDR\nlen>=2" ]
|
||||
|
||||
r_last_txn_pre_one -> r_last_txn_post_last [ label="BTF\nlen==1" ]
|
||||
r_more_txn_pre_one -> r_more_txn_post_last [ label="BTF\nlen==1" ]
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 201 KiB |
@ -133,7 +133,7 @@ const static struct i2c_adapter_transition i2c_adapter_transitions[I2C_STATE_NUM
|
||||
.entry_fn = go_r_any_txn_addr,
|
||||
.next_state = {
|
||||
[I2C_EVENT_ADDR_SENT_LEN_EQ_1] = I2C_STATE_R_MORE_TXN_PRE_ONE,
|
||||
[I2C_EVENT_ADDR_SENT_LEN_EQ_2] = I2C_STATE_R_MORE_TXN_PRE_LAST,
|
||||
[I2C_EVENT_ADDR_SENT_LEN_EQ_2] = I2C_STATE_R_MORE_TXN_PRE_FIRST,
|
||||
[I2C_EVENT_ADDR_SENT_LEN_GT_2] = I2C_STATE_R_MORE_TXN_PRE_FIRST,
|
||||
},
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user