Keil5怎么编译
“Keil5怎么编译”相关的资料有哪些?“Keil5怎么编译”相关的范文有哪些?怎么写?下面是小编为您精心整理的“Keil5怎么编译”相关范文大全或资料大全,欢迎大家分享。
Keil5编译问题
cannot open source input file “core_cm4.h”解决方法
装了比MDK5.11A更高版本的MDK后,可能出现编译标准例程报如下错误:
..\\SYSTEM\\sys\\stm32f4xx.h(470): error: #5: cannot open source input file \_cm4.h\No such file or directory
实际出错是在stm32f4xx.h,如图1所示:
图1 找不到core_cm4.h路径.
该core_cm4.h文件在stm32f4xx.h里面被引用,实际上是ARM CMSIS的东西,路径在MDK安装路径下,为: MDK安装目录\\ARM\\Pack\\ARM\\CMSIS\\4.1.1\\CMSIS\\Include
一般来说,装了CMSIS支持包就应该可以找到才对,但是部分客户电脑无法找到,原因未知. 不过,我们可以通过手动制定路径的办法,解决这个问题.
添加方法:点击魔术棒-->C/C++选项卡-->Include Paths ,选择我们MDK安装目录,找到\\ARM\\Pack\\ARM\\CMSIS\\4.1.1\\CMSIS\\Include
MCUexpresso Config Tools 联动KEIL5
MCUexpresso Config Tools
本文介绍了如何从无到有的使用keil5建立一个工程,并介绍在工程中能配套使用MCUexpresso Config Tools工具。
之前下载了该工具,但是苦于无法使用,网上一搜都是使用在线的SDK builder去生成的。实在不喜欢该方法。毕竟下载后不是放在桌面上吃灰的。
在进入正题之前先说明该工具应该刚开发不久,很多功能都不支持,很多芯片也没有, 但是对于使用NXP的工程师来说,学习一定不吃亏。
我使用的是LPC54608的开发板,所有就直接演示如何建立一个工程,并只复制一个main.c到工程中。 我使用的是keil5.23
第一步:新建工程
首先选择芯片:我选择跟开发板一样的芯片。
然后选择支持包,一点要选择好SDK包和Device中的lcd的库文件。选好后点击左下角的Resolve,这会帮你自动选择好最小限度的文件。不熟悉的直接按照例子中的勾选项勾选即可。
点击OK后会建立一个空的工程,但是重点在于板支持包,有了这个才能使用Config Tool工具。如下图,
第二步:保存工程
建立工程后,保存退出,然后找到建立工程的根目录,在建立一个mdk的文件夹,把工程放进去。mdk里
keil 编译错误提示
C51编译器识别错类型有三种
1、致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。
2、语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出 提示但不产生目标文件,错误超过一定数量才终止编译。
3、警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序 员应斟酌处理。 D.1 致命错误 C_51 FATAL_ERROR ACTION: <当前行为> LINE: <错误所在行>
ERROR: <错误信息> terminated 或C_51 FATAL ERROR ACTION: <当前行为> FILE: <错误所在文件>
ERROR: <错误信息> terminated C_51 TERMINATED C_51 (1) ACTION 的有关信息
*PARSING INVOKE-/#PRAGMA_LINE
在对#pragma 指明的控制行作此法分析时出错。 *ALLOCATING MEMORY
系统分配存储空间时出错。编译较大程序需要512k空间。 *OPENING INPUT_FILE
打开文件时,未找到或打不开源文件/头文件。 *CREATE LIST_FILE/OBJECT_FILE/WORK_FILE
不能
keil 编译错误提示
C51编译器识别错类型有三种
1、致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。
2、语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出 提示但不产生目标文件,错误超过一定数量才终止编译。
3、警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序 员应斟酌处理。 D.1 致命错误 C_51 FATAL_ERROR ACTION: <当前行为> LINE: <错误所在行>
ERROR: <错误信息> terminated 或C_51 FATAL ERROR ACTION: <当前行为> FILE: <错误所在文件>
ERROR: <错误信息> terminated C_51 TERMINATED C_51 (1) ACTION 的有关信息
*PARSING INVOKE-/#PRAGMA_LINE
在对#pragma 指明的控制行作此法分析时出错。 *ALLOCATING MEMORY
系统分配存储空间时出错。编译较大程序需要512k空间。 *OPENING INPUT_FILE
打开文件时,未找到或打不开源文件/头文件。 *CREATE LIST_FILE/OBJECT_FILE/WORK_FILE
不能
Keil最常见编译错误和警告
今天在EINT的范例里添加了一个函数,即eint.c中添加了一个datawrite()的函数,并在主函数main.c中调用,编译便警告
warning: #223-D: function \
很奇怪,在eint.c中也有初始化函数EINTInit()同样在main.c中调用没有问题,问什么偏偏这个不行。
但毕竟是个警告,还不是错误,做了个测试IO, while(1) {
FIO1SET = 1<<19; delaySysTick(10);
Data_write(0xff00, 0xff); FIO1CLR = 1<<19; delaySysTick(10); }
下载执行后发现,此IO根本没有输出。
看来这个警告还是不能回避的,在网上差了下,有类似问题说是库的原因,具体是什么也没说清楚。于是尝试着一一打开库文件,打开eint.h,恍然大悟,这里赫然写着 extern void EINT0_IRQHandler(void) __irq; extern DWORD EINTInit( void );
原来在这里将eint.c中的函数与main.c相关联,也就是在eint.c中添加了新函数,还有在这里声明调用才行。 eint.h中,添加
extern void Data_write(WORD addr, BYTE data
Keil编译环境下经常出现的错误
Keil编译环境下经常出现的错误 问题
使用XC164单片机在Keil环境下编译程序时经常出现一些问题,希望得到帮助. 回答
以下有一些Keil C166 编译器使用过程中常见问题,请参考.
1. 在C环境下能访问到16M范围吗?
可以的.通过huge 和xhuge 类型就可以访问到16M地址空间. Huge存储类型使用16位地址计算,所以最大范围为64K,但这是最优的一种存储方式.xhuge存储类型没有大小的限制.
2. 如何修改系统堆栈的大小和位置?
需要编辑START166.A66文件.修改STK_SIZE=7,然后设置SSTSZ为自己设定的值.例如SSTSZ EQU 200H 则设置了系统堆栈大小为200H BYTES 但要注意系统堆栈要放到IDATA存储区内.
3. 能不能在运行或编译时确定程序的大小?
不可以.但可以在程序的结尾放一个变量,这一变量并非自动生成并需要在程序中放置所有变量,然后把”EOF”变量放到最后.
4. 如何在函数中禁止中断?
可以用#pragma disable来禁止中断,例如:
#pragma disable vo
Keil编译环境下经常出现的错误
Keil编译环境下经常出现的错误 问题
使用XC164单片机在Keil环境下编译程序时经常出现一些问题,希望得到帮助. 回答
以下有一些Keil C166 编译器使用过程中常见问题,请参考.
1. 在C环境下能访问到16M范围吗?
可以的.通过huge 和xhuge 类型就可以访问到16M地址空间. Huge存储类型使用16位地址计算,所以最大范围为64K,但这是最优的一种存储方式.xhuge存储类型没有大小的限制.
2. 如何修改系统堆栈的大小和位置?
需要编辑START166.A66文件.修改STK_SIZE=7,然后设置SSTSZ为自己设定的值.例如SSTSZ EQU 200H 则设置了系统堆栈大小为200H BYTES 但要注意系统堆栈要放到IDATA存储区内.
3. 能不能在运行或编译时确定程序的大小?
不可以.但可以在程序的结尾放一个变量,这一变量并非自动生成并需要在程序中放置所有变量,然后把”EOF”变量放到最后.
4. 如何在函数中禁止中断?
可以用#pragma disable来禁止中断,例如:
#pragma disable vo
C51-keil编译常见错误和警告处理
keil错误
C51编译器识别错类型有三种
1、致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。
2、语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出 提示但不产生目标文件,错误超过一定数量才终止编译。
3、警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序 员应斟酌处理。 D.1 致命错误
C_51 FATAL_ERROR ACTION: <当前行为> LINE: <错误所在行>
ERROR: <错误信息> terminated 或C_51 FATAL ERROR ACTION: <当前行为>
FILE: <错误所在文件>
ERROR: <错误信息> terminated C_51 TERMINATED C_51 (1) ACTION 的有关信息
*PARSING INVOKE-/#PRAGMA_LINE
在对#pragma 指明的控制行作此法分析时出错。 *ALLOCATING MEMORY
系统分配存储空间时出错。编译较大程序需要512k空间。 *OPENING INPUT_FILE
打开文件时,未找到或打不开源文件/头文件。
*CREATE LIST_FILE/OBJECT_FILE/WORK
C51-keil编译常见错误和警告处理
keil错误
C51编译器识别错类型有三种
1、致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。
2、语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出 提示但不产生目标文件,错误超过一定数量才终止编译。
3、警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序 员应斟酌处理。 D.1 致命错误
C_51 FATAL_ERROR ACTION: <当前行为> LINE: <错误所在行>
ERROR: <错误信息> terminated 或C_51 FATAL ERROR ACTION: <当前行为>
FILE: <错误所在文件>
ERROR: <错误信息> terminated C_51 TERMINATED C_51 (1) ACTION 的有关信息
*PARSING INVOKE-/#PRAGMA_LINE
在对#pragma 指明的控制行作此法分析时出错。 *ALLOCATING MEMORY
系统分配存储空间时出错。编译较大程序需要512k空间。 *OPENING INPUT_FILE
打开文件时,未找到或打不开源文件/头文件。
*CREATE LIST_FILE/OBJECT_FILE/WORK
keil 错误 C51编译器鉴别错类型
keil 错误 C51编译器鉴别错类型
C51编译器鉴别错类型有三种
1、致命差错:伪指令操纵行有错,拜候不生活的原文件或头文件等。
2、语法及语义差错:语法和语义差错都发生在原文件中。有这类差错时,给出 提示但不出现标的目的文件,差错横跨肯定数量才终止编译。
3、戒备:戒备出现并不影响标的目的文件的出现,但推行时有可能发生题目。序次 员应商议经管。 D.1 致命差错
C_51 FATAL_ERROR ACTION:
LINE:
ERROR: terminconsumedd 或C_51 FATAL ERROR ACTION:
FILE:
ERROR: terminconsumedd
C_51 TERMINATED C_51 (1) ACTION 的有关音讯
*PARSING INVOKE-/#PRAGMA_LINE
在对#pragma 指明的操纵行作此法剖析时出错。失去。 *ALLOCATING MEMORY
体系分配存储空间时出错。编译较大序次必要512k空间。 *OPENING INPUT_FILE