summaryrefslogtreecommitdiff
path: root/ports/stm/common-hal/canio
diff options
context:
space:
mode:
Diffstat (limited to 'ports/stm/common-hal/canio')
-rw-r--r--ports/stm/common-hal/canio/CAN.c39
-rw-r--r--ports/stm/common-hal/canio/CAN.h12
-rw-r--r--ports/stm/common-hal/canio/Listener.c24
3 files changed, 34 insertions, 41 deletions
diff --git a/ports/stm/common-hal/canio/CAN.c b/ports/stm/common-hal/canio/CAN.c
index 52d5cad1f..091421fd1 100644
--- a/ports/stm/common-hal/canio/CAN.c
+++ b/ports/stm/common-hal/canio/CAN.c
@@ -38,7 +38,7 @@
STATIC bool reserved_can[MP_ARRAY_SIZE(mcu_can_banks)];
STATIC const mcu_periph_obj_t *find_pin_function(const mcu_periph_obj_t *table, size_t sz, const mcu_pin_obj_t *pin, int periph_index) {
- for(size_t i = 0; i<sz; i++, table++) {
+ for (size_t i = 0; i < sz; i++, table++) {
if (periph_index != -1 && periph_index != table->periph_index) {
continue;
}
@@ -50,9 +50,8 @@ STATIC const mcu_periph_obj_t *find_pin_function(const mcu_periph_obj_t *table,
}
-void common_hal_canio_can_construct(canio_can_obj_t *self, mcu_pin_obj_t *tx, mcu_pin_obj_t *rx, int baudrate, bool loopback, bool silent)
-{
-#define DIV_ROUND(a, b) (((a) + (b)/2) / (b))
+void common_hal_canio_can_construct(canio_can_obj_t *self, mcu_pin_obj_t *tx, mcu_pin_obj_t *rx, int baudrate, bool loopback, bool silent) {
+#define DIV_ROUND(a, b) (((a) + (b) / 2) / (b))
#define DIV_ROUND_UP(a, b) (((a) + (b) - 1) / (b))
const uint8_t can_tx_len = MP_ARRAY_SIZE(mcu_can_tx_list);
@@ -110,7 +109,7 @@ void common_hal_canio_can_construct(canio_can_obj_t *self, mcu_pin_obj_t *tx, mc
__HAL_RCC_CAN1_CLK_ENABLE();
- if(hw == CAN2) {
+ if (hw == CAN2) {
__HAL_RCC_CAN2_CLK_ENABLE();
self->start_filter_bank = 14;
self->end_filter_bank = 28;
@@ -126,9 +125,9 @@ void common_hal_canio_can_construct(canio_can_obj_t *self, mcu_pin_obj_t *tx, mc
.AutoBusOff = ENABLE,
.Prescaler = divisor,
.Mode = (loopback ? CAN_MODE_LOOPBACK : 0) | (silent ? CAN_MODE_SILENT_LOOPBACK : 0),
- .SyncJumpWidth = (sjw-1) << CAN_BTR_SJW_Pos,
- .TimeSeg1 = (tq_to_sample-2) << CAN_BTR_TS1_Pos,
- .TimeSeg2 = (tq_after_sample-1) << CAN_BTR_TS2_Pos,
+ .SyncJumpWidth = (sjw - 1) << CAN_BTR_SJW_Pos,
+ .TimeSeg1 = (tq_to_sample - 2) << CAN_BTR_TS1_Pos,
+ .TimeSeg2 = (tq_after_sample - 1) << CAN_BTR_TS2_Pos,
};
self->periph_index = periph_index;
@@ -149,7 +148,7 @@ void common_hal_canio_can_construct(canio_can_obj_t *self, mcu_pin_obj_t *tx, mc
// Clear every filter enable bit for this can HW
uint32_t fa1r = self->filter_hw->FA1R;
- for (int i = self->start_filter_bank; i<self->end_filter_bank; i++) {
+ for (int i = self->start_filter_bank; i < self->end_filter_bank; i++) {
fa1r &= ~(1 << i);
}
self->filter_hw->FA1R = fa1r;
@@ -160,23 +159,19 @@ void common_hal_canio_can_construct(canio_can_obj_t *self, mcu_pin_obj_t *tx, mc
reserved_can[periph_index] = true;
}
-bool common_hal_canio_can_loopback_get(canio_can_obj_t *self)
-{
+bool common_hal_canio_can_loopback_get(canio_can_obj_t *self) {
return self->loopback;
}
-int common_hal_canio_can_baudrate_get(canio_can_obj_t *self)
-{
+int common_hal_canio_can_baudrate_get(canio_can_obj_t *self) {
return self->baudrate;
}
-int common_hal_canio_can_transmit_error_count_get(canio_can_obj_t *self)
-{
+int common_hal_canio_can_transmit_error_count_get(canio_can_obj_t *self) {
return (self->handle.Instance->ESR & CAN_ESR_TEC) >> CAN_ESR_TEC_Pos;
}
-int common_hal_canio_can_receive_error_count_get(canio_can_obj_t *self)
-{
+int common_hal_canio_can_receive_error_count_get(canio_can_obj_t *self) {
return (self->handle.Instance->ESR & CAN_ESR_REC) >> CAN_ESR_REC_Pos;
}
@@ -213,15 +208,14 @@ bool common_hal_canio_can_auto_restart_get(canio_can_obj_t *self) {
}
void common_hal_canio_can_auto_restart_set(canio_can_obj_t *self, bool value) {
- if(value) {
+ if (value) {
SET_BIT(self->handle.Instance->MCR, CAN_MCR_ABOM);
} else {
CLEAR_BIT(self->handle.Instance->MCR, CAN_MCR_ABOM);
}
}
-void common_hal_canio_can_send(canio_can_obj_t *self, mp_obj_t message_in)
-{
+void common_hal_canio_can_send(canio_can_obj_t *self, mp_obj_t message_in) {
canio_message_obj_t *message = message_in;
uint32_t mailbox;
bool rtr = message->base.type == &canio_remote_transmission_request_type;
@@ -278,8 +272,7 @@ void common_hal_canio_can_check_for_deinit(canio_can_obj_t *self) {
}
}
-void common_hal_canio_can_deinit(canio_can_obj_t *self)
-{
+void common_hal_canio_can_deinit(canio_can_obj_t *self) {
if (self->handle.Instance) {
SET_BIT(self->handle.Instance->MCR, CAN_MCR_RESET);
while (READ_BIT(self->handle.Instance->MCR, CAN_MCR_RESET)) {
@@ -290,7 +283,7 @@ void common_hal_canio_can_deinit(canio_can_obj_t *self)
}
void common_hal_canio_reset(void) {
- for (size_t i=0; i<MP_ARRAY_SIZE(mcu_can_banks); i++) {
+ for (size_t i = 0; i < MP_ARRAY_SIZE(mcu_can_banks); i++) {
SET_BIT(mcu_can_banks[i]->MCR, CAN_MCR_RESET);
reserved_can[i] = 0;
}
diff --git a/ports/stm/common-hal/canio/CAN.h b/ports/stm/common-hal/canio/CAN.h
index 3157d0a03..16bb8fd1e 100644
--- a/ports/stm/common-hal/canio/CAN.h
+++ b/ports/stm/common-hal/canio/CAN.h
@@ -45,12 +45,12 @@ typedef struct canio_can_obj {
int baudrate;
const mcu_pin_obj_t *rx_pin;
const mcu_pin_obj_t *tx_pin;
- bool loopback:1;
- bool silent:1;
- bool auto_restart:1;
- bool fifo0_in_use:1;
- bool fifo1_in_use:1;
- uint8_t periph_index:2;
+ bool loopback : 1;
+ bool silent : 1;
+ bool auto_restart : 1;
+ bool fifo0_in_use : 1;
+ bool fifo1_in_use : 1;
+ uint8_t periph_index : 2;
uint8_t cancel_mailbox;
uint8_t start_filter_bank;
uint8_t end_filter_bank;
diff --git a/ports/stm/common-hal/canio/Listener.c b/ports/stm/common-hal/canio/Listener.c
index 09456d39d..23634eba6 100644
--- a/ports/stm/common-hal/canio/Listener.c
+++ b/ports/stm/common-hal/canio/Listener.c
@@ -46,7 +46,7 @@ STATIC void prevent_filter_change(canio_can_obj_t *can) {
}
STATIC bool filter_in_use(canio_can_obj_t *can, int idx) {
- return can->filter_hw->FA1R & (1<<idx);
+ return can->filter_hw->FA1R & (1 << idx);
}
// One filter bank can hold:
@@ -62,19 +62,19 @@ STATIC size_t num_filters_needed(size_t nmatch, canio_match_obj_t **matches) {
}
size_t num_extended_mask = 0;
size_t num_standard_mask = 1;
- for(size_t i=0; i<nmatch; i++) {
+ for (size_t i = 0; i < nmatch; i++) {
if (matches[i]->extended) {
num_extended_mask += 1;
} else {
num_standard_mask += 1;
}
}
- return num_extended_mask + num_standard_mask/2;
+ return num_extended_mask + num_standard_mask / 2;
}
STATIC size_t num_filters_available(canio_can_obj_t *can) {
size_t available = 0;
- for(size_t i = can->start_filter_bank; i < can->end_filter_bank; i++) {
+ for (size_t i = can->start_filter_bank; i < can->end_filter_bank; i++) {
if (!filter_in_use(can, i)) {
available++;
}
@@ -87,9 +87,9 @@ STATIC void clear_filters(canio_listener_obj_t *self) {
allow_filter_change(can);
uint32_t fa1r = can->filter_hw->FA1R;
- for(size_t i = can->start_filter_bank; i < can->end_filter_bank; i++) {
+ for (size_t i = can->start_filter_bank; i < can->end_filter_bank; i++) {
if (((can->filter_hw->FFA1R >> i) & 1) == self->fifo_idx) {
- fa1r &= ~(1<<i);
+ fa1r &= ~(1 << i);
}
}
can->filter_hw->FA1R = fa1r;
@@ -98,8 +98,8 @@ STATIC void clear_filters(canio_listener_obj_t *self) {
STATIC int next_filter(canio_can_obj_t *can) {
uint32_t fa1r = can->filter_hw->FA1R;
- for(size_t i = can->start_filter_bank; i < can->end_filter_bank; i++) {
- if (!(fa1r & (1<<i))) {
+ for (size_t i = can->start_filter_bank; i < can->end_filter_bank; i++) {
+ if (!(fa1r & (1 << i))) {
return i;
}
}
@@ -109,8 +109,8 @@ STATIC int next_filter(canio_can_obj_t *can) {
// IDE = "extended ID" flag of packet header. We always add this bit to the
// mask because a match is always for just one kind of address length
-#define FILTER16_IDE (1<<3)
-#define FILTER32_IDE (1<<2)
+#define FILTER16_IDE (1 << 3)
+#define FILTER32_IDE (1 << 2)
STATIC void install_standard_filter(canio_listener_obj_t *self, canio_match_obj_t *match1, canio_match_obj_t *match2) {
int bank = next_filter(self->can);
@@ -201,8 +201,8 @@ void set_filters(canio_listener_obj_t *self, size_t nmatch, canio_match_obj_t **
install_all_match_filter(self);
} else {
canio_match_obj_t *first_match = NULL;
- for(size_t i = 0; i<nmatch; i++) {
- if(matches[i]->extended) {
+ for (size_t i = 0; i < nmatch; i++) {
+ if (matches[i]->extended) {
install_extended_filter(self, matches[i]);
} else {
if (first_match) {