A. 怎么能把keil中程序编译后自动看出程序是否正确。我的编译后是这样!
View 菜单----->Build Output Window....
显示出喊码被你关闭掉的窗口就行了郑蚂哪,
如果还不行,Window菜单--->Reset View....
可以把默认的窗口调出来物喊
B. crc校验,keilc里和vb得到的校验码不同,请问什么原因,谢谢
CRC校验结果的不同从计算原理上有以下几个胡衡方面:
1.简化式不同,比如CRC8在应用上有5种常用简化式,简化式的不同结果必然不同。
2.正向算法与逆向算法,正向算法是数据右侧为高位,CRC初始值为0,简化式正向,逆向算法是数据右侧为低位,CRC初始值为ffff,简化式需逆向。
从程序运行的硬件角度看裤迹做:
1.单片机和ARM数据定义不同,比如单片机中int型是16位数据,ARM中一般为32位,在PC中有可能就是64位了,这样的数据定义在CRC运算时会产生不同的结果。
2.单片机种存储数据的空间是有说法的,比如code,idata,xdata区需要弄清除你的待校验数据存储的位置,看是否真的将数据存储对了,否则有可能是00,或ff的校验结果。
从你程序上看,硬件原因的可能性大些,一定注意数据的定义,比如在51中的short int型变量时啥??你州伍直接8位定义成char,16位定义成int,32位定义成long就完了,弄个short多愁人啊
C. Keil编译问题
连接错误,只声明了这几个函数,但是没有真正的实现。
如 void EXTI_Init(); 是声明
// 下面这个才是函数实现,你的工程中没有该函数的实现
void EXTI_Init()
{
// todo something
}
D. keil编译错误undefined identifier是什么意思
undefined identifier是常见的keil编译错误。
引发这一错误的原因是你使用的变量没有被定义。
常见的处理手段是对你使用到的变唤消量进行变量定义。
另外一种常见的错误就是大和销知小写导致的,如定义的是unsigned char num;在使斗谈用的时候,写成了NUM,也会出现同样的错误。
(4)keil编译没有校验码扩展阅读:
使用独立的Keil仿真器时,注意事项:
仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
E. keil编译器运行为什么检测不到错误
答:这种情况是你的程序还有别的错误,
当你把别的错误改掉后,再编译你的vid 就会提示错误。
这种情况keil 经常有的。
F. keil4 同样的源程序, 每次编译生成的hex文件crc校验码都不一样,为什么如何使生成的hex文件校验码一样
这个没什么奇怪的,编译后的Hex文件和CRC校验码一定是不一察茄谨样的,因为编译器在编译的时候,会自动插入一些随机数,进行冗余计算,这个是为了保密的需要,试想,如果一个编译器不进行保密的冗余计算,那么,稍微有点知识的人,就可以很容易的从HEX文件反推回汇编语言,这样的编译器,哪个厂家敢用?自己辛苦写的软件,很容易的就被人盗版了。
所以,败基这个是没有办法的事纳答情。
G. keil编译成功如何显示
1.
查看keil编译后代码雀孙局大小 在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输顷让出下面这样一段信息: Program Size: Code=6320 RO-data=4864 RW-data=44 ZI-data=1636 代表的意思: Code :是凯瞎程序中代码所占字节大小 RO-data :程序中所定义的指令和常量大小 RW-data :程序中已初始化的变量大小 ZI-Data :程序中未初始化的变量大小 ROM(Flash) size = Code+RO-data+RW-data; RAM size = RW-data+ZI-data 可以通过.map查看占用的flash和ram大小
2.
STM32堆栈空间溢出解决办法 一般导致堆栈空间溢出的原因是:定义数组过大,或者申请动态内存过多产生。 以STM32F1
H. 这几段代码为什么用KEILC编译不成功啊是做PROTEUS仿真用的,基于单片机的智能照明。好的可以加分
看看编译时的错误提示吧,可以根据提示来调试程序。
看着错误提示可以自己一点一点的修改一下,搞清楚为啥出错了,这样也可以提高自己调试程序的能力。
I. 请问Keil编译文件出现如下显示,不能生成hex文件(运行没有警告和错误)怎么处理
这里已经表述得清楚明白……
你当前使用的是未和谐的评估版,仅支持编译不超过2kB(800h)的程序,而目前这个程序编译之后的长度是4859字节,是限制的2.37倍。同时,变量太多已经超过了直接寻址的80h范围,你需要把一部分变量分配到间接寻址的 idata 区。