1.高版本IAR编译低版本IAR工程提示Error[412]: Branch to unaligned address。
解决办法:是因为对齐方式错误,在错误代码上面加THUMB可以解决。
2.高版本IAR编译低版本IAR工程提示Error[Li005]: no definition for "__program_start"
解决:原因:IAR4.42和5.11的编译器有很大的变化,更改方法:在stm32f10x_vector.c 加上“#define __program_start __iar_program_start ”,其中__program_start是4.42的程序入口,__iar_program_start 是5.11的程序入口。
3.IAR 5.4 同时打开多个工程的方法
解决:重新打开一个新的IAR,在里面打开工程就可以打开另一个工程了.
4.提示function 'assert_param' declared implicitly的警告和错误
这个问题原因是由一个宏开关没有打开!这个宏USE_STDPERIPH_DRIVER开关需要打开,就不会有这个告警、错误,Options->C/C++ Compiler的Preprocessor页的Defined symbols中加上USE_STDPERIPH_DRIVER
5.在RAM调试程序时,用到printf就会MAKE不成功,提示the destination for compressed initializer batch "P2 s0" is placed at an address that is dependenton the size of the batch, which is not allowed when using packbits compression. Consider using "initialize by copy with packing = zeros" (or none) instead
解决:修改stm32f10x_ram.icf文件,将initialize by copy { readwrite };
修改为: initialize by copy with packing = zeros { readwrite };