"); //-->
TMS320F2812 中的warning: creating output section PieVectTable without SECTIONS specification问题。这个问题我到网上看了下,解答的不多。
其中这个回答比较靠谱
你试一下下面的操作: 在cmd文件中的下面添加: 1.首先在.cmd中定位系统中断表: MEMORY { PAGE 0 : ...................................... PAGE 1 : ...................................... PIE_VECT : origin = 0x000D00, length = 0x000100 ...................................... } SECTIONS { ................................... PieVectTable : > PIE_VECT, PAGE = 1 ..................................... } 2 在C中制定该中断的结构体中看看是否有: #pragma DATA_SECTION(PieVectTable,"PieVectTable"); struct PIE_VECT_TABLE PieVectTable;(在DSP28_GlobalVariableDefs.C中初始化) 3 当然你的DSP28_PieVect.c要有。。当然一般这个文件都是一样的,复制一下就可以。
以上这些我都找了,没发现错误。我的程序是将一个定时器程序载入FLASH,相信大多数朋友也是在进行FLASH操作。
忙乎了一晚上,自己查看了一下MAP文件,终于发现问题了。
PieVectTableFile
* 1 00000d00 00000000 UNINITIALIZED
PieVectTable
* 1 00000d00 00000100 UNINITIALIZED
00000d00 00000100 DSP28_GlobalVariableDefs.obj (PieVectTable)
这是在MAP中看到的,一个PieVectTableFile 为空,固查找命名PieVectTable 文件,这个文件中(DSP28_GlobalVariableDefs),这样定义的
#pragma DATA_SECTION(PieVectTable,"PieVectTable");
struct PIE_VECT_TABLE PieVectTable;将其改为#pragma DATA_SECTION(PieVectTable,"PieVectTableFile");
struct PIE_VECT_TABLE PieVectTable;文件就解决了。很小的一个错误,却伤害了很多人。看来以后拷贝代码还是得小心。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。