最近学习2812,遇到很多问题,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操作。
请指教
Jones Chen:
1. 为什么不使用TI的历程呢? 找一个历程,稍加程序修改,就可以了。
2. 针对你的问题:
Memory中的PieVectTable 改成 PieVectTableFile。
3.Global VariableDef.c 不要动。
特别是下面这句话:
#ifdef __cplusplus
#pragma DATA_SECTION("PieVectTableFile")
#else
#pragma DATA_SECTION(PieVectTable,"PieVectTableFile");
#endif
struct PIE_VECT_TABLE PieVectTable;