FAQ
- M051 Base Series(95)
- M0518 Series(97)
- M0519 Series(43)
- M0564 Series(1)
- Mini51 Base Series(90)
- Nano100/102 Base Series(101)
- Nano103 Base Series(10)
- Nano110/112 LCD Series(100)
- Nano120 USB Series(111)
- Nano130 Advanced Series(110)
- NUC029 Series(94)
- NUC100/200 Advanced Series(102)
- NUC120/122/123/220 USB Series(116)
- NUC121/125 Series(1)
- NUC126 USB Series(2)
- NUC130/230 CAN Series(103)
- NUC131/NUC1311 CAN Series(98)
- NUC140/240 Connectivity Series(114)
- M451 Base Series(118)
- M451M Series(117)
- M452 USB Series(130)
- M4521 USB Series(1)
- M453 CAN Series(128)
- M463 CAN FD/USB HS Series(1)
- M467 Ethernet/Crypto Series(1)
- M471 Series(1)
- M479 Motor Control Series(1)
- M481 Base Series(4)
- M482 USB FS OTG Series(4)
- M483 CAN Series(4)
- M484 USB HS OTG Series(4)
- M485 Crypto Series(4)
- M487 Ethernet Series(4)
- M4TK Touch Key Series(25)
- NUC442/472 Series(130)
- NUC472 Series(1)
- NUC505 Series(138)
Products
Applications
Function
+
常见问答
为什么PDMA送出的数据内容,会发生位移现象? 日期:2016-06-27
当来源或目标的地址设为数组起始地址时,用户必须检查数组起始地址是否为字节(word)对齐。
以下例buffer起始地址为0x2000_0039,因内存排序为编译程序决定,会有非字节对齐的情况发生。
unsigned int test2;
unsigned char test1;
unsigned char buffer[100];
当PDMA来源或目标的地址设定成buffer(0x2000_0039),PDMA的硬件配置会以字节存取(0x2000_0038)。
假设使用PDMA加UART传送数据时,将会送出0x01, 0x03…,而不是从0X03开始传送。
针对内存放置为非对齐字节的状况,可以使用aligned (4),让数组对齐内存中的字节
unsigned char buffer[100] __attribute__ ((aligned (4)));
数组buffer的起始地址会以4个byte的方式对齐摆放。
当PDMA来源或目标的地址设定成buffer(0x2000_003C),已有字节对齐。假设使用PDMA加UART传送数据时,将会从0X03开始传送。
产品: | 微控制器 ,Arm Cortex-M0 微控制器 ,M051 系列 ,M0518 系列 ,M0519 系列 ,Nano100 / 102 系列 ,Nano110 / 112 LCD 系列 ,Nano120 USB 系列 ,Nano130 USB+LCD 系列 ,NUC029 系列 ,NUC100 / 200 系列 ,NUC120 / 122 / 123 / 220 USB 系列 ,NUC130 / 230 CAN 系列 ,NUC131/NUC1311 CAN 系列 ,NUC140 / 240 USB+CAN 系列 ,Arm Cortex-M4 微控制器 ,M451 Base 系列 ,M451M 系列 ,M452 USB 系列 ,M453 CAN 系列 ,NUC442 / 472 系列 ,NUC505 系列 |
---|---|
应用: | |
功能: | Peripherals,Connectivity,DMA (PDMA) |