TI中文支持网
TI专业的中文技术问题咨询交流网站

F28335程序CCS工程编译问题

C2000阅读(40)

使用CCS3.3编译工程没有报错,但是使用CCS6.0编译后报错

#10234-D</a> unresolved symbols remain zhaolaoshi C/C++ Problem

Description Resource Path Location Type
unresolved symbol _Filter1_Init, first referenced in ./SCIC_MODBUS_20150421/SRC/Servo_AIAO.obj zhaolaoshi C/C++ Problem

Description Resource Path Location Type
unresolved symbol _Filter1, first referenced in ./SCIC_MODBUS_20150421/SRC/Servo_AIAO.obj zhaolaoshi C/C++ Problem

Description Resource Path Location Type
unresolved symbol _FunCodeUnion, first referenced in ./SCIC_MODBUS_20150421/SRC/Servo_AIAO.obj zhaolaoshi C/C++ Problem1

等等一共18个first referenced

请问是哪里出了问题?CCS6.0中新建工程或者直接导入都会有这个问题困扰很久解决不了

Susan Yang:

看起来是路径包含的问题,_Filter1_Init 等是在您自己的工程内的吗?是否包含在CCS6工程内的路径包含下?

若是可以的话,请您私信给我您的工程,我用CCS6来测试一下

若是不方便的话,请您给出console内的完整信息,谢谢

user6223461:

回复 Susan Yang:

谢谢您,给您私信发了程序,麻烦了!

用CCS7.2.0生成的代码,用CCS10编译不通过,是编译器版本不对应吗

C2000阅读(24)

用CCS7.2.0生成的代码,用CCS10编译不通过,是编译器版本不对应吗,应该如何选择编译器版本

Description Resource Path Location Type
gmake: Target 'all' not remade because of errors. PCS_INV C/C++ Problem

Susan Yang:

请问您现在还是之前工程遇到的问题?

e2echina.ti.com/…/188139

还是两个CCS版本内都是使用的 TI v 18.1.5版本的吗?

请给出您console 内的完整错误信息

user5106916:

回复 Susan Yang:

是之前的工程,然后新下载了CCS10,就编译不通过,CCS10用的编译器是TI v 20.2.0 ,之前的工程原有的编译器是TI v 6.4.12,是编译器版本的问题吗

user5106916:

回复 Susan Yang:

**** Clean-only build of configuration Debug_Flash for project PCS_INV ****

"C:\\ti\\ccs1000\\ccs\\utils\\bin\\gmake" -k clean
DEL /F"PCS_INV.hex""PCS_INV.out"
DEL /F "PCS_INV.obj" "CLA\cla_Inverter.obj" "CLA\initial_CLA.obj"
DEL /F "CLA\initial_CLA.d"
DEL /F "PCS_INV.d"
DEL /F "CLA\cla_Inverter.d"
找不到 F:\30K_biaozhun\GUANGCHU\P1110V320D07_NEW_D01\Debug_Flash\PCS_INV.hex
找不到 F:\30K_biaozhun\GUANGCHU\P1110V320D07_NEW_D01\Debug_Flash\PCS_INV.obj
Finished clean

**** Build Finished ****

**** Build of configuration Debug_Flash for project PCS_INV ****

"C:\\ti\\ccs1000\\ccs\\utils\\bin\\gmake" -k all
Building file: "../PCS_INV.cpp"
Invoking: C2000 Compiler
"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/cl2000" -v28 -ml -mt –cla_support=cla1 –float_support=fpu32 –tmu_support=tmu0 -O4 –opt_for_speed=5 –fp_mode=strict –fp_reassoc=on –include_path="C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/Driver" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/App" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/CLA" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/Driver/F2807x_common/include/FlashAPI" –advice:performance=all –define=CPU1 –define=_FLASH -g –diag_warning=225 –diag_wrap=off –display_error_number –abi=coffabi –preproc_with_compile –preproc_dependency="PCS_INV.d_raw""../PCS_INV.cpp"
>> Compilation failure
subdir_rules.mk:9: recipe for target 'PCS_INV.obj' failed
"..\Driver\Drv_Flash.cpp", line 87: warning #179-D: variable "CSM" was declared but never referenced
"..\App\Classes\Obj_MonInterface.cpp", line 1229: warning #112-D: statement is unreachable
"..\App\Classes\Obj_MonInterface.cpp", line 1193: warning #552-D: variable "FlashWrtFlag" was set but never used
"..\App\Classes\Obj_FlashUpdate.cpp", line 1473: warning #552-D: variable "u16_DestID" was set but never used
"..\App\Classes\Obj_FlashUpdate.cpp", line 1473: warning #552-D: variable "u16SourceID" was set but never used
"..\App\Main.cpp", line 24: warning #1119-D: this assembly directive potentially unsafe inside a function
INTERNAL ERROR: C:\ti\ccs1000\ccs\tools\compiler\ti-cgt-c2000_20.2.0.LTS\bin\ac2000.exe experienced a segmentation faultwhile processing function (unknown or file scope) file (unknown) line 0
This is caused by a defect in the TI C/C++ Parser.
TI Customer Support may be able to suggest a workaround to avoid this.
Upgrading to the newest version of the compiler may fix this problem.
Contact TI in the E2E support forums at http://e2e.ti.com under
"Development Tools", "TI C/C++ Compiler".See the link titled
"Submitting an issue".
We need to see this ENTIRE error message and a complete, reproducible
test case including ALL of the command-line options.
Include the .pp file created by option –preproc_with_comment
gmake: *** [PCS_INV.obj] Error 1
Building file: "../CLA/cla_Inverter.cla"
Invoking: C2000 Compiler
"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/cl2000" -v28 -ml -mt –cla_support=cla1 –float_support=fpu32 –tmu_support=tmu0 -O4 –opt_for_speed=5 –fp_mode=strict –fp_reassoc=on –include_path="C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/Driver" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/App" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/CLA" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/Driver/F2807x_common/include/FlashAPI" –advice:performance=all –define=CPU1 –define=_FLASH -g –diag_warning=225 –diag_wrap=off –display_error_number –abi=coffabi –preproc_with_compile –preproc_dependency="CLA/cla_Inverter.d_raw" –obj_directory="CLA""../CLA/cla_Inverter.cla"
"../CLA/cla_Inverter.cla", line 464: warning #30013-D: Comparison operation uses integer comparison instruction, which does not operate properly for values that would overflow subtraction.Use –cla_signed_compare_workaround=on to have the compiler work around this issue.
"F:\30K_biaozhun\GUANGCHU\P1110V320D07_NEW_D01\Driver\F2807x_common\include\F2807x_cputimervars.h", line 36: warning #233-D: declaration is not visible outside of function
Finished building: "../CLA/cla_Inverter.cla"
Building file: "../CLA/initial_CLA.c"
Invoking: C2000 Compiler
"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/cl2000" -v28 -ml -mt –cla_support=cla1 –float_support=fpu32 –tmu_support=tmu0 -O4 –opt_for_speed=5 –fp_mode=strict –fp_reassoc=on –include_path="C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/Driver" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/App" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/CLA" –include_path="F:/30K_biaozhun/GUANGCHU/P1110V320D07_NEW_D01/Driver/F2807x_common/include/FlashAPI" –advice:performance=all –define=CPU1 –define=_FLASH -g –diag_warning=225 –diag_wrap=off –display_error_number –abi=coffabi –preproc_with_compile –preproc_dependency="CLA/initial_CLA.d_raw" –obj_directory="CLA""../CLA/initial_CLA.c"
Finished building: "../CLA/initial_CLA.c"
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

user5106916:

回复 Susan Yang:

就是我在CCS里面下载新的编译器一直报这个错误,该怎么解决

Susan Yang:

回复 user5106916:

请问是否有采用上面给出的解决方法?

解决方法是通过将选项–advice:performance更改为–advice:performance = none来禁用性能建议

您现在是想采用更新的版本的编译器?

“就是我在CCS里面下载新的编译器一直报这个错误,该怎么解决”

这里的CCS版本是CCS10还是CCS7.2? 您现在是想主要使用哪个CCS版本?

我对您的描述有些疑惑了

关于28379D与三相逆变板BOOSTXL-3PHGANINV的技术问题!

C2000阅读(30)

我在28379D已经编入SVPWM算法,并且PWM4~6 能输出三对互补 PWM波, 但与三相逆变版BOOSTXL-3PHGANINV连接后,直流输入15V,但在三相输出VA、VB、VC得不到任何波形(用万用表测VA、VB、VC对地电压有二点几伏)。想问问可能是什么原因?

Green Deng:

你好,这款套件官方有提供一份使用说明,不知道你是否有按照GUI上的步骤操作?
www.ti.com.cn/…/sluubp1a.pdf

user6104966:

回复 Green Deng:

感谢您的回答。您发这个使用说明我大概看过。它是需要在CCS中导入BOOSTXL-3PHGANINV项目,然后进行配置才能使用吗?还有一点,使用说明里,导入的是基于F28069的BOOSTXL-3PHGANINV例程,而我使用的是28379D。我之前在测试时只是在283789D中烧入程序,提供给BOOSTXL-3PHGANINV板PWM波,然后按照使用说明里的方式正确连接通电了,但是没有进行过使用说明(下图)里的这些步骤。刚入手,还是有点不太清楚,期望您的解答,感谢。

TMDSHVMTRPFCKIT 最大允许工作电流

C2000阅读(26)

功率器件的最大允许工作电流多大?

电流传感器最大测量电流多大?

感谢

Susan Yang:

对于逆变器,最大负载为1.5kW。对于PFC,最大额定功率为750W。电流取决于提供给该级的电压。

您可以在Motorware的安装文件夹内找到更多文档:C:\ ti \ motorware \ motorware_1_01_00_18 \ docs \ boards \ drive \ hvkit_rev1p1 \ docs

user6346257:

回复 Susan Yang:

那如果电压有效值仅为7.5V,那工作电流的有效值可以达到750/3/7.5=33.3A吗?应该不可以吧,功率器件也应该有最大允许工作电流吧?

28035芯片关于delay_us()函数复制到RAM后,使用COMPA控制PWM占空比失效的问题

C2000阅读(24)

由于使用了F28035_CLA_C.CMD,发现在InitAdc()函数总是的跳至ILLEGAL_ISR,经试验后也发现DELAY_US(ADC_usDELAY);的问题。于是在我的程序中按照 此链接 https://e2echina.ti.com/question_answer/microcontrollers/c2000/f/56/t/19710 中提示:

1.首先在DSP2803x_Examples.h文件中开始部分加入以下一条语句

#pragma CODE_SECTION(DSP28x_usDelay, "ramfuncs");

2.然后再main里面再加以下语句

memcpy((uint16_t *)&RamfuncsRunStart,(uint16_t *)&RamfuncsLoadStart, (unsigned long)&RamfuncsLoadSize);

InitFlash();

最终不再进入ILLEGAL_ISR中。但是新的问题是,我的COMPA无法再控制PWM占空比,其输出始终是一个很小占空比。我的EPWM1配置如下:

EPWM1配置如上。希望Ti的工程师能够帮助我解决这个问题,非常感谢

user5997033:

这是main函数中的配置

28069m+drv8305组合,电机正反转的周期问题

C2000阅读(27)

lab5b工程里面,已经用程序写好正反转,但是正转几秒或者反转几秒,我不知道怎么算?请求帮助!!!!

if(i>500)

{ speed=5000;}

if(i>1000)

{speed=-5000;}

Green Deng:

你好,使用Lab工程控制电机正反转,只需要给电机一个相应的正反转速度参考就可以了,也就是程序中gMotorVars.SpeedRef_krpm的值。我看附上 的程序应该就是实现这个功能。那么我们只要在运行过程中,设置一个计时器周期,每次计时完成之后给予gMotorVars.SpeedRef_krpm一个对应的正反转转速值就可以了

motorware 工程使用问题

C2000阅读(22)

选用DRV8301_69M套件,用lab3a工程,填入自己的参数,可以控制转速,不过,我想知道,电流随着转速升高而加大,是不是到一定程度电流就不再加大了?

我的情况是:转速1K时候0.8A;2K时候1.6,加大到4K,电流3.4A,再加大转速,电流没啥变化。我的电机(压缩机)是空载。

不过据同事说,在有负载情况下,电流也到不能加大了。这导致负载有点带不动啊。我们成型的产品,到4K转速时候电流能到7A左右。我读取程序中的转速值,的确是4000转到了。请问这是软件问题还是硬件问题呢?是不是我选的工程不太合适?

Green Deng:

你好,我问一下,你使用的电机,它的额定电流是多少A?额定转速是4000rpm吗?

28379Ddemo板原理图

C2000阅读(25)

能给发一下TMS320F28379Ddemo板的原理图吗,

Susan Yang:

回复 user6335106:

很高兴能帮到您

user6335106:

回复 Susan Yang:

28379D芯片的仿真器有四个信号,
TCK——测试时钟输入; 
TDI——测试数据输入,数据通过TDI输入JTAG口; 
TDO——测试数据输出,数据通过TDO从JTAG口输出; 
TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。 
在硬件上仿真器的座子这四个信号需要接上拉或下拉吗?我看你们demo板上都没接。

Susan Yang:

回复 user6335106:

关于14pin JTAG的连接,请参考

的 5.9.5 Emulation/JTAG

28027无法重启

C2000阅读(20)

28027连接CCS6.0,烧写程序(TI官网给出的PWM程序或者其他程序),在CCS上CPU reset,之后报错,No source available for "0x3ff5f5",之后点击run,但是已经无法运行(Run 按钮颜色不会变灰色,不会变化);对开发板断电之后上电,程序也无法运行起来(观测流水灯例程或者PWM例程)。确定程序烧写进去了,有擦除和写入的窗口弹出。

Susan Yang:

为何要 在CCS上CPU reset ?

那您需要在CPU reset 之后,使用CCS内的 Run–>load program 来重新加载out文件

请问F28379D怎么实现双核对某一段程序加速

C2000阅读(15)

我用是的是F28379D。情况是我在运行主程序的时候,比如官方的IDDK例程,到某一段需要按顺序计算多个矢量的作用时间,这时候我想用双核(或者加上双核的CLA一共4个核)来并行计算,从而提高计算效率。请问我应该怎么实现呢?官方的双核例程都是两个工程做不同的事情,比如CPU1给CPU2提供时钟复位。我能否在某一个主工程中需要CPU2的时候调用CPU2,不需要的时候接着运行主工程呢?

Green Deng:

你好,我觉得你的情况应该更适合使用CLA核进行计算方面的task,CLA本身就是为了浮点运算而设计的,CPU可以通过中断或者软件触发的方式调用CLA进行各种浮点计算任务。计算速度更快的同时,CLA是独立于CPU的一个处理器,不会占用CPU资源。详细的可以参考芯片TRM的Chapter 6. Control Law Accelerator (CLA)部分内容以及TI提供的CLA例程: C:\ti\c2000\C2000Ware_3_01_00_00\device_support\f2837xd\examples\cpu1

Yipeng Tang:

回复 Green Deng:

谢谢你的回复!对于你所说的CLA核进行计算方面的task我是了解的,并且CPU1与CPU1CLA1我都会用。我的问题是能不能在这个基础上,将CPU2与CPU2CLA1也添加进来一起进行并行运算呢?如果可以那么请问我具体应该怎么操作,是额外建立一个工程,还是说我在原来的主工程上就可以使能CPU2和CPU2CLA1来进行工作呢?

Green Deng:

回复 Yipeng Tang:

如果要在同一个工程中使用双CPU的话是需要各自建立一个工程的,并在CPU1的工程中调用CPU2来进行处理。
但如果是在CPU1/2中调用各自核的CLA的话不需要额外建立工程,只需要在CPU1/2的主工程中调用CLA就可以了。
双核CLA的例程官方也有提供,如:C:\ti\c2000\C2000Ware_3_01_00_00\device_support\f2837xd\examples\dual\cla_asin
不知道我回答的是否get到你的点?

Yipeng Tang:

回复 Green Deng:

  我明白你的意思了,要使用到CPU2 就必须新建立一个工程,然后在CPU1工程中通过IPC控制启动CPU2来进行协同工作对吧。我可以这样理解吗请问:如果我想在官方的开发套件工程(比如C:\control_suite\controlSUITE\development_kits\TMDSIDDK_v2.0\IDDK_PM_Servo_F2837x_v2_00_00_00)的基础上在某一段用到CPU2做并行计算,我得新建一个CPU2的工程然后自己实现这个功能是吗? 

 其实我最想知道的是官方是否有这样的例程或者案例可以提供参考,我在controlsuite和C200Ware里面都没有找到类似的例子。

Yipeng Tang:

回复 Green Deng:

我明白了,谢谢你的解答!