Found out that DEBUGASSERT(pholder != NULL) was not caused by can driver
itself, but just related to a task, where I'm polling can, that's why I
misled, sorry.
Alan and Gregory, thanks for feedbacks!

As for issue 1354 <https://github.com/apache/incubator-nuttx/issues/1354>,
made the PR 1370 <https://github.com/apache/incubator-nuttx/pull/1370>.

пт, 3 июл. 2020 г. в 16:26, Oleg Evseev <ev.m...@gmail.com>:

> Hi, Alan.
>
> Thanks for the feedback.
>
> Found out that I'm still get DEBUGASSERT(pholder != NULL) in function
> nxsem_allocholder in file semaphore/sem_holder.c after
> DEBUGASSERT(sem->semcount<SEM_VALUE_MAX) fix, so it seems that they are not
> related.
> I'm trying to investigate this.
>
> пт, 3 июл. 2020 г. в 15:47, Alan Carvalho de Assis <acas...@gmail.com>:
>
>> Hi Oleg,
>>
>> I just responded your issue.
>>
>> I hope to have shed some light there.
>>
>> BR,
>>
>> Alan
>>
>> On 7/3/20, Oleg Evseev <ev.m...@gmail.com> wrote:
>> > Regarding to can driver, from some moment I started getting
>> > DEBUGASSERT(sem->semcount<SEM_VALUE_MAX)
>> > in sem_post.c. Found the bug
>> > https://github.com/apache/incubator-nuttx/issues/1354
>> >
>> > I don't know, was DEBUGASSERT(pholder != NULL) a different appearance of
>> > the same bug or it is something else.
>> >
>> > --
>> > With regards,
>> > Oleg.
>> >
>> >
>> > вт, 30 июн. 2020 г. в 20:16, Oleg Evseev <ev.m...@gmail.com>:
>> >
>> >> Find out that this happens while in poll.
>> >>
>> >> вт, 30 июн. 2020 г. в 15:45, Oleg Evseev <ev.m...@gmail.com>:
>> >>
>> >>> Hi all,
>> >>>
>> >>> I wonder how can I debug
>> >>> DEBUGASSERT(pholder != NULL) in function nxsem_allocholder in file
>> >>> semaphore/sem_holder.c that happens after some time reading a lot of
>> >>> messages from can bus in can_reciever task?
>> >>>
>> >>> Task  looks like this (CAN dev is opened as shared file with
>> >>> file_open(&CANmodule->file, "/dev/can0", O_RDWR)):
>> >>>
>> >>> pollfd fds[1];
>> >>> fds[0].fd = -1;
>> >>> fds[0].ptr = CANmodule->file ;
>> >>> fds[0].events = POLLIN | POLLFILE;
>> >>>
>> >>> while (!_thread_should_exit) {
>> >>>     int ret = poll(fds, sizeof(fds) / sizeof(fds[0]), 1000);
>> >>>
>> >>>     if (fds[0].revents & POLLIN) {
>> >>>         /* Read the RX message */
>> >>>         CANreceive();
>> >>>     }
>> >>> }
>> >>>
>> >>> void CANreceive(CANmodule_t *CANmodule){
>> >>> struct can_msg_s msg = {};
>> >>> ssize_t nbytes;
>> >>>
>> >>>     nbytes = file_read(&CANmodule->file, &msg,  sizeof(struct
>> can_msg_s)
>> >>> );
>> >>>     ...
>> >>> }
>> >>>
>> >>> Thanks in advance for any help.
>> >>>
>> >>> --
>> >>> With regards,
>> >>> Oleg.
>> >>>
>> >>
>> >
>>
>

Reply via email to