编译警告如下.\Objects\XX.axf: Warning:L6096W: String merge section xxx.o(.conststring) is not null-terminated.原因跟 const 类型数组有关系。查看map文件也发现如果使用了static 关键字则编译器会给该变量分配一个flash地址并且很清楚的标注属性是constdata类型。 而如果没有static编译器可能会识图优化。 具体如下解释(如果没有static的情况确实从map文件中是无法查找到tube_index变量的分配的)。举例const uint8_t tube_index[] { 9, 8, 7}; 这个数组就会报上述警告。改成static const uint8_t tube_index[] { 9, 8, 7}; 前面添加了static就不会有问题了。解决方案在数组前面添加 static 。