2004-03-21 10:03 PM
2004-03-16 02:45 AM
Because I am a beginner I have some problems to use the developpement enviroment.
My 1. Project has common files like STLITE2.ASM RAM.asm TABELLEN.asm CONSTANT.INC = all const. which are PUBLIC MODULE.asm = small subroutines which are used in dif.program-modules by CALL. and program-modules like RELAIS.asm MESSWRTE.asm TAST.asm ..... e.g. in the prog.modul RELAIS.asm I have to link ST7LITE2 TABELLEN MODULE RELAIS (with INC-files ST7LITE2, CONSTANT, RAM) all files are asm befor. for asm MODULE and test all the modules I must have the same INC-files. If I asm RELAIS, I get link-error for all constants, because there are defind firht in the MODULE.obj. How can I handle this? For all help my thanks in advance Kurt2004-03-16 02:55 AM
I always use a main.asm where i define the register of the mcu, and all sub.asm like this:
include ''st72inc'' include ''define.asm'' include ''ram.asm'' include ''functies.asm'' include ''duty.asm'' include ''SCI.asm'' include ''I2C_asm.asm'' include ''string.asm'' Every *.asm start with a ENTER space [No st7/] select the ROM or RAM space End with also an ENTER space [No END] So every *.asm will be a part of the 'big' main.asm [ This message was edited by: Moppie on 16-03-2004 16:26 ]2004-03-17 01:29 AM
I am not shure what you mean with ENTER space. Is that
ENTER (car.Ret) space ENTER ? I apriciate all help how to built a project with e.g. 15 files. I would like to test diff.modules separate. Has anybody a sample-project which he can mail to me where I can see how to manage this? I have experiance with MC05 and Z86 over more than 20 projects and I never have problems like with this assembler. regards Kurt2004-03-17 04:57 AM
I have now built the firth file which exists of 6 program files. Between the program there is no ROM specification. The code is correct, but with a call instruction the SIMULATOR jmp's to the address befor, which is the end of the last module.
GEN_INIT E000 AE7E ld X,#126 ; E002 A680 ld A,#TEMP1 ; E004 CDE05A call CLR_RAM ;A=0 E007 CDE02B call INI_REG ; ..... E059 81 ret ;end of last module E05A B780 CLR_RAM ld TEMP1,A ;beginn new module the call CLR_RAM jmp's to the ret address, instead to the CLR_RAM addr. can anybody tell me why? regards Kurt2004-03-21 05:21 PM
There must be a problem in the building.
May be all your .o files do not come from the same build? Check the list file of this asm file. Has it replaced the correct address for CLR_RAM at the call instruction?2004-03-21 10:03 PM
This problem occurs at time of debugging in the Simulator. I have found a solution. For run an application in the Simulator there musst be only 1 file. Therefore I have copy all source files in one new big source file.
KurtQuote:
On 2004-03-17 18:27, Habluetzel wrote: I have now built the firth file which exists of 6 program files. Between the program there is no ROM specification. The code is correct, but with a call instruction the SIMULATOR jmp's to the address befor, which is the end of the last module. GEN_INIT E000 AE7E ld X,#126 ; E002 A680 ld A,#TEMP1 ; E004 CDE05A call CLR_RAM ;A=0 E007 CDE02B call INI_REG ; ..... E059 81 ret ;end of last module E05A B780 CLR_RAM ld TEMP1,A ;beginn new module the call CLR_RAM jmp's to the ret address, instead to the CLR_RAM addr. can anybody tell me why? regards Kurt