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.
工具/软件: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函数对其有效的目标定义列表。
KnightAngel 说:如何确定正确的"target_is_..."参数?
请参阅以下帖子: http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/56.3334万
另外, 《TivaWare外设驱动程序库用户指南》(可在TivaWare安装中的/docs目录中找到)的"直接ROM调用"一节介绍了如何使用定义正确调用ROM函数,以供将来参考。