Bug report in stm32f1xx_hal_pcd.c Accessing incorrect field during initialization
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2017-08-11 7:17 AM
Posted on August 11, 2017 at 16:17
In stm32f1xx_hal_pcd.c (for STM32F1) line 201.
There are two loops initializing end-point data, IN_ep and OUT_ep. The structs contain a field called tx_fifo_num which according to comments ain't used.
The first loop initialize IN_ep, the second OUT_ep. When looping over OUT_ep, line 203, the loop instead refer to a field in IN_ep.
Line 183-207:
/* Init endpoints structures */
for (index = 0U; index < 15U ; index++) { /* Init ep structure */ hpcd->IN_ep[index].is_in = 1U; hpcd->IN_ep[index].num = index; hpcd->IN_ep[index].tx_fifo_num = index; /* Control until ep is actvated */ hpcd->IN_ep[index].type = EP_TYPE_CTRL; hpcd->IN_ep[index].maxpacket = 0U; hpcd->IN_ep[index].xfer_buff = 0U; hpcd->IN_ep[index].xfer_len = 0U; } for (index = 0U; index < 15U ; index++) { hpcd->OUT_ep[index].is_in = 0U; hpcd->OUT_ep[index].num = index; hpcd->IN_ep[index].tx_fifo_num = index; /* Control until ep is activated */ hpcd->OUT_ep[index].type = EP_TYPE_CTRL; hpcd->OUT_ep[index].maxpacket = 0U; hpcd->OUT_ep[index].xfer_buff = 0U; hpcd->OUT_ep[index].xfer_len = 0U; }This probably doesn't case any real issues, but it's still incorrect.
This discussion is locked. Please start a new topic to ask your question.
0 REPLIES 0
