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.

[参考译文] 编译器/MSP432E401Y:使用 SysConfig 添加 SPI 时未定义符号

Guru**** 2561860 points
Other Parts Discussed in Thread: SYSCONFIG, MSP432E401Y

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/896913/compiler-msp432e401y-undefinded-symbols-when-adding-spi-using-sysconfig

器件型号:MSP432E401Y
Thread 中讨论的其他器件: SysConfig

工具/软件:TI C/C++编译器

我正在尝试从 Resource Explorer 中扩展 MSP432E401Y 的 lwIP 示例 、以使用 SysConfig 包含 SPI 外设。  构建过程失败、符号未解析。


****为项目 Ethernet_wi_lwip_MSP_EXP432E401Y_nortos_CCS 构建调试****

"C:\\ti\\ccs1000\\ccs\\utils\bin\\gmake"-k -j 16 all -O

编译文件:"../msp432functions.c"
调用:ARM 编译器
"c:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/bin/armcl -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/Users/pbaltz/Documents/CCS_workspace_v10/ethernet_with_lwip_MSP_EXP432E401Y_nortos_ccs /ti/simplelink_msp432e4_sdk_4_10_00_13/source/third_party/lwip/ports/msp432e4/include/utils /ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/net/bsd --include_path="C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source /ti/simplelink_msp432e4_sdk_4_10_00_13/source/third_party/lwip/src/include /ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/include --include_path="c:code_support="C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/third_party/lwip/ports/msp432e4/include /ti/simplelink_msp432e4_sdk_4_10_00_13/source/third_party/CMSIS/Include /Users/pbaltz/Documents/CCS_workspace_v10/ethernet_with_lwip_MSP_EXP432E401Y_nortos_ccs/Debug/syscfg --include_display_code.combon_code.combe.com/support/msp4buld_code.combrom_code.c:cn=c_code_display_code.combrom_code.c:cn_code.combrom_code.c:
"./msp432functions.c"、第52行:警告#225-D:隐式声明函数"PinoutSet"
已完成构建:"./msp432functions.c"

构建目标:"Ethnet_wip_MSP_EXP432E401Y_nortos_ccs.out"
调用:ARM 链接器
"c:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/bin/armcl -mv7M4 -code_state=16 --float_support=FPv4SPD16 -me --advice:power=none --define=DeviceFamily_MSP432E4 --define=__MSP432E40diag__-g ---diag_warning=225 --exclus_ip_exclus_ap_ipe_display_subsections="-net_net_net_net_port_display_net_off-outsections="_line_display_net_net_net_line_display_net_port_port_subsections="p_net_net_port_off-out_line_display_net_net_display_net_port_subsections=cms=cms="-out_net_port_port_display_port_off-out_display_net_display_port_net_port_port_subs=cms=net_port_off-out_display_port_port_port_display_port_port_port_subs=cms=cm_/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/lib /ti/simplelink_msp432e4_sdk_4_10_00_13/source /ccs/startup_msp432e401y_ccs.obj "./syscfg/ti_drivers_config.obj "./lwip/ports/msp432e4/netif/msp432e4if.obj "./lwip/ports/msp432e4/perf.obj "./lwip/ports/msp432e4/utils/lwiplib.obj "./lwip/ports/msp432e4/utils/locator.obj "./lwip/src/api/api_msg.obj "./lwip/src/api/netdb.obj "./lwip/src/api/tcpip.obj "./lwip/src/apps/mdns/mdns.obj "./lwip/src/apps/snmp/snmp_asn1.obj "./lwip/src/apps/snmp/snmp_mib2_icmp.obj "./lwip/ports/msp432e4/sys_arch.obj "./lwip/src/apps/snmp/snmp_mib2_snmp.obj "./lwip/src/apps/snmp/snmp_mib2_udp.obj ".ee.tido"./lwip/ports/msp432e4/utils/swupdate.obj "./lwip/src/api/err.obj "./lwip/src/api/api_lib.obj /lwip/src/api/netbuf.obj /lwip/src/api/sockets.obj /lwip/src/apps/lwiperf/lwiperf.obj /lwip/src/apps/netbiosns/netbiosns.obj /lwip/src/apps/snmp/snmp_mib2.obj /lwip/src/apps/snmp/snmp_mib2_ip.obj /lwip/src/apps/snmp/snmp_mib2_tcp.obj /lwip/src/apps/snmp/snmp_netconn.obj /lwip/src/apps/snmp/snmp_scalar.obj "./lwip/src/apps/snmp/snmp_pbuf_stream.obj "./lwip/src/apps/snmp/snmp_table.obj ".eout.ob"./pinout.fs.obj "./fs./fs./lwip/src/api/netifapi.obj "./lwip/src/apps/httpd/httpd.obj /lwip/src/apps/mqtt/mqtt.obj /lwip/src/apps/snmp/snmp_core.obj /lwip/src/apps/snmp/snmp_mib2_interfaces.obj /lwip/src/apps/snmp/snmp_mib2_system.obj /lwip/src/apps/snmp/snmp_msg.obj /lwip/src/apps/snmp/snmp_raw.obj /lwip/src/apps/snmp/snmpv3.obj /lwip/src/apps/snmp/snmp_traps.obj /lwip/src/apps/snmp/snmp_threadsync.obj "./lwip/src/apps/snmp/snmpv3_dummy.obj "./lwip/src/apps/snmp/snmpv3_mbedtls.obj "./lwip/src/apps/sntp/sntp.obj "./lwip/src/apps/tftp/tftp_server.obj "./lwip/src/core/raw.obj "./lwip/src/core/def.obj "./lwip/src/core/dns.obj "./lwip/src/core/pbuf.obj "./lwip/src/core/inet_chksum.obj "./lwip/src/core/init.obj "./lwip/src/core/ip.obj "./lwip/src/core/mem.obj /lwip/src/core/sys.obj /lwip/src/core/tcp_out.obj /lwip/src/core/ipv4/autoip.obj /lwip/src/core/ipv4/icmp.obj /lwip/src/core/ipv4/ip4_addr.obj /lwip/src/core/ipv6/ethip6.obj /lwip/src/core/ipv6/ip6.obj /lwip/src/core/ipv6/mld6.obj /lwip/src/netif/ethernetif.obj /lwip/src/netif/ppp/auth.obj /lwip/src/netif/ppp/chap-new.obj /lwip/src/netif/ppp/eap.obj "./lwip/src/core/memp.obj "./lwip/src/core/tcp.obj "./lwip/src/core/netif.obj "./lwip/src/core/timeouts.obj "./lwip/src/core/stats.obj "./lwip/src/core/tcp_in.obj "./lwip/src/core/udp.obj "./lwip/src/core/ipv4/etharp.obj "./lwip/src/core/ipv4/dhcp.obj "./lwip/src/core/ipv4/igmp.obj /lwip/src/core/ipv4/ip4_frag.obj /lwip/src/core/ipv6/icmp6.obj /lwip/src/core/ipv6/ip6_addr.obj /lwip/src/core/ipv6/nd6.obj /lwip/src/netif/lowpan6.obj /lwip/src/netif/ppp/ccp.obj /lwip/src/netif/ppp/chap_ms.obj /lwip/src/netif/ppp/ecp.obj "./lwip/src/core/ipv4/ip4.obj "./lwip/src/core/ipv6/dhcp6.obj "./lwip/src/core/ipv6/inet6.obj /lwip/src/core/ipv6/ip6_frag.obj /lwip/src/netif/ethernet.obj /lwip/src/netif/slipif.obj /lwip/src/netif/ppp/chap-md5.obj /lwip/src/netif/ppp/demand.obj "./lwip/src/netif/ppp/eui64.obj "./lwip/src/netif/ppp/fsm.obj "./lwip/src/netif/ppp/ipcp.obj "./lwip/src/netif/ppp/ipv6cp.obj "./lwip/src/netif/ppp/lcp.obj "./lwip/src/netif/ppp/magic.obj "./lwip/src/netif/ppp/mppe.obj "./lwip/src/netif/ppp/multilink.obj "./lwip/src/netif/ppp/ppp.obj "./lwip/src/netif/ppp/pppapi.obj "./lwip/src/netif/ppp/pppcrypt.obj "./lwip/src/netif/ppp/pppoe.obj "./lwip/src/netif/ppp/pppol2tp.obj /lwip/src/netif/ppp/upap.obj /lwip/src/netif/ppp/polarssl/arc4.obj /lwip/src/netif/ppp/polarssl/md5.obj "./lwip/src/netif/ppp/pppos.obj "./lwip/src/netif/ppp/utils.obj "./lwip/src/netif/ppp/vj.obj "./lwip/src/netif/ppp/polarssl/des.obj /lwip/src/netif/ppp/polarssl/sha1.obj "./lwip/src/netif/ppp/polarssl/md4.obj "./ti/simplelink_msp432e4_sdk_4_10_00_13/source/third_party/fatfs/lib/ccs/m4f/fatfs.a ".drifs/msp4lib.dl/difs/msp4lib.dl/mftids/msp4"/content/tex/dl/dl.dl/dcs.dl/dsp4"/msp/dl.dl/dsp4fs/msp/dl.dl.dl/dsp/dl.dl.dl./dsp4fs/msp/dl/dl.dl/dcs/dl.dl.dl./dsp4fs/mfs/msp/dl.dl.dl.dl.dl./dsp/dl.dl./dsp/dl./dl./dl./dl./dl./dcs/dl./dl./dsp4fs/mfs/mfs/mfs/tids/tids/tids/tids/tids/tids/msp4/


未定义的首次引用
符号
------ --------
ClockP_getCpuFreq C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
Hwip_Params_init C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
Hwip_clearInterrupt C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
Hwip_create C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
Hwip_delete C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
Hwip_disable C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
Hwip_disableInterrupt C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
Hwip_enableInterrupt C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
Hwip_restore C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
SemaphoreP_createBinary C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/drivers/lib/drivers_msp432e4.aem4f
SemaphoreP_delete C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/third_party/fatfs/lib/ccs/m4f/fatfs.a
SemaphoreP_PEND C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/third_party/fatfs/lib/ccs/m4f/fatfs.a
SemaphoreP_POST C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/third_party/fatfs/lib/ccs/m4f/fatfs.a

错误#10234-D:未解析的符号仍然存在
错误#10010:链接期间遇到错误;未构建"Ethe_wip_MSP_EXP432E401Y_nortos_ccs.out"

>>编译失败
Makefile:304:目标'ethernet_wip_MSP_EXP432E401Y_nortos_ccs.out'的配方失败
gmake[1]:***[ethernet_wip_MSP_EXP432E401Y_nortos_ccs.out]错误1.
Makefile:300:目标'all'的配方失败
gmake:***[全部]错误2.

****构建完成****

以下是相关的源代码:

/*
msp432functions.c
*
**创建日期
:* 作者:
*/

#include "common.h"
#include 
#include 
#include 
#include 

/* Project Global Variables *//*

文件 Global Variables *//


********
//

int init_uart (uint32_t g_ui32SysClock){

UARTStdioConfig (0、115200、g_ui32SysClock);
退货(0);
}


//*********
//

int init_spi(){
SPI_Params Parspiams;

/*调用驱动程序初始化函数。 *
spi_init();

/*将 SPI 作为主器件打开*/
SPI_Params_init (&spiParams);
spiParams.transferMode = SPI_MODE_BLOCKING;
spiParams.mode = SPI_MASTER;
spiParams.dataSize = 8;
spiParams.frameFormat = SPI_POL0_PHA0;
spiParams.bitrate = 2048000;
adcSpi = SPI_open (CONFIG_SPI_MASTER、&spiParams);
if (adcSpi == NULL){
返回(-1);
}
否则{
返回(0);
}
} 

我已经包括了 ClockP、Hwip 和 SemaphoreP 的头文件。   为什么我遇到未解析的符号错误?

-Phil

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

    我找到了实现具有未解析符号的函数的源文件。  它们都存在于 C:\ti\simplelink_msp432e4_sdk_4_10_00_13\kernel\nortos\DPL 中。 例如 、ClockP_getCpuFreq 原型存在于 C:\ti\simplelink_msp432e4_sdk_4_10_00_13\source\ti\drivers\DPL\ClockP.h 中、该函数在 C:\ti\simplelink_msp432e4_sdk_4_10_00_13\tos\nortos\tos\tos\tos\blu.kernelink_c\netos\blu.dl\blu.kerneltos\dl\blu\tos\blu.nortos

    我在 Compler 和 Linker 构建选项中都包含了这两个路径、但仍会获取未重新发送的符号。  问题是什么?

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

    我通过将 nortos_msp432e4.aem4f 库添加到工程链接器的 Include 路径来解决了这个问题。