Jump to content

    
Sign in to follow this  
Dimonira

STM32F777: Странное поведение NETCONN

Recommended Posts

Столкнулся со странностью поведения NETCONN (но, может и сам где-то накосячил). Есть две задачи FreeRTOS, в каждой из которых создаётся свой NETCONN объект. В задаче, которая выполняется первой, странностей при создании NETCONN объекта нет. А во второй задаче есть: объект, возвращаемый netconn_new содержит некорректный адрес юниона pcb - он будто задом-наперёд.

Я заходил пошагово в функцию netconn_new_with_proto_and_callback (она вызывается при netconn_new), в ней создаётся объект conn абсолютно нормальный:

_before.thumb.png.b233490391f4303b367d00f0648312d7.png

Но на следующем шаге, когда его адрес возвращается в точку вызова функции, отладчик показывает объект NETCONN с некорректным адресом pcb:

_after.thumb.png.17af4425908709679359bb1dcd597010.png

В дальнейшем, естественно, при первой же попытке использовать, например, pUdpConn->pcb.udp->local_ip, процессор уходит в обработчик аппаратной ошибки. С чем может быть это связано? Стек задачи увеличивал - не помогло.

Share this post


Link to post
Share on other sites

Кажется, я понял в чём дело. Подозреваю директиву #pragma pack(1) в своих заголовках. Исправил на пару #pragma pack(push, 1)/#pragma pack(pop), но проверить пока не могу - железо на работе.

Не нашёл как удалить тему.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this