dsp编译错误与解决方法(精)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 Q I have started to study the book "Digital Signal Processing and Applications with the C671
3 and C6416 DSK (by Rulph Chassaing, 2005". I am working with a C6713DSK, using CCS 3.1. But when I try to run the first example (sine8_LED in Rulph Chassaing's book on the C6713 Device Cycle Accurate Simulator, I get the following error messages: Trouble running Target CPU: Memory Map Error: READ access by CPU to address 0x1b7c100, which is RESERVED in Hardware. Trouble running Target CPU: Memory Map Error: WRITE access by Default to address 0x1b7c100, which is RESERVED in Hardware.
main.cpp
#include "global.h"
WinMain(....
...
}
file_1.cpp
#include "global.h"
....
file_2.34;
...
由于工程中的每个文件都是独立的解释的即使头文件有
#ifndef _x_h
....
#enfif
dsp--ccs部分错误及解决
1,ERROR multiple sections with name PAGE0
解决PAGE 0中间有个空格隔开。
2 ERROR MEMORY specification ignored
解决书写格式错误
3 ERROR:zero or missing length for memory area SPRAM
can't open file '/.obj' for input是什么原因引起的?
cmd文件中有不合法的符号比如“//”等
1 fatal error: #error NO CHIP DEFINED详细的出错信息:
"...." -g -q -fr"e:/project_documents/dsp_project/dsp_mp3/Debug" -d"_DEBUG" -@"Debug.lkf" ...c"
在其他文件中只要包含了global.h就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。
下面是解决方法
在global.c或.cpp中声明变量然后建一个头文件global.h在所有的变量声明前加上extern ...如extern HANDLE ghEvent;注意这儿不要有变量的初始化语句。然后在其他需要使用全局变量的cpp文件中包含.h文件而不要包含.cpp文件。编译器会为global.cpp生成目标文件然后连接时在使用全局变量的文件中就会连接到此文件。在其他文件中只要包含了global.h就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。
A Generally this type of error means that the CCS sees this section of memory marked as either Read-Only or RESERVED (Don't read or write. CCS can be passed a virtual memory map which is a safety net for the user. If you look inside your DSK's GEL file you will see a number of instruction calls for GEL_MapAdd( with six arguments inside. Two of these arguments denote a starting address range and the length of that range. These are used to notify CCS what memory is valid (and by extension, everything not mentioned is invalid memory. Take a look inside your DSK6713.gel file (probably located in C:\CCStudio_v3.1\cc\gel and find where the GEL_MapAdd( instructions are located. You should see something similar to the following: GEL_MapAdd(0x01b7c000, 0, 0x00000128, 1, 1; // PLL here 0x01b7c000 is the starting address and 0x00000128 is the length of 'valid' memory. Because 0x1b7c100 falls within this range, if your GEL file looks like this CCS should then allow accesses to this register. The GEL file may need to be updated so that the address of the PLLCSR register is included to the CCS Memory Map. I actually just noticed that the title of your post is "C6713 Device Cycle Accurate Simulator" but you mentioned using the DSK. Can you please clarify which you are using? If using the DSK, open the DSK6713.gel file found in C:\CCStudio_v3.1\cc\gel and locate the setup_memory_map( function. Inside this function you should see numerous calls to GEL_MapAdd(. One of these will look similar to the one I copied in my last post. Once you find the function call that starts with the address 0x01b7c000, find out the length of this range (which should be the third argument. If this length does not cover address 0x01b7c100, modify the range to something like 0x00000128 to ensure that all of the PLL registers are included. If you are using the Cycle Accurate
SPRAM: origin=0x0060H,解决书写格式错误
4 W ARNING: entry point other than _c_int00 specified
解决,在“TMS320C6000优化汇编手册”第五章“链接C/C++代
令人生厌的multiple definition of
我把所有的全局变量写在一个global.h里然后其他文件都include了它于是出现了multiple definition of .....编译器gcc后来在网上搜到了很多类似的错误大家各有各的烦心事。我的代码结构
"...", line 141: fatal error: #error NO CHIP DEFINED 1 fatal error detected in the compilation of "...c".
在Build Options的compiler里设置"-d"CHIP_..""如果没有设置一下
3 and C6416 DSK (by Rulph Chassaing, 2005". I am working with a C6713DSK, using CCS 3.1. But when I try to run the first example (sine8_LED in Rulph Chassaing's book on the C6713 Device Cycle Accurate Simulator, I get the following error messages: Trouble running Target CPU: Memory Map Error: READ access by CPU to address 0x1b7c100, which is RESERVED in Hardware. Trouble running Target CPU: Memory Map Error: WRITE access by Default to address 0x1b7c100, which is RESERVED in Hardware.
main.cpp
#include "global.h"
WinMain(....
...
}
file_1.cpp
#include "global.h"
....
file_2.34;
...
由于工程中的每个文件都是独立的解释的即使头文件有
#ifndef _x_h
....
#enfif
dsp--ccs部分错误及解决
1,ERROR multiple sections with name PAGE0
解决PAGE 0中间有个空格隔开。
2 ERROR MEMORY specification ignored
解决书写格式错误
3 ERROR:zero or missing length for memory area SPRAM
can't open file '/.obj' for input是什么原因引起的?
cmd文件中有不合法的符号比如“//”等
1 fatal error: #error NO CHIP DEFINED详细的出错信息:
"...." -g -q -fr"e:/project_documents/dsp_project/dsp_mp3/Debug" -d"_DEBUG" -@"Debug.lkf" ...c"
在其他文件中只要包含了global.h就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。
下面是解决方法
在global.c或.cpp中声明变量然后建一个头文件global.h在所有的变量声明前加上extern ...如extern HANDLE ghEvent;注意这儿不要有变量的初始化语句。然后在其他需要使用全局变量的cpp文件中包含.h文件而不要包含.cpp文件。编译器会为global.cpp生成目标文件然后连接时在使用全局变量的文件中就会连接到此文件。在其他文件中只要包含了global.h就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。
A Generally this type of error means that the CCS sees this section of memory marked as either Read-Only or RESERVED (Don't read or write. CCS can be passed a virtual memory map which is a safety net for the user. If you look inside your DSK's GEL file you will see a number of instruction calls for GEL_MapAdd( with six arguments inside. Two of these arguments denote a starting address range and the length of that range. These are used to notify CCS what memory is valid (and by extension, everything not mentioned is invalid memory. Take a look inside your DSK6713.gel file (probably located in C:\CCStudio_v3.1\cc\gel and find where the GEL_MapAdd( instructions are located. You should see something similar to the following: GEL_MapAdd(0x01b7c000, 0, 0x00000128, 1, 1; // PLL here 0x01b7c000 is the starting address and 0x00000128 is the length of 'valid' memory. Because 0x1b7c100 falls within this range, if your GEL file looks like this CCS should then allow accesses to this register. The GEL file may need to be updated so that the address of the PLLCSR register is included to the CCS Memory Map. I actually just noticed that the title of your post is "C6713 Device Cycle Accurate Simulator" but you mentioned using the DSK. Can you please clarify which you are using? If using the DSK, open the DSK6713.gel file found in C:\CCStudio_v3.1\cc\gel and locate the setup_memory_map( function. Inside this function you should see numerous calls to GEL_MapAdd(. One of these will look similar to the one I copied in my last post. Once you find the function call that starts with the address 0x01b7c000, find out the length of this range (which should be the third argument. If this length does not cover address 0x01b7c100, modify the range to something like 0x00000128 to ensure that all of the PLL registers are included. If you are using the Cycle Accurate
SPRAM: origin=0x0060H,解决书写格式错误
4 W ARNING: entry point other than _c_int00 specified
解决,在“TMS320C6000优化汇编手册”第五章“链接C/C++代
令人生厌的multiple definition of
我把所有的全局变量写在一个global.h里然后其他文件都include了它于是出现了multiple definition of .....编译器gcc后来在网上搜到了很多类似的错误大家各有各的烦心事。我的代码结构
"...", line 141: fatal error: #error NO CHIP DEFINED 1 fatal error detected in the compilation of "...c".
在Build Options的compiler里设置"-d"CHIP_..""如果没有设置一下