Jump to content

    
Sign in to follow this  
Digi

SDCC и таблица вектора

Recommended Posts

Пытаюсь скомпилировать программу в SDCC для FX2 контроллера (MSC51), но столкнулся с проблемой. При подключении файла vectors.asm ассемблер не может найти функцию s_GSINIT. 

SDCC 4.0.0

До этого с такой связкой ни разу не работал. Буду рад если поделитесь примером проекта для связки Eclipse и SDCC. Возможно что что то не  так настроил. 

Компилирую из под ECLIPSE , для asm файлов используется sdas8051 

Ошибка такая:

Building file: ../src/asm/vectors.asm
Invoking: SDCC Assembler
sdas8051 -l -o "src/asm/vectors.rel" "../src/asm/vectors.asm"
removing src/asm/vectors.rel
../src/asm/vectors.asm:43: Error: <u> undefined symbol encountered during assembly
make: *** [src/asm/vectors.rel] Error 2

 

	.module vectors

;;; ----------------------------------------------------------------
;;;		  standard FX2 interrupt vectors
;;; ----------------------------------------------------------------
	.area CSEG (CODE)
	.area GSINIT (CODE)
	.area CSEG (CODE)
__standard_interrupt_vector::
__reset_vector::
	ljmp	s_GSINIT
	
	;; 13 8-byte entries.  We point them all at __isr_nop
	ljmp	__isr_nop	; 3 bytes
	.ds	5		; + 5 = 8 bytes for vector slot
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5
	ljmp	__isr_nop
	.ds	5

__isr_nop::
	reti

;;; ----------------------------------------------------------------
;;; the FIFO/GPIF autovector.  14 4-byte entries.
;;; must start on a 128 byte boundary.
;;; ----------------------------------------------------------------
	
	. = __reset_vector + 0x0080
		
__fifo_gpif_autovector::
	ljmp	__isr_nop
	nop	  

 

Share this post


Link to post
Share on other sites

Вопрос снят. Объявил s_GSINIT как внешнюю и всё заработало.  Уж не знаю, почему у меня её пришлось объявлять, но во всех других примерах дополнительного объявления не требовалось. 


		.globl	s_GSINIT

__standard_interrupt_vector::
__reset_vector::

	ljmp	s_GSINIT

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this