Commit Graph

66 Commits

Author SHA1 Message Date
Adeeb Shihadeh
b1191df619 cleanup unused defines in drivers.h (#2336) 2026-02-15 17:02:00 -08:00
Adeeb Shihadeh
ad377ced81 single header for all drivers (#2335)
* drivers.h, claude's try

* include from root

* fix mac

* organize a lil more
2026-02-15 16:33:58 -08:00
Adeeb Shihadeh
5ee618e2f1 spi: let err count overflow (#2279) 2025-09-23 18:03:05 -07:00
Adeeb Shihadeh
5c1ff7bfa3 optimize CAN send over SPI (#2266)
* profiling

* lil faster

* chunking happens later

* little better

* prealloc is no bueno?

* cleanup

* fix usb tests

---------

Co-authored-by: Comma Device <device@comma.ai>
2025-09-02 19:26:52 -07:00
Adeeb Shihadeh
1ce986f75c bye bye f4 (#2259)
* bye bye f4

* lil more

* fix mac build

* update health idx
2025-08-26 12:37:36 -07:00
Adeeb Shihadeh
e13f3031c0 SPI: add NACK test endpoint (#2249)
Co-authored-by: Comma Device <device@comma.ai>
2025-07-30 20:32:46 -07:00
Adeeb Shihadeh
1d9aa1beba SPI: spi_error_count is a better name (#2248)
SPI: rename spi_checksum_error_count -> spi_error_count
2025-07-30 18:20:18 -07:00
Adeeb Shihadeh
ca603115cb Include from project root (#2232)
* fix include paths

* cleanup
2025-07-19 21:58:58 -07:00
Adeeb Shihadeh
5ac6305a95 quick garbage collection pass (#2231)
* remove DPANDA

* -22

* lil more

* canfd

* lil more

* update cppcheck

* uart cleanup

* always harness

* sbu sense

* lil more

* enable spi

* rm ENABLE_SPI
2025-07-19 21:05:12 -07:00
Robbe Derks
b14c47eb79 Cleanup common and useless debug logs (#2183)
* cleanup common logs

* cleanup puth2
2025-04-09 16:09:19 +02:00
Maxime Desroches
ac9c1b3b3f misra8.7 (#2033)
* 8_7

* fix test
2024-09-20 15:51:27 -07:00
Maxime Desroches
022d1c69a1 misra8.4: board/drivers (#2025)
* drivers

* cleanup bootkick

* bxcan cleanup

* fan cleanup

* harness cleanup

* interrupts cleanup

* registers cleanup

* simple_watchdog cleanup

* spi cleanup

* h7 drivers

* no include for now

* conflict

* reduce scope

* cleanup
2024-09-20 14:30:45 -07:00
Maxime Desroches
ed831773ea misra21.15 (#2030)
* cast

* remove suppression

* make it more explicit
2024-09-19 10:35:11 -07:00
dzid26
6ff6733ba3 Cppcheck 2.14 (#1951)
* enable cppcheck 2.14

* cppcheck: Uninitialized variable

* cppcheck: variableScope

* cppcheck: misra-c2012-21.16
both arguments to memcmp() should be of compatible (matching) essential types

* cppcheck: misra-c2012-11.6
Avoid casting between pointer to void and an arithmetic type.
Refactor bootloader address casting for easier understanding.

* cppecheck 2.14.1
- force cppecheck tag fetch
2024-05-27 21:21:13 -07:00
Adeeb Shihadeh
cade0d5e75 SPI: add test endpoint for arbitrary lengths (#1949)
Co-authored-by: Comma Device <device@comma.ai>
2024-05-16 19:36:40 -07:00
Adeeb Shihadeh
418fca3583 enable misra-config checks (#1879)
* mostly done

* fix rest of misra-config

* do other two in next pr
2024-03-24 12:10:37 -07:00
Adeeb Shihadeh
dcc7b84001 UID_BASE is always defined now 2024-03-24 10:59:51 -07:00
Ruben Medina
40671436ee enable misra-constParameterPointer (#1826) 2024-01-20 21:50:42 -08:00
Ruben Medina
5ddc0cf04f enable misra-c2012-21.14 (#1810) 2024-01-18 14:10:17 -08:00
Aryan
6ae65db44a enable misra-c2012-5.8 (#1800) 2024-01-15 10:38:46 -08:00
Igor Biletksyy
d41a0abef6 H7: comments for RAM organization reasoning 2023-08-29 16:10:50 -07:00
Igor Biletskyy
91d457cbb1 H7: reorganize RAM (#1619)
init
2023-08-29 13:04:27 -07:00
Igor Biletskyy
0a32b17513 H7: few more Kb of RAM found (#1605)
* init

* remove discard
2023-08-24 16:56:31 -07:00
Adeeb Shihadeh
8258d18e87 spi: bump version 2023-07-20 11:15:01 -07:00
Adeeb Shihadeh
e8da4eab2e SPI: increase buffer size on H7 2023-07-16 12:56:05 -07:00
Adeeb Shihadeh
a687b183ee SPI: update max IRQ rate (#1493) 2023-07-03 22:06:35 -07:00
Adeeb Shihadeh
14fd5ff5a3 SPI: send bootstub status in version request (#1492)
* mv first

* switch to crc8

* bootstub

* test

* cleanup

* little more

* misra

---------

Co-authored-by: Comma Device <device@comma.ai>
2023-07-03 15:23:12 -07:00
Adeeb Shihadeh
d693e89df2 SPI: send hw type with version (#1490)
Co-authored-by: Comma Device <device@comma.ai>
2023-07-02 23:50:30 -07:00
Adeeb Shihadeh
abcbfb44b4 SPI: send serial with protocol version (#1489)
* SPI: send serial with protocol version

* misra

* fix test

---------

Co-authored-by: Comma Device <device@comma.ai>
2023-07-02 23:13:57 -07:00
Adeeb Shihadeh
5abb2b58da SPI: add protcol version request (#1488)
* SPI: add protcol version request

* quick test

* fix linter

* misra

---------

Co-authored-by: Comma Device <device@comma.ai>
2023-07-02 15:51:35 -07:00
Adeeb Shihadeh
52f96bac68 spi: nack on can tx endpoint if buffer is full (#1426)
* spi: nack on can tx endpoint if buffer is full

* handle in python lib

* fix timeout

* fix timeout

* fix linter

* cleanup

* fix

---------

Co-authored-by: Comma Device <device@comma.ai>
2023-05-19 22:43:34 -07:00
Adeeb Shihadeh
2ed514807e H7: restart SPI peripheral between transfers (#1424)
* H7: restart SPI peripheral between transfers

* fix misra

---------

Co-authored-by: Comma Device <device@comma.ai>
2023-05-17 20:59:37 -07:00
Adeeb Shihadeh
a93bc954c5 SPI HITL tests + cleanup (#1417)
* start comms hitl tests

* pull that out

* revert that

* more test

* fix warnings

* fix linter

* another simple case

---------

Co-authored-by: Comma Device <device@comma.ai>
2023-05-17 17:13:12 -07:00
Adeeb Shihadeh
8e1ca608b0 H7: remove busy wait on TXC (#1381)
* works

* cleanup

* less irq

* less diff

---------

Co-authored-by: Comma Device <device@comma.ai>
2023-05-01 20:18:23 -07:00
Adeeb Shihadeh
6f852b44a9 SPI: log checksum errors in health (#1334)
* SPI: log checksum errors in health

* actually send it

* check in hitl teardown

* check that

* fix misra
2023-04-05 22:05:14 -07:00
Adeeb Shihadeh
cb35309160 spi tx timeout print 2023-03-31 14:39:30 -07:00
Robbe Derks
687676be40 Add timeout to spi driver (#1223)
add timeout to spi driver

Co-authored-by: Comma Device <device@comma.ai>
2023-01-24 13:50:51 +01:00
Adeeb Shihadeh
e6f62a62aa rename puts to avoid conflict with stdio.h (#1174)
* rename puts to avoid conflict with stdio.h

* better name
2022-11-29 22:55:10 -08:00
Adeeb Shihadeh
e7131fcee0 H7 SPI comms (#1158)
* getting health packets

* start cleanup

* pull state machine out

* cleanup
2022-11-14 13:52:52 -08:00
Robbe Derks
d574f4aebc STM32F4: SPI communications (#998)
* cleanup is_enumerated, rename comms and init spi

* big comms refactor, building now

* misra fixes

* more fixes

* misra try 3

* cleanup

* this belongs in a separate PR

* remove unneccesary file

* revert llspi changes

* llspi misra fix

* enable SPI on F4 and setup gpio

* duh

* wip: spi comms

* more spi wip

* dynamic sector erasing

* Revert "dynamic sector erasing"

This reverts commit fce1215a2e.

* more sectors to be erased

* debugging

* woah, this works

* cleanup on the panda side

* add sync and checksum checks, and fix recovery on errors

* this seems relatively stable

* add retrying

* this is stabler

* some endianness and endpoint fixes

* builds

* revert that

* add that back

* checksum start

* start splitting up driver

* spi behind flag

* cleanup test

* bump up timeout

Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2022-11-09 18:46:20 -08:00
Igor
eab9c9ee4c HAL refactoring part 2 (#682)
* Move harness threshold

* Move interrupt handlers

* timers.h refactor

* rtc.h refactor

* pwm.h and fan.h refactor

* clock_source is hw specific

* refactor uart.h

* macro naming

* minor fixes

* redo rtc
2021-07-13 14:12:07 -07:00
Igor
7d93e5a202 Refactor HAL (#656)
* Let refactoring begin!

* Fix pedal build

* Fix pedal safety tests

* Forgot few TIM2 instances

* Try this way with misra

* More misras...

* More misras...

* Still fighting with misra blindfolded

* Almost got it!

* Last misra error..

* Last misra error..

* Misra works locally..

* Maybe this?

* Looks like it was cppcheck bug, revert changes

* Suggested changes and reverts

* File structure change

* revert includes

* remove spaces

* remove timer delay

* endings

* more typing

* rename early to early_initialization

* Remove delay_us

* Revert RTC default values

* Revert initialization sequence

* Fix quotes

* Revert

* Return TIM6EN

* Alias slow timer to TICK_TIMER

* Refactor files structure

* Remove definition of PANDA

* Abstract timers

* Fix include

* tick_timer_init

* Split usb driver

* Move LL stuff: adc

* Move LL stuff: usb

* Fix include again...

* Will check pedal builds also locally..

* Move LL stuff: CAN

* Move LL stuff: clock

* Rename common to peripherals and move

* Move board HAL

* Change include, not needed for pedal

* llgpio to gpio and new lines fix

* remove board_has_relay, not used

* Remove board_functions.h and add to board struct

* Move include

* Fk MISRA...

* has_onboard_gmlan to has_hw_gmlan

* Typos

* Move board_declarations include

* Shuffle

* More abstraction

* fix paths, fix cppcheck test

* Fix for pedal build with USB
2021-07-02 18:25:35 -07:00
Riccardo
df4159c846 Revert "Revert "Register readback on most modules. Still need to convert the other ones (#396)""
This reverts commit 56ec215024.
2019-12-05 14:19:29 -08:00
Riccardo
56ec215024 Revert "Register readback on most modules. Still need to convert the other ones (#396)"
This reverts commit 893e486194.
2019-12-05 13:55:20 -08:00
robbederks
893e486194 Register readback on most modules. Still need to convert the other ones (#396)
* Added an initial working implementation of the register readback and applied it to the LLCAN registers. Also fixed an init bug in CAN.

* Locally disable pylint import error

* Reverted change to CAN-obj->FA1R setting

* Fixed misra compliance

* Changed hash function name

* Fixed CAN filter setting

* Added voltage health test

* Converted ADC to register functions

* Converted clock to use register setters

* Added check to see if fault status is zero after running test

* Converted DAC to use register setters

* Converted fan to use register setters

* Converted gmlan bitbanging to use register setters

* Changed over interrupt driver to use register setters. Also moved some includes and definition places for critical sections

* Fixed build

* Converted LLGPIO to use register setters

* Converted pwm to use register setters

* Fixed cold boot

* Fixed health fault check in automated tests

* Added comment for the future (issue #367)

* Converted RTC driver to use register setters

* Converted SPI to use register setters

* Converted timer driver to use register setters

* Fixed register fault on white pandas and disabled showing of fault for release

* Bump version
2019-12-04 20:42:57 -08:00
robbederks
656f99b080 Interrupt refactor (NVIC_SM_1: #334) and Fault handling (#377) (PR #373) 2019-11-27 18:11:21 -08:00
rbiasini
3c3aba3dbc Misra 10.4: Both operands of an operator in which the usual arithmetic conversions are performed shall have the same essential type category (#240)
* Almost done with 10.4, a couple of non-obvious violations remaining
2019-07-04 01:04:58 -07:00
rbiasini
1bd9284372 Misra 17.7: the value returned by a function having non-void return shall be used (#237)
* Fixed Misra 17.7 violations except for can_push
2019-07-03 16:01:01 -07:00
rbiasini
ea908cbb75 10_1 violations: Operands shall not be of an inappropriate essential type (#233)
* 10_1 violations
2019-07-02 23:43:06 -07:00
Riccardo
ecb9b6c01f Revert "Misra 10 1: Operands shall not be of an inappropriate essential type (#232)"
This reverts commit 8732e4faf0.
2019-06-30 13:43:21 -07:00