2013-11-19 09:21 AM
I have encountered an issue with STVD which is persistent also in the latest version (4.3.4). The issue seems to be pre-compilation (my guess would be generation of the project.lkf file), but I'll get to it in a moment.
I am using Windows 7 (64-bits) and am using the COSMIC compiler. The version report from COSMIC is: ------------------------------------- COSMIC STM8 C Compiler Evaluation Kit Version: 4.3.7 Date: 29 Nov 2011 ------------------------------------- COSMIC Software STM8 C Cross Compiler (LIMITED) V4.3.7 - 29 Nov 2011 - Win32 COSMIC Software STM8 C Parser (LIMITED) V4.10.2 - 02 Nov 2011 - Win32 COSMIC Software STM8 Code Generator (LIMITED) V4.3.7 - 29 Nov 2011 - Win32 COSMIC Software STM8 Optimizer V4.3.6 - 29 Nov 2011 - Win32 COSMIC Software STM8 Macro-Assembler (LIMITED) V4.6.22 - 04 Aug 2011 - Win32 COSMIC Software Linker (LIMITED) V4.9.3 - 15 Feb 2012 - Win32 COSMIC Software Hexa Translator V4.4.7 - 23 May 2011 - Win32 COSMIC Software Absolute Listing V4.4.7 - 23 May 2011 - Win32 COSMIC Software Absolute C Listing V4.4.7 - 23 May 2011 - Win32 COSMIC Software Object Inspector V4.4.7 - 23 May 2011 - Win32 COSMIC Software Print Debug Info V4.4.7 - 23 May 2011 - Win32 COSMIC Software Extract Tiny Attribute V4.4.7 - 23 May 2011 - Win32 COSMIC Software ELF/DWARF Converter V4.6.15 - 05 Jul 2012 - Win32 The problem arises when I build the project. STVD becomes non-responsive and nothing happens. There doesn't seem to be any problem with the compilation stage since compiling individual files work ok. The problem is specifically related to manual creation of code segments. In my project.stp file, I have defined the segments as follows: [Root.Config.1.Settings.6] String.2.0=Running Linker String.3.0=clnk $(ToolsetLibOpts) -o $(OutputPath)$(TargetSName).sm8 -fakeOutFile$(ProjectSFile).elf -fakeRunConv -fakeStartupcrtsi0.sm8 -fakeVectFilestm8_interrupt_vector.c -fakeVectAddr0x8000 -customMapAddress -customCfgFile$(OutputPath)$(TargetSName).lkf String.3.1=cvdwarf $(OutputPath)$(TargetSName).sm8 String.4.0=$(OutputPath)$(TargetFName) String.5.0=$(OutputPath)$(ProjectSFile).elf String.6.0=2013,11,5,17,24,29 String.100.0= String.101.0=crtsi.st7 String.102.0=+seg .text -b 0x9000 -m 0x0f00 -n .text String.102.1=+seg .const -a .text -n .const -it String.102.2=+seg .spiint -b 0x9f20 -m 0x0008 -n .spiint String.102.3=+seg .cdcint -b 0x9f38 -m 0x0008 -n .cdcint String.102.4=+seg .eeprom -b 0x4000 -m 0x80 -n .eeprom String.102.5=+seg .bsct -b 0x0 -m 0x100 -n .bsct String.102.6=+seg .ubsct -a .bsct -n .ubsct String.102.7=+seg .bit -a .ubsct -n .bit -id String.102.8=+seg .share -a .bit -n .share -is String.102.9=+seg .data -b 0x100 -m 0x100 -n .data String.102.10=+seg .bss -a .data -n .bss String.102.11=+seg .FLASH_CODE -a .bss -n bootcode -ic String.103.0=Code,Constants[0x9000-0x9eff]=.const,.text String.103.1=Interrupts[0x9f00-0x9fff]=.spiint,.cdcint String.103.2=Eeprom[0x4000-0x407f]=.eeprom String.103.3=Zero Page[0x0-0xff]=.bsct,.ubsct,.bit,.share String.103.4=Ram[0x100-0x1ff]=.data,.bss String.104.0=0x3ff String.105.0=libm0.sm8 Int.0=0 Int.1=0 Before I introduced the .spiint section, there was no problem. After adding it, when I tell STVD to build the project, it simply becomes non-responsive and I have to force close it. Adding more sections shows the same behavior. The only observation I could make is that the Release\project.lkf file does not get created before STVD hangs. I have to specifically place the interrupt handlers in certain locations (so I don't overwrite the interrupt vector during bootload) and that's why I need a section for each interrupt. I would very much appreciate it if you could shed some light on why this happens and how I can avoid it. Do let me know if you need me to provide further details. #stvd