Skip to content

Commit 45c876b

Browse files
committed
Misra cleanups
1 parent 39c1716 commit 45c876b

File tree

11 files changed

+36
-69
lines changed

11 files changed

+36
-69
lines changed

board/drivers/spi.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ enum {
2929

3030
extern uint16_t spi_error_count;
3131

32-
// low level SPI prototypes
33-
void llspi_init(void);
34-
void llspi_mosi_dma(uint8_t *addr, int len);
35-
void llspi_miso_dma(uint8_t *addr, int len);
36-
3732
void can_tx_comms_resume_spi(void);
3833
void spi_init(void);
3934
void spi_rx_done(void);

board/fake_stm.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22

33
#ifdef STM32H7
4-
#error This code only makes on a non stm32h7 platform
4+
#error This code only makes sense on a non stm32h7 platform
55
#endif
66

77
// minimal code to fake a panda for tests

board/stm32h7/interrupt_handlers.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "interrupt_handlers.h"
22
#include "stm32h7_config.h"
3+
#include "board/drivers/interrupts.h"
34

45
void WWDG_IRQHandler(void) {handle_interrupt(WWDG_IRQn);}
56
void PVD_AVD_IRQHandler(void) {handle_interrupt(PVD_AVD_IRQn);}

board/stm32h7/interrupt_handlers.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
#pragma once
55

6+
#include "stm32h7_config.h"
7+
68
void WWDG_IRQHandler(void);
79
void PVD_AVD_IRQHandler(void);
810
void TAMP_STAMP_IRQHandler(void);

board/stm32h7/llflash.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,15 @@
22

33
#include "stm32h7_config.h"
44

5-
// cppcheck-suppress misra-c2012-8.7
6-
// cppcheck-suppress unusedFunction; Used in board/flasher.c, which is excluded from cppcheck
75
bool flash_is_locked(void) {
86
return (FLASH->CR1 & FLASH_CR_LOCK);
97
}
108

11-
// cppcheck-suppress misra-c2012-8.7
12-
// cppcheck-suppress unusedFunction; Used in board/flasher.c, which is excluded from cppcheck
139
void flash_unlock(void) {
1410
FLASH->KEYR1 = 0x45670123u;
1511
FLASH->KEYR1 = 0xCDEF89ABu;
1612
}
1713

18-
// cppcheck-suppress misra-c2012-8.7
19-
// cppcheck-suppress unusedFunction; Used in board/flasher.c, which is excluded from cppcheck
2014
bool flash_erase_sector(uint8_t sector, bool is_unlocked) {
2115
// don't erase the bootloader(sector 0)
2216
bool ret = false;
@@ -29,17 +23,13 @@ bool flash_erase_sector(uint8_t sector, bool is_unlocked) {
2923
return ret;
3024
}
3125

32-
// cppcheck-suppress misra-c2012-8.7
33-
// cppcheck-suppress unusedFunction; Used in board/flasher.c, which is excluded from cppcheck
3426
void flash_write_word(void *prog_ptr, uint32_t data) {
3527
uint32_t *pp = prog_ptr;
3628
FLASH->CR1 |= FLASH_CR_PG;
3729
*pp = data;
3830
while ((FLASH->SR1 & FLASH_SR_QW) != 0u) {}
3931
}
4032

41-
// cppcheck-suppress misra-c2012-8.7
42-
// cppcheck-suppress unusedFunction; Used in board/flasher.c, which is excluded from cppcheck
4333
void flush_write_buffer(void) {
4434
if ((FLASH->SR1 & FLASH_SR_WBNE) != 0u) {
4535
FLASH->CR1 |= FLASH_CR_FW;

board/stm32h7/lluart.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,4 @@ struct uart_ring;
44
// This read after reading ISR clears all error interrupts. We don't want compiler warnings, nor optimizations
55
#define UART_READ_RDR(uart) volatile uint8_t t = (uart)->RDR; UNUSED(t);
66

7-
void uart_init(struct uart_ring *q, unsigned int baud);
8-
void uart_tx_ring(struct uart_ring *q);
7+
void uart_init(struct uart_ring *q, unsigned int baud);

board/stm32h7/stm32h7_config.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ separate IRQs for RX and TX.
5757
#include "board/drivers/interrupts.h"
5858
#include "board/drivers/gpio.h"
5959
#include "board/stm32h7/peripherals.h"
60-
#include "board/stm32h7/interrupt_handlers.h"
6160
#include "board/drivers/timers.h"
6261

6362
#if !defined(BOOTSTUB)

tests/misra/checkers.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Cppcheck checkers list from test_misra.sh:
55

66

77
TEST variant options:
8-
--enable=all --addon=misra -DSTM32H7 -DSTM32H725xx -I /board/stm32h7/inc/ -DPANDA /board/libc.c /board/early_init.c /board/critical.c /board/drivers/led.c /board/drivers/pwm.c /board/drivers/gpio.c /board/drivers/fake_siren.c /board/stm32h7/lli2c.c /board/stm32h7/clock.c /board/drivers/clock_source.c /board/stm32h7/sound.c /board/stm32h7/llflash.c /board/stm32h7/stm32h7_config.c /board/drivers/registers.c /board/drivers/interrupts.c /board/provision.c /board/stm32h7/peripherals.c /board/stm32h7/llusb.c /board/drivers/usb.c /board/drivers/spi.c /board/drivers/timers.c /board/stm32h7/lladc.c /board/stm32h7/llspi.c /board/faults.c /board/boards/unused_funcs.c /board/utils.c /board/globals.c /board/obj/gitversion.c /board/can_comms.c /board/drivers/fan.c /board/power_saving.c /board/drivers/uart.c /board/stm32h7/llfdcan.c /board/drivers/harness.c /board/drivers/bootkick.c /board/stm32h7/llfan.c /board/stm32h7/lluart.c /board/drivers/fdcan.c /board/drivers/can_common.c /board/main_comms.c /board/main.c /board/drivers/simple_watchdog.c /board/stm32h7/board.c /board/boards/tres.c /board/boards/red.c /board/boards/cuatro.c /board/main_definitions.c
8+
--enable=all --addon=misra -DSTM32H7 -DSTM32H725xx -I /board/stm32h7/inc/ -DPANDA /board/utils.c /board/stm32h7/board.c /board/stm32h7/llfan.c /board/stm32h7/llfdcan.c /board/stm32h7/peripherals.c /board/stm32h7/sound.c /board/stm32h7/llspi.c /board/stm32h7/lli2c.c /board/stm32h7/lluart.c /board/stm32h7/llusb.c /board/stm32h7/stm32h7_config.c /board/stm32h7/clock.c /board/stm32h7/interrupt_handlers.c /board/stm32h7/lladc.c /board/critical.c /board/faults.c /board/main_definitions.c /board/globals.c /board/main.c /board/boards/cuatro.c /board/boards/unused_funcs.c /board/boards/tres.c /board/boards/red.c /board/can_comms.c /board/power_saving.c /board/provision.c /board/main_comms.c /board/drivers/harness.c /board/drivers/clock_source.c /board/drivers/usb.c /board/drivers/uart.c /board/drivers/timers.c /board/drivers/led.c /board/drivers/simple_watchdog.c /board/drivers/fan.c /board/drivers/interrupts.c /board/drivers/spi.c /board/drivers/bootkick.c /board/drivers/pwm.c /board/drivers/registers.c /board/drivers/can_common.c /board/drivers/fdcan.c /board/drivers/fake_siren.c /board/drivers/gpio.c /board/early_init.c /board/libc.c
99

1010

1111
Critical errors

tests/misra/suppressions.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ misra-c2012-20.10
1313
unmatchedSuppression
1414

1515
# All interrupt handlers are defined, including ones we don't use
16-
unusedFunction:*/interrupt_handlers*.h
16+
unusedFunction:*/interrupt_handlers*
17+
misra-c2012-8.7:*/interrupt_handlers.c
1718

1819
# all of the below suppressions are from new checks introduced after updating
1920
# cppcheck from 2.5 -> 2.13. they are listed here to separate the update from

tests/misra/test_misra.sh

Lines changed: 26 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -68,54 +68,32 @@ cppcheck() {
6868
PANDA_OPTS="--enable=all --addon=misra"
6969

7070
printf "\n${GREEN}** PANDA H7 CODE **${NC}\n"
71-
cppcheck $PANDA_OPTS -DSTM32H7 -DSTM32H725xx -I $PANDA_DIR/board/stm32h7/inc/ -DPANDA \
72-
$PANDA_DIR/board/libc.c \
73-
$PANDA_DIR/board/early_init.c \
74-
$PANDA_DIR/board/critical.c \
75-
$PANDA_DIR/board/drivers/led.c \
76-
$PANDA_DIR/board/drivers/pwm.c \
77-
$PANDA_DIR/board/drivers/gpio.c \
78-
$PANDA_DIR/board/drivers/fake_siren.c \
79-
$PANDA_DIR/board/stm32h7/lli2c.c \
80-
$PANDA_DIR/board/stm32h7/clock.c \
81-
$PANDA_DIR/board/drivers/clock_source.c \
82-
$PANDA_DIR/board/stm32h7/sound.c \
83-
$PANDA_DIR/board/stm32h7/llflash.c \
84-
$PANDA_DIR/board/stm32h7/stm32h7_config.c \
85-
$PANDA_DIR/board/drivers/registers.c \
86-
$PANDA_DIR/board/drivers/interrupts.c \
87-
$PANDA_DIR/board/provision.c \
88-
$PANDA_DIR/board/stm32h7/peripherals.c \
89-
$PANDA_DIR/board/stm32h7/llusb.c \
90-
$PANDA_DIR/board/drivers/usb.c \
91-
$PANDA_DIR/board/drivers/spi.c \
92-
$PANDA_DIR/board/drivers/timers.c \
93-
$PANDA_DIR/board/stm32h7/lladc.c \
94-
$PANDA_DIR/board/stm32h7/llspi.c \
95-
$PANDA_DIR/board/faults.c \
96-
$PANDA_DIR/board/boards/unused_funcs.c \
97-
$PANDA_DIR/board/utils.c \
98-
$PANDA_DIR/board/globals.c \
99-
$PANDA_DIR/board/obj/gitversion.c \
100-
$PANDA_DIR/board/can_comms.c \
101-
$PANDA_DIR/board/drivers/fan.c \
102-
$PANDA_DIR/board/power_saving.c \
103-
$PANDA_DIR/board/drivers/uart.c \
104-
$PANDA_DIR/board/stm32h7/llfdcan.c \
105-
$PANDA_DIR/board/drivers/harness.c \
106-
$PANDA_DIR/board/drivers/bootkick.c \
107-
$PANDA_DIR/board/stm32h7/llfan.c \
108-
$PANDA_DIR/board/stm32h7/lluart.c \
109-
$PANDA_DIR/board/drivers/fdcan.c \
110-
$PANDA_DIR/board/drivers/can_common.c \
111-
$PANDA_DIR/board/main_comms.c \
112-
$PANDA_DIR/board/main.c \
113-
$PANDA_DIR/board/drivers/simple_watchdog.c \
114-
$PANDA_DIR/board/stm32h7/board.c \
115-
$PANDA_DIR/board/boards/tres.c \
116-
$PANDA_DIR/board/boards/red.c \
117-
$PANDA_DIR/board/boards/cuatro.c \
118-
$PANDA_DIR/board/main_definitions.c
71+
72+
IGNORED_PATHS=(
73+
"$PANDA_DIR/board/obj"
74+
"$PANDA_DIR/board/jungle"
75+
"$PANDA_DIR/board/body"
76+
"$PANDA_DIR/board/stm32h7/inc"
77+
"$PANDA_DIR/board/fake_stm.h"
78+
"$PANDA_DIR/board/fake_stm.c"
79+
"$PANDA_DIR/board/flasher.h"
80+
"$PANDA_DIR/board/flasher.c"
81+
"$PANDA_DIR/board/bootstub.c"
82+
"$PANDA_DIR/board/bootstub_declarations.h"
83+
"$PANDA_DIR/board/stm32h7/llflash.h"
84+
"$PANDA_DIR/board/stm32h7/llflash.c"
85+
)
86+
87+
# build the find prune expression
88+
PRUNE_EXPR=""
89+
for p in "${IGNORED_PATHS[@]}"; do
90+
PRUNE_EXPR="$PRUNE_EXPR -path $p -prune -o"
91+
done
92+
93+
# find all .c files excluding ignored paths
94+
C_FILES=$(eval "find $PANDA_DIR/board $PRUNE_EXPR -name '*.c' -print")
95+
96+
cppcheck $PANDA_OPTS -DSTM32H7 -DSTM32H725xx -I $PANDA_DIR/board/stm32h7/inc/ -DPANDA $C_FILES
11997

12098
printf "\n${GREEN}Success!${NC} took $SECONDS seconds\n"
12199

0 commit comments

Comments
 (0)