闲来无事,在单片机中做了一段测试代码,目的是测试关于赋值运算的效率问题;
测试环境为32位STM32单片机
硬件平台:STM32F103C8T6
使用内部晶振
MCU FREQ: 64000000 HCLK FREQ: 64000000PCLK1 FREQ: 32000000PCLK2 FREQ: 64000000 ADC FREQ: 8000000 MCU Type: 00-10-04-0AFlash Size: 64K
测试如下代码:
分别做了无符号8位,16位,32位,以及位域和左移的赋值运算,
为了一致性,均采用自身值作为计算参数
uint8_t t_value8 = 0;uint16_t t_value16 = 0;uint32_t t_value32 = 0;union{ uint32_t value32; struct{ uint8_t bit0:1; uint8_t bit1_7:7; }bit;}t_bitValue32;union{ uint32_t value32; struct{ uint8_t bit0:1; uint8_t bit1_8:8;