共2条
1/1 1 跳转至页
keilc keilc的启动文件问题
问
芯片:AT89C51
仿真环境:WAVE6000
编译器路径:KEILC7.06完全版
程序编译时,我不想产生那一段清RAM的程序,请问如何设置?
一:不产生清零作用
二:清零RAM的这段代码编译后根本不出现,也就是说如果MAIN{}为空的时候,编译结果的大小能不能和汇编一样大。
答 1: IDATALEN EQU 00H修改当前目录下的STARTUP.A51文件中的IDATALEN,使其为0
IDATALEN EQU 00H ; the length of IDATA memory in bytes.
;
XDATASTART EQU 0H ; the absolute start-address of XDATA memory
XDATALEN EQU 0H ; the length of XDATA memory in bytes.
;
PDATASTART EQU 0H ; the absolute start-address of PDATA memory
PDATALEN EQU 0H ; the length of PDATA memory in bytes.
STARTUP1:
IF IDATALEN <> 0
MOV R0,#IDATALEN - 1
CLR A
IDATALOOP: MOV @R0,A
DJNZ R0,IDATALOOP
ENDIF
答 2: 还是不行拉打开startup.a51文件,相关内容如下:
IDATALEN EQU 80H
XDATASTART EQU 0H
XDATALEN EQU 0H
PDATASTART EQU 0H
PDATALEN EQU 0H
STARTUP1:
IF IDATALEN <> 0
MOV R0,#IDATALEN - 1
CLR A
IDATALOOP: MOV @R0,A
DJNZ R0,IDATALOOP
ENDIF
修改IDATALEN EQU 80H ---》IDATALEN EQU 00H后从CPU窗口中还是看到这样的反汇编结果:
MOV R0,#7FH
CLR A
MOV @R0,A
DJNZ R0,0006H
我尝试着修改为IDATALEN EQU 01H,上面那几句依然不变化。
我删除掉
IF IDATALEN <> 0
MOV R0,#IDATALEN - 1
CLR A
IDATALOOP: MOV @R0,A
DJNZ R0,IDATALOOP
ENDIF
编译结果的大小也未发生任何变化。 答 3: IDATALEN没有被改写可以重建工程文件,会得到STARTUP.A51...
再修改IDATALEN 答 4: 我只会点这些,如下设置WAVE6000的编译器路径到KEIC的安装路径。
新建了一个空的主函数然后新建一个项目文件,主函数如下:
#include <REG51.H>
//#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
void main (void) {
}
以前听说过修改启动文件可以达到我要的效果,至于为什么IDATALEN没有被改写我是不得而知,如何重新生成工程文件那更是一窍不通了。
一切都在摸索中,还望各位老手再帮忙讲讲喽……
答 5: 那就直接修改KEIL的安装路径下的STARTUP.A51生气了就只保留KEIL的安装路径下的STARTUP.A51,其他的全部删除...
肯定会好的.... 答 6: 到底哪儿出问题了?问题叙述如下:
我把KEIL安装路径下LIB文件夹中所有的文件删除,只保留STARTUP.A51,
编译时出现报错,内容如下:
FATAL ERROR L210: I/O ERROR ON INPUT FILE:
打开项目文件夹下面的AA.M51有如下提示
(项目文件名:AA.PRJ,源程序文件名:AA.C)
EXCEPTION 0021H: PATH OR FILE NOT FOUND
FILE: C:\KEIL7.06\C51\LIB\C51S.LIB
把C51S.LIB文件还原到LIB文件夹中,可以正常编译(无报错信息),但反汇编结果如下:LJMP 0003H
MOV R0, #7FH;(这个值我在startup.a51中已经改为别的值,但不管
如何改,编译结果都没有任何变化)
CLR A
MOV @R0, A
DJNZ R0, 0006H
MOV SP, #07H
LJMP 000FH
RET
总之一句话,我怎么修改startup.a51文件,对程序编译结果没有任何的影响。
特别说明:用的WAVE的用户软件,把KEIL目录下的C51.EXE(应当是KEIL的C编译器)路径填入WAVE的编译器路径中。 答 7: 刚开始有点热情摸KEILC,怎么就那么难……打击得我快想放弃,继续*.asm了…… 答 8: 等回答……需要帮忙……
版主帮帮忙如何…… 答 9: 再顶 答 10: ~~呵呵~~~ 答 11: …… 答 12: 要把修改后的STARTUP.A51加入工程一起编译 答 13: 在WAVE中是把startup.a51加入包含文件吗?我加进去了,也不行的。
我把keil目录下的所有扩展名为A51的文件全删除掉,编译后还是那样啊。
到底怎么了……到底怎么了……
我用的是WINDOWS2000+WAVE6000+KELI7.06版本
WAVE仿真器设置:编译器路径:c:\keil7.06\c51(编译器C51.EXE的安装路径)
软件版本选的是KEIL(V5或更高版本)
仿真头选择8751 答 14: ^^^^^^^^ 答 15: 我等到花儿也谢了…… 答 16: 这个和wave有关系因为好久不用wave了
现在具体怎么解决也说不清楚
不过你可以看看wave下有没有类似的文件
如果还是不行的话
建议你不用wave,就用keil,想当年我用wave也是头痛的要死.... 答 17: 主要是习惯了WAVE的那个用户环境,……还是没能搞定…… 答 18: 我使用的环境和你一样!用QQ,或许我可以帮助你! QQ:234936220 答 19: WAVE6000与KEIL的问题请教1。在KEILC7.06环境下欲使用WAVE6000的仿真器(仿真头是PODH8X5X),按照使用说明的指导,总是提示“仿真头丢失”(串口测试正常,波特率为115200)。
2。后改为在WAVE6000环境下使用仿真器(利用其自带的DEMO程序)则正常,但新的问题又出现:我写的测试程序编译、连接均正确。但单步执行时总是跑飞(软件仿真时)。在相同的路径下,用KEILC则正常。请高手指导。
仿真环境:WAVE6000
编译器路径:KEILC7.06完全版
程序编译时,我不想产生那一段清RAM的程序,请问如何设置?
一:不产生清零作用
二:清零RAM的这段代码编译后根本不出现,也就是说如果MAIN{}为空的时候,编译结果的大小能不能和汇编一样大。
答 1: IDATALEN EQU 00H修改当前目录下的STARTUP.A51文件中的IDATALEN,使其为0
IDATALEN EQU 00H ; the length of IDATA memory in bytes.
;
XDATASTART EQU 0H ; the absolute start-address of XDATA memory
XDATALEN EQU 0H ; the length of XDATA memory in bytes.
;
PDATASTART EQU 0H ; the absolute start-address of PDATA memory
PDATALEN EQU 0H ; the length of PDATA memory in bytes.
STARTUP1:
IF IDATALEN <> 0
MOV R0,#IDATALEN - 1
CLR A
IDATALOOP: MOV @R0,A
DJNZ R0,IDATALOOP
ENDIF
答 2: 还是不行拉打开startup.a51文件,相关内容如下:
IDATALEN EQU 80H
XDATASTART EQU 0H
XDATALEN EQU 0H
PDATASTART EQU 0H
PDATALEN EQU 0H
STARTUP1:
IF IDATALEN <> 0
MOV R0,#IDATALEN - 1
CLR A
IDATALOOP: MOV @R0,A
DJNZ R0,IDATALOOP
ENDIF
修改IDATALEN EQU 80H ---》IDATALEN EQU 00H后从CPU窗口中还是看到这样的反汇编结果:
MOV R0,#7FH
CLR A
MOV @R0,A
DJNZ R0,0006H
我尝试着修改为IDATALEN EQU 01H,上面那几句依然不变化。
我删除掉
IF IDATALEN <> 0
MOV R0,#IDATALEN - 1
CLR A
IDATALOOP: MOV @R0,A
DJNZ R0,IDATALOOP
ENDIF
编译结果的大小也未发生任何变化。 答 3: IDATALEN没有被改写可以重建工程文件,会得到STARTUP.A51...
再修改IDATALEN 答 4: 我只会点这些,如下设置WAVE6000的编译器路径到KEIC的安装路径。
新建了一个空的主函数然后新建一个项目文件,主函数如下:
#include <REG51.H>
//#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
void main (void) {
}
以前听说过修改启动文件可以达到我要的效果,至于为什么IDATALEN没有被改写我是不得而知,如何重新生成工程文件那更是一窍不通了。
一切都在摸索中,还望各位老手再帮忙讲讲喽……
答 5: 那就直接修改KEIL的安装路径下的STARTUP.A51生气了就只保留KEIL的安装路径下的STARTUP.A51,其他的全部删除...
肯定会好的.... 答 6: 到底哪儿出问题了?问题叙述如下:
我把KEIL安装路径下LIB文件夹中所有的文件删除,只保留STARTUP.A51,
编译时出现报错,内容如下:
FATAL ERROR L210: I/O ERROR ON INPUT FILE:
打开项目文件夹下面的AA.M51有如下提示
(项目文件名:AA.PRJ,源程序文件名:AA.C)
EXCEPTION 0021H: PATH OR FILE NOT FOUND
FILE: C:\KEIL7.06\C51\LIB\C51S.LIB
把C51S.LIB文件还原到LIB文件夹中,可以正常编译(无报错信息),但反汇编结果如下:LJMP 0003H
MOV R0, #7FH;(这个值我在startup.a51中已经改为别的值,但不管
如何改,编译结果都没有任何变化)
CLR A
MOV @R0, A
DJNZ R0, 0006H
MOV SP, #07H
LJMP 000FH
RET
总之一句话,我怎么修改startup.a51文件,对程序编译结果没有任何的影响。
特别说明:用的WAVE的用户软件,把KEIL目录下的C51.EXE(应当是KEIL的C编译器)路径填入WAVE的编译器路径中。 答 7: 刚开始有点热情摸KEILC,怎么就那么难……打击得我快想放弃,继续*.asm了…… 答 8: 等回答……需要帮忙……
版主帮帮忙如何…… 答 9: 再顶 答 10: ~~呵呵~~~ 答 11: …… 答 12: 要把修改后的STARTUP.A51加入工程一起编译 答 13: 在WAVE中是把startup.a51加入包含文件吗?我加进去了,也不行的。
我把keil目录下的所有扩展名为A51的文件全删除掉,编译后还是那样啊。
到底怎么了……到底怎么了……
我用的是WINDOWS2000+WAVE6000+KELI7.06版本
WAVE仿真器设置:编译器路径:c:\keil7.06\c51(编译器C51.EXE的安装路径)
软件版本选的是KEIL(V5或更高版本)
仿真头选择8751 答 14: ^^^^^^^^ 答 15: 我等到花儿也谢了…… 答 16: 这个和wave有关系因为好久不用wave了
现在具体怎么解决也说不清楚
不过你可以看看wave下有没有类似的文件
如果还是不行的话
建议你不用wave,就用keil,想当年我用wave也是头痛的要死.... 答 17: 主要是习惯了WAVE的那个用户环境,……还是没能搞定…… 答 18: 我使用的环境和你一样!用QQ,或许我可以帮助你! QQ:234936220 答 19: WAVE6000与KEIL的问题请教1。在KEILC7.06环境下欲使用WAVE6000的仿真器(仿真头是PODH8X5X),按照使用说明的指导,总是提示“仿真头丢失”(串口测试正常,波特率为115200)。
2。后改为在WAVE6000环境下使用仿真器(利用其自带的DEMO程序)则正常,但新的问题又出现:我写的测试程序编译、连接均正确。但单步执行时总是跑飞(软件仿真时)。在相同的路径下,用KEILC则正常。请高手指导。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |