Added canTryAbortX() function to CAN driver, implemented for STM32 CANv1.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13074 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
998d8cee1b
commit
48f3740bd5
|
@ -231,6 +231,8 @@ extern "C" {
|
|||
bool canTryReceiveI(CANDriver *canp,
|
||||
canmbx_t mailbox,
|
||||
CANRxFrame *crfp);
|
||||
void canTryAbortX(CANDriver *canp,
|
||||
canmbx_t mailbox);
|
||||
msg_t canTransmitTimeout(CANDriver *canp,
|
||||
canmbx_t mailbox,
|
||||
const CANTxFrame *ctfp,
|
||||
|
|
|
@ -942,6 +942,20 @@ void can_lld_receive(CANDriver *canp,
|
|||
crfp->TIME = (uint16_t)(rdtr >> 16);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Tries to abort an ongoing transmission.
|
||||
*
|
||||
* @param[in] canp pointer to the @p CANDriver object
|
||||
* @param[in] mailbox mailbox number
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
void can_lld_abort(CANDriver *canp,
|
||||
canmbx_t mailbox) {
|
||||
|
||||
canp->can->TSR = 128U << ((mailbox - 1U) * 8U);
|
||||
}
|
||||
|
||||
#if CAN_USE_SLEEP_MODE || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief Enters the sleep mode.
|
||||
|
|
|
@ -452,6 +452,8 @@ extern "C" {
|
|||
void can_lld_receive(CANDriver *canp,
|
||||
canmbx_t mailbox,
|
||||
CANRxFrame *ctfp);
|
||||
void can_lld_abort(CANDriver *canp,
|
||||
canmbx_t mailbox);
|
||||
#if CAN_USE_SLEEP_MODE
|
||||
void can_lld_sleep(CANDriver *canp);
|
||||
void can_lld_wakeup(CANDriver *canp);
|
||||
|
|
|
@ -218,6 +218,24 @@ bool canTryReceiveI(CANDriver *canp,
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Tries to abort an ongoing transmission.
|
||||
*
|
||||
* @param[in] canp pointer to the @p CANDriver object
|
||||
* @param[in] mailbox mailbox number
|
||||
*
|
||||
* @xclass
|
||||
*/
|
||||
void canTryAbortX(CANDriver *canp,
|
||||
canmbx_t mailbox) {
|
||||
|
||||
osalDbgCheck((canp != NULL) &&
|
||||
(mailbox != CAN_ANY_MAILBOX) &&
|
||||
(mailbox <= (canmbx_t)CAN_TX_MAILBOXES));
|
||||
|
||||
can_lld_abort(canp, mailbox);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Can frame transmission.
|
||||
* @details The specified frame is queued for transmission, if the hardware
|
||||
|
|
|
@ -209,6 +209,21 @@ void can_lld_receive(CANDriver *canp,
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Tries to abort an ongoing transmission.
|
||||
*
|
||||
* @param[in] canp pointer to the @p CANDriver object
|
||||
* @param[in] mailbox mailbox number
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
void can_lld_abort(CANDriver *canp,
|
||||
canmbx_t mailbox) {
|
||||
|
||||
(void)canp;
|
||||
(void)mailbox;
|
||||
}
|
||||
|
||||
#if (CAN_USE_SLEEP_MODE == TRUE) || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief Enters the sleep mode.
|
||||
|
|
|
@ -258,6 +258,8 @@ extern "C" {
|
|||
void can_lld_receive(CANDriver *canp,
|
||||
canmbx_t mailbox,
|
||||
CANRxFrame *crfp);
|
||||
void can_lld_abort(CANDriver *canp,
|
||||
canmbx_t mailbox);
|
||||
#if CAN_USE_SLEEP_MODE == TRUE
|
||||
void can_lld_sleep(CANDriver *canp);
|
||||
void can_lld_wakeup(CANDriver *canp);
|
||||
|
|
|
@ -74,6 +74,8 @@
|
|||
*****************************************************************************
|
||||
|
||||
*** Next ***
|
||||
- NEW: Added canTryAbortX() function to CAN driver, implemented
|
||||
for STM32 CANv1.
|
||||
- NEW: Added error handling to WSPI driver, now LLDs can report error
|
||||
conditions to upper layers.
|
||||
- NEW: Added mcuconf.h generator for STM32G4x4.
|
||||
|
|
Loading…
Reference in New Issue