嗨,maxruben可能是对的,优化器可能误解并优化掉必需的代码。我在包含访问数组的多个函数的代码中只对大数组使用这些声明,并且在该上下文中没有检测到问题。不应该需要声明中的onst指定符,并且可以尝试省略它。甚至可以使用易失性指定符,易失性指定符是对编译器的警告,该声明可以通过编译器不知道的方式更改,从而优化r不应该对值进行假设。现在尝试了使用以下声明的测试程序,并且正确读取了之前存储在Flash程序内存中的数据:在这个程序中,闪存数组没有在声明中初始化。效果是编译器将我将程序十六进制文件清除为零,除非程序员读取存储在闪存中的先前数据并替换编译器生成的数据。如果没有以前的数据,或者MPLAB中没有指定“保存程序内存”,则闪存页在写入之前必须由固件擦除。Mysil,Tin数据
嗨,maxruben可能是对的,优化器可能误解并优化掉必需的代码。我在包含访问数组的多个函数的代码中只对大数组使用这些声明,并且在该上下文中没有检测到问题。不应该需要声明中的onst指定符,并且可以尝试省略它。甚至可以使用易失性指定符,易失性指定符是对编译器的警告,该声明可以通过编译器不知道的方式更改,从而优化r不应该对值进行假设。现在尝试了使用以下声明的测试程序,并且正确读取了之前存储在Flash程序内存中的数据:在这个程序中,闪存数组没有在声明中初始化。效果是编译器将我将程序十六进制文件清除为零,除非程序员读取存储在闪存中的先前数据并替换编译器生成的数据。如果没有以前的数据,或者MPLAB中没有指定“保存程序内存”,则闪存页在写入之前必须由固件擦除。Mysil,Tin数据
举报