在做底层或者驱动开发的时候,经常会遇到一些硬件限制。比如STM32的一些寄存器需要16位访问和32位访问,否则可能会导致Hardfault中断;另一个例子是擦除闪存扇区时,需要进行块擦除。这些都是硬件决定的,必须要做。假设我们需要32位来访问一个地址dst,如果我们要写10个字符(两次写8个字节,所以需要3次才能写完),我们一般是怎么做的呢?char*str="0123456789";uint32_tlen=strlen(str);uint32_t*src=str;uint32_t*dst=0x20000000;#defineSIZE(4)if((len%SIZE)!=0)//判断是否整除{len=len/SIZE+1;}else{len=len/SIZE;}for(inti=0;i
