我正在使用ARM GCC noneabi编译器c / c ++对STM32F4 **和STM32F0 **之类的MCU进行编程,并发现了有趣的模式。
如果我构建一些* .bin文件,它的大小总是可以被4整除。
我认为可能是因为MCU是32位(= 4字节)。因此bin_size%4 == 0。我尝试了一些“技巧”;例如,将某个字节数组扩大1,但二进制大小始终相同。当我更多地扩大数组时,二进制大小会更大,但又可以被4整除。
我可以将此效应视为公理吗?
还是有一些情况不起作用?例如,是否可以将32位STM32 MCU切换到16位模式?还是可以用另一个编译器创建不可除二的二进制数?