WARNING L18: SEGMENT DOES NOT FIT IN PDATA PAGE调试的时候出现这么一个警告,我的单片机是STC10L08XE

作者&投稿:能径 (若有异议请与网页底部的电邮联系)
单片机编程语言一般有哪几种~

单片机编程语言很多,大致分成三类:机器语言、汇编语言、高级语言。机器语言由于繁琐容易出错,大部分用户已经不再便用。
1.单片机的汇编语言
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少,程序执行效率高,由于它一条指令就对应一条机器码,每一步的执行动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。但是不同的类型的单片机,其汇编语言可能有点差异,所以不易移植,因为他们的指令系统是有区别的。但懂得汇编语言可帮助了解影响川可语言效率的特殊规定。例如,懂得汇编语言指令就可以便用在片内ram作变量的优势,因为片外变量需要几条指令才能设署累加器和数据指针进行存取。同样的,当要求便用浮点数和启用函数时也只有具备汇编编程经验才能避免生成庞大的、效率低的程序,对于这方面的编程,没有汇编语言是做不到的。
2.单片机的C语言
单片机的C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言具有功能丰富的库函数,运算谏磨快,编译效率高,有良好的可移植性,而且可以实现直接对系统硬件的控制。此外,C语言程序具有完整的程序模块结构,从而为软件开发中栗用模块化程序设计方法提供了有力的保障。与汇编相比,有如下优点:
对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解,至于寄存器分配、不同存储器的寻址及数据类型等细节均由编译器管理。程序有规范的结构,可分为不同的函数。这种方式可便程序结构化,将可变的选择与特殊操作组合在一起,改善了程序的可读性。
编程及程序调试时间显著缩短,从而提高效率。提供的库包含许多标准子程序,具有较强的数据处理能将已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术。
功能强而有弹性,提供的库包含许多标准子程序,具有较强的数据处理能力,能将已编好程序容易的植入新程序,因为它具有方便的模块化编程技术。
单片机C语言作为一种非常方便的语言而得到广泛的支持,(语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片翻U均不同较快地移植过来。
用单片机c语言进行程序设计,已成为单片机软件开发的一个主流,作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。

拓展资料
单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由于单芯片微电脑常用于当控制器故又名single chip microcontroller,但是目前在中国大陆仍多沿用“单片机”的称呼。

一般是C语言或者汇编语言。
1、大多数情况下,单片机运行的程序,都是C语言编写的。不过并不是纯粹的传统C语言,而是变种后的C51语言。
单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的工程师,能够轻松地掌握单片机C51语言的程序设计。
2、汇编语言:
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
在一些情况下,C51并不能完美的实现功能,所以汇编语言是对C51的一个重要补充。一般来说,启动部分(基础硬件的初始化),往往是由汇编语言完成的。除此以外,一些要求时效性特别强,效率要求特别高时,也需要使用汇编语言完成。

一般是工程文件太大了,将模式改一下就行。
点击option for target,也就是魔术棒
在第二栏target那里,有一个Memory Model,选择Large:variables in XDATA


双塔区15726587504: WARNING L18: SEGMENT DOES NOT FIT IN PDATA PAGE调试的时候出现这么一个警告,我的单片机是STC10L08XE -
漳茂单瑞: 一般是工程文件太大了,将模式改一下就行.点击option for target,也就是魔术棒 在第二栏target那里,有一个Memory Model,选择Large:variables in XDATA

双塔区15726587504: 请单片机高手分析下面程序~~出现*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGM -
漳茂单瑞: 在void Outside_Int(void) interrupt 0 程序里有一行void debouncer() ; 将void 去掉就行了

双塔区15726587504: 请单片机高手分析下面程序WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGM -
漳茂单瑞: 程序本身是对的,只是其中定义了一些变量或者函数没有被调用到就会出现这个警告.我看了就是 void busy()这个函数没有用到,只要将它注释掉就不会出现警告!

双塔区15726587504: 单片机C编译时出现*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS这个警告是什么意思 -
漳茂单瑞: 看看程序里有没:没调用的子函数.

双塔区15726587504: 单片机C语言WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGM -
漳茂单瑞: 程序没问题 不会出现你说的这个警告 这个警告是说定义了却没有使用 不过你的程序里没有~~

双塔区15726587504: C语言出错了warning C4018: '<' : signed/unsigned mismatch -
漳茂单瑞: 出错的意思为:警告C4101:'e':未引用的局部变量.原因是局部变量的错误使用.f、c、k都是在main()函数里面定义的,然而在使用这些变量时是在temp()函数里面.在某个函数里面定义的变量只能在此函数中使用,所以会产生错误.解...

双塔区15726587504: 开机出现warning是怎么回事?
漳茂单瑞: 1开机按F1键,这是因为你的BIOS设置不当但也能正常引导系统,属非致命性故障,按F1是在问你是否继续. 你没有安装软盘驱动器,但是在CMOS中设置了,开启软驱的选项. 方法是:开机按Del键,进入BIOS设置,选择第一个"基本设置"...

双塔区15726587504: C语言提示warning错误 -
漳茂单瑞: 你看看这个可能有帮助..主要是定义 与调用的 问题C51编译警告“*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL” 及extern的运... C51编译警告“*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL...

双塔区15726587504: c51出现:warning MULTIPLE CALL TO SEGMENT 怎么处理 -
漳茂单瑞: 是的,你说的情况会出现这个警告.至于是否要解决就要具体问题具体分析了,如果你能确定没影响,警告就警告了,没关系的(我现在的项目中就有这个警告,情况和你说的一样,我没理它),如果你不放心,那就把函数复制一个,另取个名字,再让主函数或中断调用那个好了.

双塔区15726587504: *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 本程序是单片机串口接收和发送字符 -
漳茂单瑞: 不明白c文件中这句void Rcv_Comm();做什么用?其实调试信息里指明了未被调用的子程序: SEGMENT: ?PR?RCV_COMM 在中断服务子程序中是调用Rcv_Comm(),而不是声明该函数,因此应该将前面的void去掉 void Uart(void) interrupt 4 using 1 { Rcv_Comm(); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网