工具/软件:Code Composer Studio
您好,
与TI编译器类似,gcc将优化未使用的函数和变量。 因此,应将使用的属性添加到中断处理程序数组中(在文件startup_msp432p401r_gcc.c中),这将防止gcc删除中断处理程序。
请将其添加到默认模板中,因为这可能会给用户带来非常奇怪的问题。
谢谢,
丹
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好,
与TI编译器类似,gcc将优化未使用的函数和变量。 因此,应将使用的属性添加到中断处理程序数组中(在文件startup_msp432p401r_gcc.c中),这将防止gcc删除中断处理程序。
请将其添加到默认模板中,因为这可能会给用户带来非常奇怪的问题。
谢谢,
丹
Dan,
您使用的是哪个版本的工具? 原因是我使用CCSv7中的所有缺省值创建了一个简单的项目,并且可以看到,在优化器完全打开时,.intvecs已完全分配。 另外,我将我的项目的启动文件与Simplelink MSP432 SDK (msp432p401_adc14_21)中的一个GCC示例进行了比较,它们的区别仅在入口点-项目模板调用GCC的_mainCRTStartup(),项目手动初始化.bss并直接调用main()。
我将示例项目移植到基于模板的项目中,它也运行良好。 请检查所附的我使用的项目。
此致,
拉斐尔
嗨Dan,
只是为了确保我理解正确,您使用的是不带CCS的GCC编译器,您看到.intvecs节为空,但处理程序是链接的(我假设用.text)。 以下行将产生请求的更改:
void (* const interruptvectors[])(void)__attribute__(section(".intvecs"))))__attribute__(((已用))={...}
我无法使用ARM GCC 4.9 在CCS中重新创建问题。3,__attribute__((已用))没有区别。 映射文件显示.intvecs节的长度为0xe4。
可能CCS GCC链接器的处理方式有所不同。 请告诉我您使用了哪些链接器选项,以便我使用独立的GCC支持软件包重新创建它?
谢谢!
Bob Heilmaier