problem : can driver not working tiva c 123gxl
can char driver
tm4cbringup:
int tm4c_can_setup(void)
{
int ret = ERROR;
// struct can_dev_s *devst;
# ifdef CONFIG_TIVA_CAN0
tiva_can0_enableclk();
ret = tiva_configgpio(GPIO_CAN0_RX);
if (ret < 0)
{
goto configgpio_error;
}
ret = tiva_configgpio(GPIO_CAN0_TX);
if (ret < 0)
{
// snerr("error init gpio rx can \n");
goto configgpio_error;
}
/* Call tiva_can_initialize() to get an instance of CAN interface 0
* and register it.
*/
ret = tiva_can_initialize("/dev/can0", 0);
if (ret < 0)
{
canerr("ERROR: Failed to get/register CAN interface 0\n");
return ret;
}
return OK;
configgpio_error:
canerr("ERROR: failed to configure CAN GPIO pin.\n");
return ret;
}
using can example from apps
can -n 1
nmsgs: 1
min ID: can_open: ocount: 0
_assert: Current Version: NuttX 12.2.1 148c631a2d Feb 24 2024 14:08:01 arm
_assert: Assertion failed nxmutex_is_hold(mutex): at file:
misc/lib_mutex.c:339 task: 0xe655
up_dump_register: R0: 20000d20 R1: 00000153 R2: 00012073 R3: 20000830
up_dump_register: R4: 20000780 R5: 0001208a R6: 20005db8 FP: 20000d20
up_dump_register: R8: 00012073 SB: 00000153 SL: 00016005 R11: 0001605c
up_dump_register: IP: 00000020 SP: 20006738 LR: 000015e9 PC: 000015e9
up_dump_register: xPSR: 60000000 PRIMASK: 00000001 CONTROL: 00000000
up_dump_register: EXC_RETURN: ffffffff
1 max ID: 2047
if i comment this line
//
nxmutex_unlock(&canmod->thd_iface_lock); from static int
tivacan_setup(struct can_dev_s *dev)
now the error changed
nsh> can -n 1
nmsgs: 1
min ID: can_open: ocount: 0
tivacan_setup: tiva_can co_steup
can_ioctl: cmd: 6914 arg: 536897800
1 max Ican_write: buflen: 4
can_xmit: xmit head: 0 queue: 0 tail: 1
can_txdone: xmit head: 0 queue: 1 tail: 1
can_xmit: xmit head: 1 queue: 1 tail: 1
can_receive: ID: 44 DLC: 8
can_receive: ID: 44 DLC: 8
can_receive: ID: 44 DLC: 8
can_receive: ID: 44 DLC: 8
Dcan_receive: ID: 44 DLC: 8
ccan_receive: ID: 44 DLC: 8
acan_receive: ID: 44 DLC: 8
ncan_receive: ID: 44 DLC: 8
can_receive: ID: 44 DLC: 8
_can_receive: ID: 44 DLC: 8
_assert: Current Version: NuttX 12.2.1 148c631a2d Feb 24 2024 14:08:01 arm
_assert: Assertion failed curr: at file: wdog/wd_cancel.c:95 task: 0xe655
up_dump_register: R0: 20000d20 R1: 0000005f R2: 0001165a R3: 20000838
up_dump_register: R4: 20000780 R5: 0001165f R6: 20005db8 FP: 20000d20
up_dump_register: R8: 0001165a SB: 0000005f SL: 0000fc7d R11: 00000000
up_dump_register: IP: 00000008 SP: 20000298 LR: 000015e9 PC: 000015e9
up_dump_register: xPSR: 20000037 PRIMASK: 00000001 CONTROL: 00000000
up_dump_register: EXC_RETURN: ffffffff
dump_tasks: PID GROUP PRI POLICY TYPE NPX STATE EVENT
SIGMASK STACKBASE STACKSIZE COMMAND
dump_tasks: ---- --- --- -------- ------- --- ------- ----------
-------- 0x200002d0 300 irq