mirror of https://github.com/ARMmbed/mbed-os.git
Add HAL API for can pinmap
Add the functions can_rd_pinmap and can_td_pinmap to all targets.pull/9449/head
parent
3bd3aca6db
commit
7e8695a2c5
|
@ -21,6 +21,7 @@
|
||||||
#define MBED_CAN_API_H
|
#define MBED_CAN_API_H
|
||||||
|
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
|
#include "pinmap.h"
|
||||||
|
|
||||||
#if DEVICE_CAN
|
#if DEVICE_CAN
|
||||||
|
|
||||||
|
@ -76,6 +77,24 @@ unsigned char can_rderror(can_t *obj);
|
||||||
unsigned char can_tderror(can_t *obj);
|
unsigned char can_tderror(can_t *obj);
|
||||||
void can_monitor(can_t *obj, int silent);
|
void can_monitor(can_t *obj, int silent);
|
||||||
|
|
||||||
|
/** Get the pins that support CAN RD
|
||||||
|
*
|
||||||
|
* Return a PinMap array of pins that support CAN RD. The
|
||||||
|
* array is terminated with {NC, NC, 0}.
|
||||||
|
*
|
||||||
|
* @return PinMap array
|
||||||
|
*/
|
||||||
|
const PinMap *can_rd_pinmap(void);
|
||||||
|
|
||||||
|
/** Get the pins that support CAN TD
|
||||||
|
*
|
||||||
|
* Return a PinMap array of pins that support CAN TD. The
|
||||||
|
* array is terminated with {NC, NC, 0}.
|
||||||
|
*
|
||||||
|
* @return PinMap array
|
||||||
|
*/
|
||||||
|
const PinMap *can_td_pinmap(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -630,4 +630,14 @@ void can_monitor(can_t *obj, int silent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -629,4 +629,14 @@ int can_filter(can_t *obj, uint32_t id, uint32_t mask, CANFormat format, int32_t
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -628,4 +628,14 @@ int can_filter(can_t *obj, uint32_t id, uint32_t mask, CANFormat format, int32_t
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -308,5 +308,15 @@ void can_monitor(can_t *obj, int silent)
|
||||||
{
|
{
|
||||||
CAN_EnterTestMode((CAN_T *)NU_MODBASE(obj->can), CAN_TEST_SILENT_Msk);
|
CAN_EnterTestMode((CAN_T *)NU_MODBASE(obj->can), CAN_TEST_SILENT_Msk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // DEVICE_CAN
|
#endif // DEVICE_CAN
|
||||||
|
|
|
@ -352,4 +352,14 @@ void can_monitor(can_t *obj, int silent)
|
||||||
CAN_EnterTestMode((CAN_T *)NU_MODBASE(obj->can), CAN_TEST_SILENT_Msk);
|
CAN_EnterTestMode((CAN_T *)NU_MODBASE(obj->can), CAN_TEST_SILENT_Msk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // DEVICE_CAN
|
#endif // DEVICE_CAN
|
||||||
|
|
|
@ -356,5 +356,15 @@ void can_monitor(can_t *obj, int silent)
|
||||||
{
|
{
|
||||||
CAN_EnterTestMode((CAN_T *)NU_MODBASE(obj->can), CAN_TEST_SILENT_Msk);
|
CAN_EnterTestMode((CAN_T *)NU_MODBASE(obj->can), CAN_TEST_SILENT_Msk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // DEVICE_CAN
|
#endif // DEVICE_CAN
|
||||||
|
|
|
@ -461,3 +461,13 @@ void can_monitor(can_t *obj, int silent) {
|
||||||
LPC_CAN->CNTL |= CANCNTL_INIT;
|
LPC_CAN->CNTL |= CANCNTL_INIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
|
@ -626,3 +626,13 @@ void can_monitor(can_t *obj, int silent) {
|
||||||
LPC_C_CAN0->CANCNTL |= (1UL << 0);
|
LPC_C_CAN0->CANCNTL |= (1UL << 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
|
@ -452,3 +452,13 @@ void can_monitor(can_t *obj, int silent) {
|
||||||
can_enable(obj);
|
can_enable(obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
|
@ -393,3 +393,13 @@ void can_monitor(can_t *obj, int silent) {
|
||||||
can_enable(obj);
|
can_enable(obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
|
@ -390,3 +390,13 @@ void can_monitor(can_t *obj, int silent) {
|
||||||
can_enable(obj);
|
can_enable(obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
|
@ -388,7 +388,7 @@ static void can_err_irq(uint32_t ch, CanIrqType type) {
|
||||||
*dmy_erfl &= 0xFFFFFF7F; // Clear ALF
|
*dmy_erfl &= 0xFFFFFF7F; // Clear ALF
|
||||||
break;
|
break;
|
||||||
case IRQ_BUS:
|
case IRQ_BUS:
|
||||||
*dmy_erfl &= 0xFFFF00FF; // Clear ADERR、B0ERR、B1ERR、CERR、AERR、FERR、SERR
|
*dmy_erfl &= 0xFFFF00FF; // Clear ADERR<EFBFBD>AB0ERR<EFBFBD>AB1ERR<EFBFBD>ACERR<EFBFBD>AAERR<EFBFBD>AFERR<EFBFBD>ASERR
|
||||||
*dmy_erfl &= 0xFFFFFFFE; // Clear BEF
|
*dmy_erfl &= 0xFFFFFFFE; // Clear BEF
|
||||||
break;
|
break;
|
||||||
case IRQ_WAKEUP:
|
case IRQ_WAKEUP:
|
||||||
|
@ -1033,3 +1033,13 @@ static void can_set_channel_mode(uint32_t ch, int mode) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1205,4 +1205,14 @@ void can_irq_set(can_t *obj, CanIrqType type, uint32_t enable)
|
||||||
|
|
||||||
#endif /* FDCAN1 */
|
#endif /* FDCAN1 */
|
||||||
|
|
||||||
|
const PinMap *can_rd_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_TD;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PinMap *can_td_pinmap()
|
||||||
|
{
|
||||||
|
return PinMap_CAN_RD;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // DEVICE_CAN
|
#endif // DEVICE_CAN
|
||||||
|
|
Loading…
Reference in New Issue