博士
最后登录1970-1-1
在线时间 小时
注册时间2019-4-17
|
本帖最后由 初晴sama 于 2019-11-25 14:30 编辑
编译器升级注意事项总结
1:CMSIS、HAL,直接使用,CMSIS使用5.6稳妥
2:使用FreeRTOS需要更改port.c,AC5使用RVDS下的,AC6使用GCC的
3:C/C++下,优化等级选0,语言选c99、c++1或者gnc99、gnc11是一样的
4:AC6下中文的C文件需要更换成UTF-8,AC5如果继续使用此文件,需要在misc control下添加--locale=english,调试的时候会乱码,所以可以默认的就行了,不用添加--locale=english
5:养成良好习惯,可以在使用不同编译器时添加不同编译器定义
defined ( __CC_ARM )
#elif defined(__GNUC__)或者是defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100)
6:AC5/AC6相关的定义区别如图2
7:为养成良好习惯,list、output生成的文件建议区分成AC5(AC6)
8: AC6定义相关指定地址,请使用section(“”name“”),或者__attribute__((section(".ARM.__at_0xxx")))
9:使用stemwin GUICONF需要修改,见文件3.主要原因是at不支持,所以改成指针就行。
注意:
1、hal库下uart的头文件官方是不对的,比如stm32h7xx_uart_h,官方少了一个2
2、其次,就是刚刚说的编码,可以不管,还有一个就是printf格式串(cm_backtrace),也可以不用管
cm_backtrace没有使用gnc的功能,用这个替换 defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100)
3、keil版本请使用5.26以上,下面的工程:freertos10.2,cmsis 5.6
4、优化等级一定要选0,否则模拟ii2会出错,比如电容屏配置。
|
|