eeeck
a9e6bbecba
Use private define for queue length
2026-06-16 00:44:34 +02:00
eeeck
92b59615d5
Configure thread attributes to use memory stacks in CCRAM
2026-06-16 00:35:33 +02:00
eeeck
d348159c20
Allocate CAN stack arrays into CCMRAM
2026-06-16 00:33:56 +02:00
eeeck
2c14d095f7
Better way to avoid race condition, only notification lives in CAN task
...
- Runs only once
- Only critical notification is inside task
- CAN message during boot will not be lost, instead put inside FIFO0
2026-06-15 14:30:35 +02:00
eeeck
c1d2e65e20
Move to RTOS_THREADS
...
- ops...
2026-06-15 14:12:47 +02:00
eeeck
ce85e473b3
Move before starting scheduler to avoid race condition
...
- If a CAN message arrives during boot time ISR will fire and try to put
data into xCAN1RxQueue. At that time queue is NULL: calling RTOS APIs
on NULL handles will cause a HardFault
2026-06-15 14:11:11 +02:00
eeeck
ab8b68313b
Transition from timer based to task based LED signal
...
- Remove RTOS timers
- Create LED task
- Avoid polling, instead wait for semaphore
2026-06-15 14:06:51 +02:00
eeeck
ac212c4a0a
Merge pull request 'Change headers with better copyright comments' ( #13 )
...
from code-licensing into j1939
Reviewed-on: erickahmed/j1939_logger#13
2026-06-14 21:36:45 +02:00
eeeck
3c66a39a5d
Fix variable name mismatch
2026-06-14 21:27:10 +02:00
eeeck
19eefc288b
Fix scope error by moving declaration
2026-06-14 20:48:11 +02:00
eeeck
17febf569a
Use a more generic name as semaphore will be used by other tasks
2026-06-14 18:31:54 +02:00
eeeck
9d4d807cfb
Fix race condition that could cause a hard fault
2026-06-14 16:21:55 +02:00
eeeck
5ec806ffea
Add CMSIS include
2026-06-14 16:17:01 +02:00
eeeck
8777f742ac
Move typedef to header
2026-06-14 16:15:33 +02:00
eeeck
4aafa81009
Change CODE BEGIN N value
2026-06-14 16:14:20 +02:00
eeeck
ac16f8150e
Use a more sensible number of semaphores
2026-06-14 16:10:18 +02:00
eeeck
f0d2990b8d
Move below timer setup
2026-06-14 16:10:00 +02:00
eeeck
72ffb2644e
Use more clear variable names
2026-06-14 16:09:45 +02:00
eeeck
a75d42faeb
Create context structure for timer callback
...
Strucure is made of
- LED (port, pin)
- Semaphore
- Timer handle
2026-06-14 15:16:23 +02:00
eeeck
5f1695dc0d
Start timer once for automatic rearming with semaphore release
2026-06-14 14:51:46 +02:00
eeeck
7ece650f72
Move declaration on top
2026-06-14 14:49:54 +02:00
eeeck
7c7d774522
Create semaphores for signalling new message in FIFO buffer
2026-06-14 14:18:28 +02:00
eeeck
c65341c662
Change periodic timers to one shot timers
2026-06-14 14:18:07 +02:00
eeeck
dc3688d3d7
Change error check structure
2026-06-14 12:25:31 +02:00
eeeck
34553af0a7
Create message queues for saving CAN frames
2026-06-14 11:11:34 +02:00
eeeck
2cce753716
Remove duplicate declaration
2026-06-14 10:47:12 +02:00
eeeck
8e37c44eae
Refactor naming conventions following FREERTOS guidelines
2026-06-14 10:04:16 +02:00
eeeck
c101c77ba4
Refactor: move RTOS task definition back to main.c
...
- Private functions remain on canlog.c
- Better consistency for when regenerating with CubeMX
2026-06-14 00:36:41 +02:00
eeeck
0e4b41647f
Change headers with better copyright comments
...
- Add SPDX License Identifier and copyright notice
- Add NOTICE.md
Minor: remove unused freertos.c
2026-06-13 20:07:32 +02:00
eeeck
de7c817471
Reset LEDs in error handler
2026-06-10 14:27:39 +02:00
eeeck
59a58d1f1f
Implement LED heartbeat with RTOS timers instead of threads
...
- Less memory overhead (no stack allocation)
- Better timing accuracy (less jitter)
- CAN bus still has higher priority than timers
2026-06-10 14:14:17 +02:00
eeeck
0c3c93040b
Simplify CAN error code handler
2026-06-10 13:16:19 +02:00
eeeck
0b05331fff
Fix error handling for CAN bus
2026-06-10 13:01:43 +02:00
eeeck
6c4a1368be
Use more clear names for RTOS function prototypes
2026-06-10 11:28:42 +02:00
eeeck
87e8ffc6fa
Adapt error handler to log CAN errors and toggle error LED
2026-06-09 10:43:32 +02:00
eeeck
c891681b94
Minor comment clarifications
2026-06-09 09:51:10 +02:00
eeeck
770e97ccd9
Move include declaration to private includes
2026-06-09 09:50:00 +02:00
eeeck
5d3c8c0ec0
Refactor task function name
2026-06-09 09:12:11 +02:00
eeeck
495c9cb377
Enable auto wake up on CAN traffic for future sleep mode
2026-06-09 00:33:14 +02:00
eeeck
b92b26b026
Remove trailing newlines
2026-06-09 00:24:41 +02:00
eeeck
9f3d681134
Remove explicit cast
2026-06-09 00:00:42 +02:00
eeeck
41084eb4d2
Move thread creation inside comment block
...
- Avoid overwrites from STM32CubeMX
2026-06-09 00:00:17 +02:00
eeeck
714ca43d45
Pass LED pin to thread arguments
...
- Create typedef for LED (port:pin)
- Define two LED as private variables
- Pass them to threads
2026-06-08 23:50:14 +02:00
eeeck
29284ceb87
Move thread handles and attributes to related file
...
- Better separation of concerns
2026-06-08 23:38:38 +02:00
eeeck
a82734cef0
Use correct thread arguments for CANrx threads
2026-06-08 23:28:54 +02:00
eeeck
e24f57e77f
Move CAN prototypes to relative include file
2026-06-08 23:19:27 +02:00
eeeck
13de1b6c47
Initialize CAN related tasks for logging and signaling
...
Initialize tasks for:
- CAN log incoming frames
- CAN blink on CANrx
2026-06-08 23:18:00 +02:00
eeeck
74cc33d0a9
Move CAN bus related tasks and definition to canlog.h
2026-06-03 23:34:10 +02:00
eeeck
1ed727fa9e
Create tasks for hcan1 and hcan2
2026-06-03 23:01:29 +02:00
eeeck
d50aab1497
Correct CAN baud rates for SAEJ1939 and enable silent mode
...
- Silent mode is also enabled by hardware (TJA1050) but better safe than
sorry
- Baud rates are 500kbps for primary bus and 250kpbs for secondary bus
2026-06-03 22:32:20 +02:00