历史上的今天
返回首页

历史上的今天

今天是:2025年01月15日(星期三)

正在发生

2020年01月15日 | STM32 keil4 extern问题

2020-01-15 来源:eefocus

最近一个项目,在stm32 keil中移植了别人的一些库文件,编译时出现如下错误提示 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol FLAG_comerr (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol adcval (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol nzval (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol receBuf (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol regstartaddr (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol slaveraddr (referred from master.o). 


原因是extern的使用问题,对于移植来说这毫无疑问。记得以前C51时想用extern 声明变量以便在其他的文件调用,但都出现了这个问题,以前不懂,只能将一大片代码直接在Main.c中实现。好吧,闲话休提。查了一些资料extern仅仅是声明变量,不同定义,编译器不会分配内存给它。也就是说要使用它除了在相应的头文件声明为extern,还要在具体用到的.c文件中定义它比如头文件中声明extern u8 c;在用到的文件中:u8 c;。

推荐阅读

史海拾趣

Belden Wire & Cable公司的发展小趣事

在20世纪中期,随着电子技术的快速发展,电线电缆行业也面临着巨大的变革。Belden公司紧跟时代步伐,积极投入研发,推出了一系列具有创新性和前瞻性的产品。这些产品不仅满足了市场对高性能电线电缆的需求,还为公司赢得了众多行业奖项和荣誉。同时,Belden还建立了严格的质量控制体系,确保每一根电线电缆都符合最高的质量标准。

Bombardier Inc公司的发展小趣事

随着全球航空市场的不断变化,庞巴迪公司在商用航空领域也取得了显著成就。其生产的CRJ系列区域喷气客机和Q系列涡桨飞机在全球范围内广受欢迎。这些飞机配备了先进的电子设备和系统,提供了更高的安全性和舒适性。庞巴迪还推出了C系列单通道中距客机,该机型以其环保、经济和人性化的设计赢得了市场的广泛认可。

BAND-IT公司的发展小趣事

在电子行业的推动下,大型基础设施的建设也迎来了快速发展。韦拉札诺海峡大桥作为连接斯塔顿岛和布鲁克林的世界上最长的吊桥,其建设过程对紧固件的需求量大且要求严格。BAND-IT公司凭借其大型不锈钢卡箍产品,成功参与了这一重大工程的建设。这些卡箍不仅具有强大的承重能力,而且安装简便、安全可靠,为大桥的稳定性和安全性提供了有力保障。

Crocus公司的发展小趣事

Crocus公司成立于XXXX年,是一家专注于先进隧道磁阻(TMR)传感器技术的研发与生产的企业。创立初期,公司面临着资金紧张、技术壁垒等重重困难。然而,凭借创始团队对TMR技术的深刻理解和坚定信念,Crocus逐渐在行业中崭露头角。他们不断投入研发,优化产品性能,为后续的快速发展奠定了坚实的基础。

Frequency Devices公司的发展小趣事

为了保证产品质量,Frequency Devices公司建立了完善的质量管理体系。公司引入了先进的生产设备和检测技术,对原材料采购、生产加工、成品检验等各个环节进行严格把控。同时,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。这些措施有效保障了产品的质量和稳定性,赢得了客户的信赖和好评。

联捷(Elinker)公司的发展小趣事

近年来,随着人工智能和物联网技术的快速发展,电子行业迎来了转型升级的机遇。联捷(Elinker)紧跟时代潮流,积极推进智能制造和数字化转型。公司引进了先进的自动化生产线和智能化设备,提高了生产效率和产品质量。同时,公司还加大了对人工智能和物联网技术的研发力度,推出了一系列具有创新性的智能电子产品。

问答坊 | AI 解惑

高精密运放资料 运用

本帖最后由 paulhyde 于 2014-9-15 03:46 编辑 主要用于微弱小信号放大,尤其是做传感器的微弱信号,AD620与OP07配合,AD620可做前级放大,OP07可做二级放大  …

查看全部问答>

RFIC 设计挑战及设计流程分析

近年来,移动通信的市场需求增长迅速,当前的移动通信系统已经可以使用成熟的信号处理技术来获取更高的信息传输速率。下一代无线系统的设计难度将增大,主要体现在对多标准和可重配置性的支持。不同的通信标准在中心频率、信号带宽、信噪比和线性度 ...…

查看全部问答>

怎么判断串口接受寄存器目前正有数据,使发送端延迟发送数据,从而实现简单的流量控制?

小弟我现在有一练习,就是在dos平台下,用C语言来实现简单的串口流量控制.    有一个问题是:怎么判断串口接受寄存器目前正有数据,使发送端延迟发送数据,从而实现简单的流量控制?我个人看了串口的几个寄存器都没有这个状态信息的.请各位高 ...…

查看全部问答>

AND元件作用是什么?

一个电路用这个元件,不知什么作用,资料也搜不到,有用过的吗? 请教了!…

查看全部问答>

8位控制器数据集成到32位APB总线上怎么处理比较合理?

请教各位大侠,我现在想集成一个8位的CAN控制器在APB总线上 CAN控制器的输入输出数据都是8位的,而APB总线的输入输出数据都是32位的。。。 那把这个控制器集成在APB总线上的时候怎么处理比较合理? 高24位补零,好像太浪费了。。。CAN的波特率比 ...…

查看全部问答>

DIY自制太阳能夜晚应急灯

电路很简朴不复杂 电路很简单 …

查看全部问答>

谁有AVR自带的函数库?

谁有AVR自带的函数库,请问怎样用啊···········急······…

查看全部问答>

电压转换:不会比这更简单了

作者:Chris Cockrill  德州仪器如今,现代设计公司不仅正在努力寻找功耗更低的更小型器件,同时他们还希望为工业自动化、PC、服务器以及电信设备等应用降低成本。实现这些目标的绊脚石是:设计人员使用运行在单一电压下的处理器,其需要 ...…

查看全部问答>

SAM R21跑轻量级网软件堆栈DEMO

本帖最后由 蓝雨夜 于 2014-12-17 11:20 编辑 SAM R21跑轻量级网软件堆栈DEMO 在Atmel Studio 6.2中有关无线收发测试的 demo没几个,只找到个Peer2Peer先测试下 功能很简单:A串口接收数据,通过无线发送B,同时A串口反送数据 ATEML在程序结构 ...…

查看全部问答>

Quartus II 虚拟引脚Virtual pin的使用

一个比较大的FPGA项目往往由许多模块组合而成,开发时我们可能要一个一个模块地验证,有时候一个模块可能会有非常多的模块之间的接口信号或者有些大工程会有好几百个引脚,这样FPGA提供的引脚接口就可能不够,而我们在进行单一功能验证时有些引脚可 ...…

查看全部问答>