下表列出了 BL51 链接器的记录异常。
| 例外 | 异常类型 | 描述 |
|---|---|---|
| L1级 | 警告 | 未解析的外部符号符号:symbol-name 模块:filename (module-name) |
| L2级 | 警告 | 引用未解析的外部符号:symbol-name 模块:filename (module-name) address: address |
| L3级 | 警告 | 分配的地址与对齐段不兼容:segment-name |
| L4级 | 警告 | 数据空间内存重叠 From: address To: address |
| L5级 | 警告 | 代码空间内存重叠 From: address To: address |
| L6级 | 警告 | XData 空间内存重叠 From: address To: address |
| L7级 | 警告 | 模块名称不唯一 模块:filename (module-name) |
| L8级 | 警告 | 从另一个文件显式请求的模块名称 模块:filename (module-name) |
| L9型 | 警告 | 空绝对段模块:filename (module-name) |
| L10级 | 警告 | 无法确定根段 |
| L11级 | 警告 | 找不到段或函数名称名称:symbol-name |
| L12级 | 警告 | 段之间没有引用 段 1:段名称 段 2:段名称 |
| M1R型 | 警告 | 递归调用段段:callee-segment-name 调用方:caller-segment-name |
| M1U型 | 警告 | 不兼容的内存模型模块:filename (module-name) 型号:memory-model |
| M1T型 | 警告 | 多个调用段段:段名称 调用方 1:段名称 调用方 2: 段名称 |
| L16级 | 警告 | 未调用的段,覆盖进程段忽略:segment-name |
| M1V型 | 警告 | 代码库中不允许使用中断功能 符号:symbol-name 空间:code-bank |
| L18型 | 警告 | 段不适合 PData 页面空间:内存空间段:段名称 |
| L19级 | 警告 | 位于银行区的通用代码段 |
| L20型 | 警告 | L51_BANK。A51:nbanks <代码库的数量 |
| L21级 | 警告 | 位于银行区域外的分段 |
| L22型 | 警告 | 区段大小下溢:旧大小 + 更改< 0 区段:区段名称 |
| L23级 | 警告 | 未解析的外部符号 |
| L24级 | 警告 | 不兼容的 CPU 模式 模块:模块名称 模式:CPU 模式 |
| M2T系列 | 警告 | 数据类型不同 符号:符号名称 模块:模块名称 定义:模块名称 |
| L26型 | 警告 | 数据类型略有不同 符号:symbol-name 模块:module-name 定义:module-name |
| M2V型 | 警告 | 不兼容的中断帧大小 模块:模块名称 帧:帧大小 |
| L28型 | 警告 | 减小段段的大小:段名称 |
| L29型 | 警告 | 位于类区域外的区段 区段:区段名称 |
| L30型 | 警告 | 内存空间重叠 From: address To: address |
| L31型 | 警告 | SLE66P:并非所有代码空间都可以分配给 MMU 描述符 |
| L32型 | 警告 | SLE66P:并非所有 XData 空间都可以分配给 MMU 描述符 |
| L33型 | 警告 | 未找到导出符号名称:symbol-name |
| M3U的 | 警告 | 项目不包括LP51BANK模块 |
| L35型 | 警告 | SLE66P:自动递增问题;描述符长度可能太短 MMU 描述符:描述符 地址:地址 |
| L36型 | 警告 | SLE66P:描述符不是连续的(连续地址范围需要) MMU Descriptor:描述符 Address:地址 |
| L37型 | 警告 | SLE66P:?C_C51STARTUP段应位于地址空间 Y:0-Y:03FFFh 中 |
| L38型 | 警告 | 代码生成:问题处理指令 原因:描述 地址:地址 |
| L40型 | 警告 | SLE66P: 并非所有 bank 空间都可以分配给 MMU 描述符 space: 代码库 |
| L41型 | 警告 | 目标可能超出范围 原因:描述 地址:地址 |
| L42型 | 警告 | 区段位置违反重新定位类型区段:区段名称 |
| M4R型 | 警告 | 飞利浦 MX:ECRM 模式需要编译器设置 ROM(HUGE) |
| L44 | Warning | Input Module Incompatible with Philips MX Module: filename (module-name) |
| L45 | Warning | OVERLAY Directive Implies Banked Call, But Public Missing Symbol: symbol-name |
| L46 | Warning | SFR Symbol Has Different Values Symbol: symbol-name Module: module-name Defined: module-name |
| L47 | Warning | No Segments Assigned to User Class Class: class-name |
| L48 | Warning | Ignored Recursive Call Callee: function-name Caller: function-name |
| L49 | Warning | Ignored Recursion in Overlay Import, Call Removed Callee: function-name Caller: function-name |
| L50 | Warning | HEXADD: File Not Found File: file-name |
| L51 | Warning | SLE66: FBRA/FCALL odd Destination Address to NVM (66PE ERRATA 3.7 RAZ467) |
| L52 | Warning | EVAL Version Used Before, Rebuild all *.OBJ Files Module: filename (module-name) |
| L54 | Warning | |
| L55 | Warning | |
| L56 | Warning | |
| L101 | Error | Segment Combination Error Segment: segment-name Module: filename (module-name) |
| L102 | Error | External Attribute Mismatch Symbol: symbol-name Module: filename (module-name) |
| L103 | Error | External Attribute Does Not Match Public Symbol: symbol-name Module: filename (module-name) |
| L104 | Error | Multiple Public Definitions Symbol: symbol Module: filename (module-name) Defined: filename (module-name) |
| L105 | Error | Public Refers to Ignored Segment Symbol: symbol-name Segment: segment-name |
| L106 | Error | Segment Overflow Segment: segment-name |
| L107 | Error | Address Space Overflow Space: memory-space Segment: segment-name |
| L108 | Error | Segment in Locating Directive Cannot Be Allocated Segment: segment-name |
| L109 | Error | Empty Relocatable Segment Segment: segment-name |
| L110 | Error | Cannot Find Segment Segment: segment-name |
| L111 | Error | Specified BIT Address Not On Byte Boundary Segment: segment-name |
| L112 | Error | Segment Type Illegal for Command Segment: segment-name |
| L113 | Error | Segment in Locating Directive is Already Absolute Segment: segment-name |
| L114 | Error | Segment Does Not Fit Space: memory-space Segment: segment-name Base: address Length: length |
| L115 | Error | INPAGE Segment is Larger Than 256 Bytes Segment: segment-name |
| L116 | Error | INBLOCK Segment is Larger Than 2048 Bytes Segment: segment-name |
| L117 | Error | BIT-Addressable Segment is Larger Than 16 Bytes Segment: segment-name |
| L118 | Error | Reference Made to Erroneous External Symbol: symbol-name Module: filename (module-name) Address: address |
| L119 | Error | Reference Made to Erroneous Segment Segment: segment-name Module: filename (module-name) Address: address |
| L120 | Error | Content Belongs to Erroneous Segment Segment: segment-name Module: filename (module-name) |
| L121 | Error | Improper Fixup Module: filename (module-name) Segment: segment-name Offset: address |
| L122 | Error | Cannot Find Module Module: filename (module-name) |
| L123 | Error | Absolute Data/IData Segment Does Not Fit Module: filename (module-name) From: address To: address |
| L124 | Error | Bank Switch Module is Incorrect |
| L125 | Error | Duplicate Task Number Task 1: function-name Task 2: function-name Task ID: number |
| L126 | Error | Task with Priority 3 Cannot Work with Register Bank 0 Task: function-name Task ID: number |
| L127 | Error | Unresolved External Symbol Symbol: symbol-name Module: filename (module-name) |
| L128 | Error | Reference Made to Unresolved External Symbol: symbol-name Module: filename (module-name) Address: address |
| L129 | Error | Task Required Register Bank Task: function-name Task ID: number |
| L130 | Error | No Matching Segment for Wildcard Segment Name Segment: segment-name |
| L131 | Error | Illegal Priority for Task Task: function-name Task ID: number |
| L132 | Error | Illegal Task ID: RTX51 Tiny Supports Only 16 Tasks Task: function-name Task ID: number |
| L133 | Error | SFR Symbol Has Different Values Symbol: symbol-name Module: filename (module-name) |
| L134 | Error | Address Space Overflow in BANKAREA Space: memory-space Segment: segment-name |
| L135 | Error | SLE66P: Cannot Map to Logical Address Module: filename (module-name) Segment: segment-name Offset: address |
| L136 | Error | SLE66P: BANKAREA (0, 0x3FFF) Not Available on Hardware |
| L137 | Error | OPTIMIZATION: Internal Error Creating Common Code |
| L138 | Error | CODE GENERATION: Problem Processing Instructions Cause: description Address: address |
| L139型 | 错误 | GDOVERLAY:可叠加段太多 区段:segment-name 模块:文件名 (module-name) |
| L140型 | 错误 | HEXADD:未知十六进制文件格式文件:文件名 |
| L141型 | 错误 | HEXADD:校验和错误文件:文件名 |
| L142型 | 错误 | CC7:多个LEVEL_CALL定义 符号:symbol-name 模块:module-name 定义:module-name |
| L143型 | 错误 | 分段大小更改与其他段属性冲突 段:段名称 |
| L201型 | 致命错误 | 无效的命令行语法 |
| L202型 | 致命错误 | 命令行无效,令牌太长 |
| L203型 | 致命错误 | 预期项目缺失 |
| L204型 | 致命错误 | 关键字无效 |
| L205型 | 致命错误 | 常量过大 |
| L206型 | 致命错误 | 无效的常量 |
| L207型 | 致命错误 | 名称无效 |
| L208型 | 致命错误 | 文件名无效 |
| L209型 | 致命错误 | 在冲突上下文中使用的文件:文件名 |
| L210型 | 致命错误 | 输入文件上的 I/O 错误:异常文件:文件名 |
| L211型 | 致命错误 | 输出文件上的 I/O 错误:异常文件:文件名 |
| L212型 | 致命错误 | 列表文件上的 I/O 错误:异常文件:文件名 |
| L213型 | 致命错误 | 工作文件上的 I/O 错误:异常 |
| L214型 | 致命错误 | 输入相位错误模块:filename (module-name) |
| L215型 | 致命错误 | 校验和错误模块:filename (module-name) |
| L216型 | 致命错误 | 内存不足 |
| L217型 | 致命错误 | 无需处理模块 |
| L218型 | 致命错误 | 不是对象文件文件:filename |
| L219型 | 致命错误 | 不是 8051/x51 对象文件文件:filename |
| L220型 | 致命错误 | 无效的输入模块文件:filename |
| L221型 | 致命错误 | 多次指定模块 |
| L222型 | 致命错误 | 多次指定的区段 |
| L224型 | 致命错误 | 重复的关键字或冲突的指令 |
| L225型 | 致命错误 | 段地址不按升序排列 |
| L226型 | 致命错误 | 段地址对控制无效 |
| L227型 | 致命错误 | 参数超出范围 |
| L228型 | 致命错误 | RAM大小参数超出范围 |
| L229型 | 致命错误 | 内部进程错误 |
| L230型 | 致命错误 | 多次指定起始地址 |
| L231型 | 致命错误 | BANKAREA 的地址范围不正确 |
| L232型 | 致命错误 | 应用程序包含过多的递归 |
| L233型 | 致命错误 | 在 OVERLAY 指令命令行中非法使用 * |
| L234型 | 致命错误 | 使用 RTX51 指令 |
| L235型 | 致命错误 | 地址范围过多 |
| L236型 | 致命错误 | 地址不按升序排列 |
| L237型 | 致命错误 | 无效的类名 |
| L238型 | 致命错误 | BIT 地址对此类类型无效 |
| L239型 | 致命错误 | 已为此类指定的基址 |
| L240型 | 致命错误 | 基址必须是第一个参数 |
| L241型 | 致命错误 | 不能为此类指定基址 |
| L242型 | 致命错误 | 执行地址的语法错误 |
| L243型 | 致命错误 | 未保留空间时所需的执行地址 |
| L244型 | 致命错误 | 重叠类范围 |
| L245型 | 致命错误 | 地址范围对此类类型无效 |
| L246型 | 致命错误 | 多次指定的符号 |
| L247型 | 致命错误 | 文件上的 I/O 错误:异常文件:文件名 |
| L248型 | 致命错误 | 导出定义文件中的非法项目 附近:symbol-name 原因:描述 |
| L249型 | 致命错误 | 模块使用未知的 OMF 版本 模块:filename (module-name) |
| L250型 | 致命错误 | 超出受限版本中的代码大小限制 |
| L251型 | 致命错误 | 不支持库中的受限模块 |
| L254型 | 致命错误 | SLE66P:代码/XData 需要物理地址(Y:前缀) |
| L255型 | 致命错误 | SLE66P:BANKAREA 无法映射到固定的 MMU 描述符 MMU 描述符:描述符 |
| L256型 | 致命错误 | 模块包含重复的段名称 segment: segment-name 模块: filename (module-name) |
| L257型 | 致命错误 | 扩展链接器需要升级到 PK51 |
| L258型 | 致命错误 | Bank 表中的 AJMP 超出范围,L51_BANK中的配置错误。答51 |
![[嵌入式C][入门篇] 快速掌握基础2 (数据类型、常量、变量)](https://img-blog.csdnimg.cn/direct/72957661bd4f447cbdf07f72c8b761ba.png)


















