对于函数的自变量、局部变量和全局变量声明如果没有指定内存类型,则内存模式将成为内定的内存类型。如果

指定了内存类型的变量,则不理会内存模式,完全有所指定的内存类型为主。

SMALL模式:小模式

所有的变量,局部变量或全局变量都指定存在内部RAM的 0—0x7F 的地址范围,此模式如同将所有的

变量都定义成 data 类型的内存。

COMPACT模式:压缩模式

所有的变量将被指定到其地址范围为 0—0xFF 的外部数据存储器,此模式如同将所有的变量都定义

成 pdata 类型的内存。

LARGE模式:大模式

所有的变量将被指定到其地址范围为 0—0xFFFF 的外部数据存储器,此模式如同将所有的变量都定义

成 xdata 类型的内存。

Re: Bank Switch無法編譯後的訊息

[QUOTE]原發表者是 Vic

1.*** WARNING L15: MULTIPLE CALL TO SEGMENT

SEGMENT: ?PR?SD_INITIALIZE?DRVSD

CALLER1: ?C_C51STARTUP

CALLER2: ?PR?TIMER0_ISR?INTERRUPT

這表示SD_INITIALIZE這個函式被C_C51STARTUP和中斷服務函式

TIMER0_ISR呼叫到。

這樣會有什麼問題?

若是SD_INITIALIZE被呼叫時,TIMER0_ISR中斷發生而再呼叫

SD_INITIALIZE就會有reentrant(重入)的問題。

Keil C51 一般的函式的區域變數是放在同一個地方的,所以不能被

重入。如果程式保證這樣的情況不會發生(例如呼叫之前先disable

interrupt)可以不理會這個警告。

2.*** ERROR L107: ADDRESS SPACE OVERFLOW

SPACE: XDATA

SEGMENT: ?XD?DRVMS

LENGTH: 0515H

XDATA 使用過量囉!減減肥吧!

3.*** WARNING L17: INTERRUPT FUNCTION IN BANKS NOT ALLOWED

SYMBOL: INT0_ISR

SPACE: BANK0

不可以把中斷函式放在 bank area

4.*** WARNING L4: DATA SPACE MEMORY OVERLAP

FROM: 003FH

TO: 0050H

某些data區被兩個器共用

5.*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

SYMBOL: MEM_POOL

SEGMENT: ?XD?MTM808

6.*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL

SYMBOL: SYSTEM_MODE

MODULE: .\debug\mtm808.obj (MTM808)

ADDRESS: 3A7CH

7.*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL

SYMBOL: ADPCM_STATE

MODULE: .\debug\SystemManager.obj (SYSTEMMANAGER)

ADDRESS: 358FH

參照到一個無法使用的記憶段(可為前面之over fllow錯誤引起)

13.*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL

SYMBOL: DATEI

MODULE: .\mtm809.LIB (CMDIF)

找不到external symbol的實體,所以無法連結

c语言编译器error,KEIL C编译器常见警告与错误信息的解决办法相关推荐

  1. ftp 查看不了图片_几个常见的ftp错误问题及解决办法

    1.无法上传网页,提示"无法连接服务器"错误: 原因:FTP客户端程序设置问题,客户上网线路问题,ftp服务器端问题. 解决方法:使用CUTPFTP软件来上传客户的网页,在&quo ...

  2. error LNK2038: 检测到“RuntimeLibrary”的不匹配项的解决办法

    error LNK2038: 检测到"RuntimeLibrary"的不匹配项的解决办法 原因:这是一个编译器错误,通常是由于链接器找不到所需的运行时库而导致的.需要检查编译器和链 ...

  3. 常见的Nginx 502 Bad Gateway解决办法

    常见的Nginx 502 Bad Gateway解决办法如下: Nginx 502错误情况1: 网站的访问量大,而php-cgi的进程数偏少. 针对这种情况的502错误,只需增加php-cgi的进程数 ...

  4. 5 个 Android 开发中比较常见的内存泄漏问题及解决办法

    Android开发中,内存泄漏是比较常见的问题,有过一些Android编程经历的童鞋应该都遇到过,但为什么会出现内存泄漏呢?内存泄漏又有什么影响呢? 在Android程序开发中,当一个对象已经不需要再 ...

  5. linux下hg无法运行_Linux 无法启动常见的几种原因及解决办法

    导致 Linux 无法启动的原因有很多,下面良许小编就将常见的几种原因及解决办法进行详述,希望对大家有所帮助. 文件系统配置不当,如 /etc/inittab文件./etc/fstab 文件等配置错误 ...

  6. Keil MDK 工程输入中文汉字编译报错解决办法

    Keil MDK 工程输入中文汉字编译报错解决办法 官方说明:https://www.keil.com/support/man/docs/armcc/armcc_chr1359124934197.ht ...

  7. java检测音频爆音_常见的爆音问题及其解决办法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 常见的爆音问题及其解决办法一.什么情况下会出现爆音? 1.声卡的延迟(LATENCY)设置不当引起的爆音 2.Win98操作系统对设备.系统缓存等的管理不 ...

  8. VS2019遇见的常见错误之一及其解决办法( MSB803 找不到Windows SDK版本 10.0.18362.0.请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决

    VS 2019 遇见的常见错误之一及其解决办法( MSB803 找不到Windows SDK版本 10.0.18362.0.请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解 ...

  9. springboot项目报错:ERROR 9112 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] 的解决办法

    启动springboot项目,访问页面后报错 报错信息如下: [nio-8087-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.ser ...

最新文章

  1. 11月第三周.COM增13.8万 ×××域名.XXX减9个
  2. BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
  3. Android中状态栏的隐藏
  4. android 的命令行工具(dos命令)
  5. Android activity之间的滑入切换
  6. CORS 跨域-同源
  7. 币安Binance.client can‘t find the module client 解决办法
  8. 杭州云栖大会阿里云放大招,8K远程医疗会诊引关注
  9. python中的参数函数_python中函数与参数的简介
  10. 04737 c++ 自学考试2019版 第四章课后练习 程序设计题 2
  11. java代码调用python_java调用python代码-阿里云开发者社区
  12. CentOS 7 Linux实时内核下的epoll性能分析后续 | 火焰图分析
  13. 三层交换和二层交换之间的端口聚合
  14. 最为完整的gdb调试
  15. 10_android打包的过程
  16. 10 个超棒的 jQuery 视频插件
  17. 数控铣削图案及编程_数控铣削编程与操作设计有全套图纸.doc
  18. win10 ISO文件下载
  19. 珊瑚橙怎么配色配色?橙色优学教你如何玩转2019年度流行色
  20. 苹果退款_教程:在 iTunes 申请 App Store 退款

热门文章

  1. [翻译] 在 Overleaf 中更改编辑器字体大小
  2. 破圈的《张朝阳的物理课》,开启“知识突围”的搜狐视频
  3. win7系统开启snmp服务器配置,Win7系统怎么开启snmp服务【图文】
  4. win10user文件夹迁移_win10专业版用户文件夹迁移到另一个驱动器的方法
  5. 单模、多模有什么区别
  6. python工具类-sql操作封装
  7. 小红书笔记api_小红书笔记怎么写?
  8. 记录建hbase对应hive外表坑
  9. Python 数据分析之双色球高频数据统计
  10. scratch编程神笔马良