AnsweredAssumed Answered

STVD hangs on build

Question asked by youssefi.shahbaz on Nov 19, 2013
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.

Outcomes