Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 25.05.2014, 17:02  
Da1VeR
Прохожий
 
Регистрация: 15.11.2007
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Da1VeR на пути к лучшему
Вопрос Проблема с компилированием PIC16F88 (ASM)

При компилировании получаю такую ошибку:

//-----------------------------------------------------------------------------------
MPASMWIN.exe /e"./main.err" /l"./main.lst" /o"main.o" /q- /p16f88 "..\main.asm"
mplink.exe /p16f88 /o "./Release.cof" "main.o"
MPLINK 4.42, Linker
Device Database Version 1.7
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000000, length=0x00001d88
Errors : 1
//-----------------------------------------------------------------------------------

Программа начинается с 0x00000000 и заканчивается 0x00001d88
По адресу 0x002100 идет eeprom... Не могу понять, чего он ругается ?
Притом что объектный файл делается нормально, а вот HEX - выдает ошибку...
Побывал и в Протеусе и в МПлабе - всюду одно и тоже (((

Код программы:
Вложения:
Тип файла: txt PIC16F88_asm.txt (153.8 Кб, 68 просмотров)
Реклама:

Последний раз редактировалось Da1VeR; 25.05.2014 в 18:31.
Da1VeR вне форума  
Непрочитано 25.05.2014, 17:39  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

Размер флеш-памяти PIC16F88 меньше, чем размер программы.
Yurkin2014 вне форума  
Непрочитано 25.05.2014, 17:54  
Da1VeR
Прохожий
 
Регистрация: 15.11.2007
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Da1VeR на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

Сообщение от Yurkin2014 Посмотреть сообщение
Размер флеш-памяти PIC16F88 меньше, чем размер программы.
Да в общем-то быть такого не может, данный код вытянут с дисассеблера прошивки для PIC16F88... мне нужно одну функцию добавить...
Но до этого вначале данный код нужно запустить...

Да и при переносе на PIC16F887 (у которого в 2 раза больше места под программу) вылазит та же ошибка ...... хотя по линку - вроде все должно влазить...

Код:
// File: 16f887_g.lkr
// Generic linker script for the PIC16F887 processor

LIBPATH .

CODEPAGE   NAME=page0      START=0x0               END=0x7FF                    
CODEPAGE   NAME=page1      START=0x800             END=0xFFF                    
CODEPAGE   NAME=page2      START=0x1000            END=0x17FF                   
CODEPAGE   NAME=page3      START=0x1800            END=0x1FFF                   
CODEPAGE   NAME=eedata     START=0x2100            END=0x21FF         PROTECTED

Последний раз редактировалось Da1VeR; 25.05.2014 в 18:23.
Da1VeR вне форума  
Непрочитано 25.05.2014, 21:04  
Sergey_57
Вид на жительство
 
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
Sergey_57 на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

В своё время достала эта ошибка , когда начинал.
Программа у вас странная по организации.
END в конце не стоитдо кучи.
C ORG разберитесь.
Я в своё время подправил линкер для себя , у других тоже не шло.
Sergey_57 вне форума  
Непрочитано 25.05.2014, 21:16  
Da1VeR
Прохожий
 
Регистрация: 15.11.2007
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Da1VeR на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

Сообщение от Sergey_57 Посмотреть сообщение
В своё время достала эта ошибка , когда начинал.
Программа у вас странная по организации.
END в конце не стоитдо кучи.
C ORG разберитесь.
Я в своё время подправил линкер для себя , у других тоже не шло.
END в конце есть:

Код:
L_0EC0:
	sleep
	bsf		PCLATH,3
	goto		L_0EC0

end
ORG всего 2 штуки, один указывающий запись eeprom "org 0x002100", и один указывающий на начало самого кода "org 0x000000"..

Код:
; Eeprom memory dump
	org	0x002100
	de	0x04,0x04,0x04,0x1F,0x04,0x04,0x04,0x04
	de	0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00
	de	0x0E,0x1F,0x11,0x11,0x11,0x11,0x11,0x1F
	de	0x0E,0x1F,0x11,0x11,0x11,0x11,0x1F,0x1F
	de	0x0E,0x1F,0x11,0x11,0x11,0x1F,0x1F,0x1F
	de	0x0E,0x1F,0x11,0x11,0x1F,0x1F,0x1F,0x1F
	de	0x0E,0x1F,0x11,0x1F,0x1F,0x1F,0x1F,0x1F
	de	0x0E,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F

	org	0x000000
ResetVector:
	clrf		REG032
	goto		L_015A
L_0002:
	movwf		REG028
	andlw		0xF8		;b'1111 1000','ø',.248
HighInterruptVector:
	movwf		REG020
	rrf		REG020,F
	rrf		REG020,F
	rrf		REG020,W
	addwf		FSR,F
	call		L_0082
	movwf		REG028
	andwf		INDF,W
	return
А как линкер подправить? А то при компиляции все в порядке, объектный файл создается, а вот когда линковка идет уже в HEX то вылетает такая проблема.
Da1VeR вне форума  
Непрочитано 25.05.2014, 21:51  
Sergey_57
Вид на жительство
 
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
Sergey_57 на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

Код:
RESET_VECTOR
 		CODE   0x0000           ; processor reset vector
                nop                             ; nop required for icd
         GOTO    INIT            ; go to beginning of program
 ORG 0x004
               MOVWF    WTEMP            ; save off current W register contents
               SWAPF    STATUS ,0         ; move status register into W register
			   CLRF		STATUS
               MOVWF   STEMP  	
			   MOVF		PCLATH,0
               MOVWF   PCTEMP
			   BCF		PCLATH,3
               MOVF    FSR,    0
               MOVWF   FTEMP
               BCF     STATUS,5  
			   GOTO INT10

 ORG    0x15
;------------ interrupt vector location----------------------------
INT10


      
;---------------------------------------------------------------------
               BTFSC   INTCON,1
               GOTO    S1;         INT
               BTFSC   INTCON,2
               GOTO    S2;         TMR0
               BTFSC   PIR1,0
               GOTO    S3;         TMR1
               BTFSC   PIR1,1
               GOTO    S4;         TMR2
;----------------------------------------------------------------------
Код:
// Sample linker command file for 16F873
// $Id: 16f873a.lkr,v 1.4 2006/02/04 00:06:40 nairnj Exp $

LIBPATH  .

CODEPAGE   NAME=vectors  START=0x0      END=0x14     PROTECTED
CODEPAGE   NAME=page0    START=0x15      END=0x7FF
CODEPAGE   NAME=page1    START=0x800    END=0xFFF
CODEPAGE   NAME=.idlocs  START=0x2000   END=0x2003   PROTECTED
CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
CODEPAGE   NAME=eedata   START=0x2100   END=0x217F   PROTECTED

DATABANK   NAME=sfr0     START=0x0      END=0x1F     PROTECTED
DATABANK   NAME=sfr1     START=0x80     END=0x9F     PROTECTED
DATABANK   NAME=sfr2     START=0x100    END=0x10F    PROTECTED
DATABANK   NAME=sfr3     START=0x180    END=0x18F    PROTECTED

SHAREBANK   NAME=gpr0     START=0x20     END=0x7F
SHAREBANK   NAME=gpr0     START=0x120    END=0x17F

SHAREBANK   NAME=gpr1     START=0xA0     END=0xFF
SHAREBANK   NAME=gpr1     START=0x1A0    END=0x1FF
Sergey_57 вне форума  
Сказали "Спасибо" Sergey_57
Da1VeR (25.05.2014)
Непрочитано 25.05.2014, 22:00  
Da1VeR
Прохожий
 
Регистрация: 15.11.2007
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Da1VeR на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

Извиняюсь за не столь великие познания, а что именно нужно править?

Можете посмотреть файлы?
Вложения:
Тип файла: txt 16f88_g.lkr.txt (3.0 Кб, 36 просмотров)
Тип файла: txt main.asm.txt (76.9 Кб, 28 просмотров)
Тип файла: txt 16f887_g.lkr.txt (3.3 Кб, 44 просмотров)

Последний раз редактировалось Da1VeR; 25.05.2014 в 22:17.
Da1VeR вне форума  
Непрочитано 25.05.2014, 22:42  
Sergey_57
Вид на жительство
 
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
Sergey_57 на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

Цитата:
start=0x00000000, length=0x00001d88
а у вас страница 7FF в линкере указана.
потому и орёт.
Цитата:
CODEPAGE NAME=page0 START=0x0 END=0x7FF

#IFDEF _DEBUGCODESTART
CODEPAGE NAME=page1 START=0x800 END=_CODEEND
Не увидел переключения страниц.
Sergey_57 вне форума  
Непрочитано 26.05.2014, 01:14  
maxx_kazus
Частый гость
 
Регистрация: 19.10.2006
Адрес: te.ua
Сообщений: 12
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
maxx_kazus на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

у меня Ваш "исходник" скомпилировался сразу (в MPLAB 8.92):

Цитата:
MPLINK 4.49, Linker
Device Database Version 1.14
Copyright (c) 1998-2011 Microchip Technology Inc.
Errors : 0

Loaded C:\Users\maxx\Desktop\tst_16f88\tst.cof.
----------------------------------------------------------------------
Debug build of project `C:\Users\maxx\Desktop\tst_16f88\tst.mcp' succeeded.
Language tool versions: MPASMWIN.exe v5.51, mplink.exe v4.49, mplib.exe v4.49
Preprocessor symbol `__DEBUG' is defined.
Mon May 26 00:05:05 2014
----------------------------------------------------------------------
BUILD SUCCEEDED


http://ww1.microchip.com/downloads/e...B_IDE_8_92.zip

Последний раз редактировалось maxx_kazus; 26.05.2014 в 18:08.
maxx_kazus вне форума  
Непрочитано 26.05.2014, 10:14  
Sergey_57
Вид на жительство
 
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
Sergey_57 на пути к лучшему
По умолчанию Re: Проблема с компилированием PIC16F88 (ASM)

Всё правильно.
Надо просить у maxx_kazus линкер.
С Вашими проблемы.
С этим ПИК не работал . Но принцип Вашей беды понятен.
Но так просто в линкер влезать нельзя.
Код:
start=0x00000000, length=0x00001d88
К примеру изменить в секции 7FF на 1FFF у вас всё прокатит,
но не факт что заработает. Надо знать организацию памяти и если выходит за область страницы то и переключать страницы.
Линкер следит за структурой программы в том числе.
Давно уже с Си.
И всё себя ругаю почему не сделал раньше.
Sergey_57 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VGA-кабель 10 м и проблема в Linux Chay_Nik Видеотехника 19 08.01.2012 17:54
Проблема с правым фронтом на 5.1 djen Аудиотехника 7 29.05.2011 15:19
HEX из ASM файла, как? ludovikIV Цифровые сигнальные процессоры 1 31.10.2008 19:27
I2C, WinAVR и at90s2313 Hoksmur Микроконтроллеры, АЦП, память и т.д 22 04.09.2007 01:14
Проблема при запуске uc3855 Marlboro Источники питания и свет 0 19.07.2005 13:52


Часовой пояс GMT +4, время: 06:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot