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.

[参考译文] CCS/EK-TM4C1294XL:ROM功能在CCS 7.1 .0.0.0016万 中不起作用

Guru**** 1960875 points
Other Parts Discussed in Thread: EK-TM4C1294XL, TM4C1294NCPDT
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/596616/ccs-ek-tm4c1294xl-rom-functions-not-working-in-ccs-7-1-0-00016

部件号:EK-TM4C1294XL
主题中讨论的其它部件: TM4C1294NCPDT

工具/软件:Code Composer Studio

大家好。  我正在试用EK-TM4C1294XL Connected Launchpad和TM4C1294NCPDT微控制器的不同功能。  我想尝试使用ROM功能,但在Code Composer中构建程序时,会得到以下内容。  为什么不能识别ROM_GPIOPinWrite()函数?

****为项目DDS_Experiment构建配置调试****

“D:\Ti\\ccsv7\\utils\\bin\\gmake”-k -j 8 all -O
'building file:../DDSExperimate.c'
正在调用:ARM编译器
'D:\D:/CCS/ccsv7/tools/compiler/ti-CGT-arm_workspace -workstatusers=8 f_trl_track_workstate-f_ds/track_ds/sp_d_d=12cl_worksp_d_worksp_d=f_f_f_f_d=-d=-fccp-f_f_f_fccp_fccp-f_f_f_f_f_d=7 16.9 -d_d_d=-ds/sp_f_fccp_d=-d_d_fccp_f_f_f_f_f_f_f_f_f_f_-fccp-d=7 2.1 4.178 16.9 display_error_number --abi=eabi --preproc_with _compile --preproc_dependency="DDSExperim.d""../DDSExperim.c"
,第315行:警告#M4-D:函数"CC_GPIOdiag"声明




编译器"已完成构建:16.9 ./DDSExperim./DT-4225'sprole_cl-f_cl-frole_f_-frob.-f_-frob.d=7'-p-from-from_dcs-p-from-from-from_dcs-dcs-p-p-dcs-refl=12g-from-refl=12g_crack-fg-refl=12g-refus-refus-refus-refl_ds_crus-refus-fg_dcs-refl=2'-refus-refus-refl_ds_crus-fg_ds=22_ds=2_refl=2 display_error_number --abi=eabi -z -m"DDS_Experime.map"--heap_size=0--stack_size=512 -i"D":/ti/ccsv7/tools/compiler/ti-cgt-arm_arm_lect.2ls/lib" 16.9 -I:/ti_ccs/crub_ctry><dl_example.ds_link_c_extrab_c.dl_c_extrab_c.dl_c_c.dl_dcs.dl_extrab_extrab_c.dl_c_c.dl_extrab_c.dl_c.cds -dcs.dl_extrab_extrab_extrab_c.dl_c.dl_c_extrabs.dl_c_extrabs.dl_c_c_c.dl_extrabs.cds -c_extrabs.dl_c_extrabs.dl_extrabs.dl_c_c_c_extrabs.dl_c_c_c 16.9 2.1 4.178


首次引用
符号 在文件中
------------------- --------
ROM_GPIOPinWrite ./DDSExperime.obj

错误#1.0234万-D:未解析的符号仍然
存在错误#1.001万:链接时遇到错误;"DDS_Experime.out "未构建

>>编译失败
makefile:143:目标'DS_Experim.out的配方'gmake[1]:
DDS [recure_Experime.out错误1***:139:139:****
为目标'makefile


完成'gmakefilere:*****错误2:完成***** 

我的规范如下:

//包括
#include <stdbool.h>
#include <stdint.h>
#include "inc/tm4c1294ncpdt.h"
#include "inc/HW_sysctl.h"
#include "inc/hw_types.h"
#include "inc/hw_mem_map.h"
#include "verlib/driverl"


#line"包含"orverl/lib"



GPIO_PORTN_BASE

#define LED2 GPIO_PIN_0			//端口N引脚0

//全局常量
const UINT32_t SYS_CLK_REQ = 1.2亿;//请求的时钟频率为

//全局变量
UINT32_t SYS_CLK_ACT = 0; //通过PLL

易失性UINT32_t计数获得的实际时钟频率=0; //存储名为

void SysTickHandler(){

//
//把计时器配置为毫秒计时器。 无符号的32位数字将具有
// 184.46744073亿 ,70.9551万 ,615的最大值。 这将需要将近50天的时间
//(2^365.25))常量,以填充此变量。
//
count++;

}

uINT32_t millis (){

返回计数;

}

void main(){

//
//局部变量
//
uINT32_t led2OnTime = 100,led2ShortOff = 100,led2LongOff = 700;

易失性UINT32_t脉冲= 0;

易失性UINT32_t led3PreviousMillis =0;

volatile led2On =假;
	
//
//使用外部25MHz精密振荡器生成120MHz系统
//使用PLL时钟
//
SysctlMOSCConfigSet(sysctl_MOSC_HIGBHFREQ);
SYS_CLK_ACT = SysCltlClockFreqSet(sysctl_XTAL_25MHz| sysctl_OSC主| sysctl_use_PLL |
sysctl_CFG_VCO_480,SYS_CLK_REQ);

//
//启用外围设备
//					
	SysCtlPeripheralEnable(sysctl_Periph_gpion);
	
//
//配置系统计时器。
//
SysTickPeriodSet(SYS_CLK_ACT /1000);
SysTickIntRegister (SysTickHandler);
SysTickEnable();
SysTickIntEnable();

	//
//配置GPIO类型
//
GPIOPinTypeGPIOOutput (PORTN,LED1 | LED2);

	//
//设置GPIO方向
//
	GPIODIRModeSet (PORTN,LED1 | LED2,GPIO _目录_模式_输出);
	
	//
//配置GPIO键盘属性
//
	GPIOPadConfigSet (PORTN,LED1 | LED2,GPIO强度_4mA,GPIO PIN_TYPE_STD);
	
	While (1){
	
		UINT32_t currentMillis = millis();
	
		///
		更多代码
		//
		
	if (led2On &&(pulse == 1)&&(currentis - led2Millis=) PreviousTime
		

led2On =假;
led2PreviousMillis =当前Millis;
ROM_GPIOPinWrite (PORTN,LED2,0x0);

}

如果(led2On &&(pulse == 2)&&(currentMillis - led2PreviousMillis >= led2OnTime)
		,则选择此选项){

led2On =假;
脉冲= 0;
led2PreviousMillis =当前Millis;
ROM_GPIOPinWrite (PORTN,LED2,0x0);

}

如果(!led2On &&(pulse == 0)&&(currentMillis - led2PreviousMillis >= led2LongOff)
		,则选择此选项

led2On =真;
脉冲= 1;
led2PreviousMillis =当前Millis;
ROM_GPIOPinWrite (PORTN,LED2,LED2);

}

	否则,如果(!led2On &&(pulse ==1)&&(currentMillis - led2PreviousMillis >= led2ShortOff)
		{

led2On =真;
脉搏= 2;
led2PreviousMillis =当前Millis;
ROM_GPIOPinWrite (PORTN,LED2,LED2);

}
		
	}

} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    KnightAngel 说:
    为什么不能识别ROM_GPIOPinWrite()函数?

    我认为您需要在项目的编译器选项中添加“--defe=target_is_TM4C129_RA0”(或等效项,具体取决于您的目标板)。
    您可以参阅rom.h Inside TivaWare以查看ROM函数对其有效的目标定义列表。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,我会接受答案,但后续问题是,如何确定正确的"TARGET_IS_..."参数?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    KnightAngel 说:
    如何确定正确的"target_is_..."参数?

    请参阅以下帖子: http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/56.3334万

    另外, 《TivaWare外设驱动程序库用户指南》(可在TivaWare安装中的/docs目录中找到)的"直接ROM调用"一节介绍了如何使用定义正确调用ROM函数,以供将来参考。  

x 出现错误。请重试或与管理员联系。