博文

目前显示的是标签为“LTE”的博文

调试LTE模块碰到的4字节对齐问题

    最近在调试LTE模块,有两个模块,碰到两种4字节对齐问题,其错误提示都是类似如下的内容:        DWC_OTG: dwc_otg_hcd_urb_enqueue urb->transfer_buffer address not align to 4-byte 0xee419e8e       都是USB控制器处理的数据时需要4字节对齐要求。       第一种情况是驱动时处理GPS数据时出现上面的错误提示,处理方法如下:       将原来的:       const char startMessage[] = "$GPS_START";        const char stopMessage[] = "$GPS_STOP";       修改为:       const char startMessage[] __attribute__((aligned (4))) = "$GPS_START";        const char stopMessage[] __attribute__((aligned (4))) = "$GPS_STOP";       第二种情况是模块上网后收发数据时均提示对齐问题,这样模块根本就无法上网了,相应的处理如下:       将相应的rx_submit函数中的skb_reserve (skb, NET_IP_ALIGN);函数注释掉;       在相应的xxxx_start_xmit函数的变量定义后添加如下内容:       length = ((unsigned long)skb->data) & 0x3...