keil中使用 #pragma asm
来源:互联网 发布:java xml解析器 编辑:程序博客网 时间:2024/05/22 01:51
使用C51进行单片机编程是事半功倍的事,但是很多算法上以及编译上的问题,往往使用ASM代码更为方便又高效。但不知什么原因,Keil在实现C51夹杂ASM代码比SDCC麻烦很多,方法如下:
预处理指令 #pragma asm 开始ASM代码
预处理指令 #pragma endasm 结束ASM代码
如果就这样直接编译的话,会出现以下错误:
error C272: 'asm/endasm' requires src-control to be active
解决方法:在 Files Toolbar 中选中当前C51文件,点右键查看文件选项,将 Generate Assembler SRC File 与 Assemble SRC File 的勾选由灰色变为黑色,即使这两项有效!
这时进行编译没有问题,但是Link时产生了两个警告:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
解决方法是需要在 Source Group 中添加一个 LIB 文件,根据专案的内容不同有所区别:
C51S.LIB - 没有浮点运算的 Small model
C51C.LIB - 没有浮点运算的 Compact model
C51L.LIB - 没有浮点运算的 Large model
C51FPS.LIB - 带浮点运算的 Small model
C51FPC.LIB - 带浮点运算的 Compact model
C51FPL.LIB - 带浮点运算的 Large model
LIB 方件在 Keil 安装目录下的 /C51/LIB/ 目录中。
预处理指令 #pragma asm 开始ASM代码
预处理指令 #pragma endasm 结束ASM代码
如果就这样直接编译的话,会出现以下错误:
error C272: 'asm/endasm' requires src-control to be active
解决方法:在 Files Toolbar 中选中当前C51文件,点右键查看文件选项,将 Generate Assembler SRC File 与 Assemble SRC File 的勾选由灰色变为黑色,即使这两项有效!
这时进行编译没有问题,但是Link时产生了两个警告:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
解决方法是需要在 Source Group 中添加一个 LIB 文件,根据专案的内容不同有所区别:
C51S.LIB - 没有浮点运算的 Small model
C51C.LIB - 没有浮点运算的 Compact model
C51L.LIB - 没有浮点运算的 Large model
C51FPS.LIB - 带浮点运算的 Small model
C51FPC.LIB - 带浮点运算的 Compact model
C51FPL.LIB - 带浮点运算的 Large model
LIB 方件在 Keil 安装目录下的 /C51/LIB/ 目录中。
阅读全文
0 0
- keil中使用 #pragma asm
- KEIL之#pragma
- keil #pragma anon_unions
- 在Keil C51函数中加入ASM代码
- 在Keil C51函数中加入ASM代码
- xcode 中#pragma的使用
- xcode 中#pragma的使用
- xcode 中#pragma得使用
- xcode 中#pragma得使用
- xcode 中#pragma得使用
- xcode 中#pragma得使用
- iOS中#pragma的使用
- xcode 中#pragma得使用
- iOS中#pragma的使用
- KEIL中printf的使用
- 在数据库中使用asm
- C 语言中 #pragma 的使用
- c++builder 中关于#pragma使用整理
- JVM系列3-GC算法 垃圾收集器概述
- 微信小程序----组件之scroll-view
- Struts2的面试题
- 数据库SQL优化大总结之 百万级数据库优化方案
- Vue工作原理小结
- keil中使用 #pragma asm
- springMVC 学习
- Java中读取Map的两种方法对比
- 史上最详细的微生物扩增子数据库整理
- 最小二乘法
- Linux内核驱动开发注意事项
- Docker+Gogs搭建个人Git服务
- 【s5p4418嵌入式学习】分步编译之uboot编译03
- Java IO最详解