
__ALIGN_BEGIN static uint8_t USBD_HID_Desc[USB_HID_DESC_SIZ] __ALIGN_END = { /* 18 */ 0x09, /* bLength: HID Descriptor size */ HID_DESCRIPTOR_TYPE, /* bDescriptorType: HID */ 0x11, /* bcdHID: HID Class Spec release number */ 0x01, 0x00, /* bCountryCode: Hardware target country */ 0x01, /* bNumDescriptors: Number of HID class descriptors to follow */ 0x22, /* bDescriptorType */ HID_MOUSE_REPORT_DESC_SIZE, /* wItemLength: Total length of Report descriptor */ 0x00, }; 查看__ALIGN_BEGIN定义是在ARM,GNUC编译环境下是4字节对齐,但在IAR下不用对齐,为什么? |
USB_CDC_HOST 标准库里边USBH_DeAllocate_AllChannel()函数的疑问?
STM32部署机器学习算法硬件至少要使用哪个系列的芯片?
重新配置SCB->VTOR = 0x08010000后,再次复位,程序异常,发现不进tick中断,IIC读数卡死在准备查询循环中。
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。
STM32F407的flash读写问题
keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?
STM32F4的IO口5V容忍问题
询问STM32F407两种USB可以实现的功能
TOF传感器(VL53L5),无法得到data ready
不是IAR环境下就要这个对齐,只是换了个写法而已。
在IAR里面使用的#pragma 语句来指定对齐方式的。
不是IAR环境下不要这个对齐,只是换了个写法而已。
在IAR里面使用的#pragma 语句来指定对齐方式的。
跳到这个关键字定义的地方确实没有对IAR下进行对齐,usb_hid.c文件你可以看一下
不妨自己加上 #pragma data_alignment=4 来满足USB DMA传输时字对齐。
以这里的USB应用为例,库函数里有专门提醒:
Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive "#pragma data_alignment=4" must be used instead.
嗯,我知道IAR下对齐要加这个关键字,我拷贝的这个定义是ST提供的USB Middlewares里的固件,这算不算是个bug 了?