projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
STM32: USB: endpoint buffer must be 4-bytes aligned
[bertos.git]
/
bertos
/
cpu
/
cortex-m3
/
drv
/
usb_stm32.c
diff --git
a/bertos/cpu/cortex-m3/drv/usb_stm32.c
b/bertos/cpu/cortex-m3/drv/usb_stm32.c
index e1fa5fbd48a90cc242e10554983fd394d326e312..752b8e2d35868d5ff845944690ecaeabac87c8c1 100644
(file)
--- a/
bertos/cpu/cortex-m3/drv/usb_stm32.c
+++ b/
bertos/cpu/cortex-m3/drv/usb_stm32.c
@@
-1096,6
+1096,12
@@
ssize_t usb_endpointRead(int ep, void *buffer, ssize_t size)
{
int ep_num = usb_ep_logical_to_hw(ep);
{
int ep_num = usb_ep_logical_to_hw(ep);
+ if (UNLIKELY((size_t)buffer & 0x03))
+ {
+ LOG_ERR("unaligned buffer @ %p\n", buffer);
+ ASSERT(0);
+ }
+
/* Non-blocking read for EP0 */
if (ep_num == CTRL_ENP_OUT)
{
/* Non-blocking read for EP0 */
if (ep_num == CTRL_ENP_OUT)
{
@@
-1141,6
+1147,12
@@
ssize_t usb_endpointWrite(int ep, const void *buffer, ssize_t size)
{
int ep_num = usb_ep_logical_to_hw(ep);
{
int ep_num = usb_ep_logical_to_hw(ep);
+ if (UNLIKELY((size_t)buffer & 0x03))
+ {
+ LOG_ERR("unaligned buffer @ %p\n", buffer);
+ ASSERT(0);
+ }
+
/* Non-blocking write for EP0 */
if (ep_num == CTRL_ENP_IN)
{
/* Non-blocking write for EP0 */
if (ep_num == CTRL_ENP_IN)
{