|
SDCC |
|
|
|
Aug 11 2008, 13:06
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Сейчас пишу програмку для мк 89с51ed2, память у него конфигурируется в регистре AUXR и может быть 768 1024 1792. Когда писал программу под KEIL там был файл Startup.asm в нем после метки Startup: можно было настроить все что нужно. В SDCC файл есть main.asm но если в него добавить что то то, после компиляции все равно будет сгенерирован новый main.asm а этот заменяется. на сайте sdcc есть что то по настройке, startup http://sdcc.sourceforge.net/doc/sdccman.html/node78.htmlно что то мне это не чего не говорит, может кому приходилось это настраивать, помоги настроить пожалуйста.
|
|
|
|
|
 |
Ответов
|
Oct 28 2008, 08:01
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045

|
Цитата(_Pasha @ Oct 28 2008, 08:50)  Господа! Если кому не в напряг, выложите, пожалуйста, пример makefile для SDCC с прикручиванием его к MPLAB. А то какой-то капризный этот mpasmwin... Что может быть проще. Берите пример проекта в MPLAB-е и экспортируйте мейкфайл. Код # MPLAB IDE generated this makefile for use with GNU make. # Project: MCHPUSB.mcp # Date: Tue Oct 28 09:57:19 2008
AS = mpasmwin.exe CC = mcc18.exe LD = mplink.exe AR = mplib.exe RM = rm
MCHPUSB.cof : usbmmap.o usbdrv.o usb9.o usbdsc.o usbctrltrf.o user.o cdc.o crc.o settings.o cmd.o time.o ftoa.o history.o main_usb.o flash.o btobcd.o itobcd.o ltobcd.o button_lang.o Calculation_DER_DE.o lcd.o main.o menu.o menu_lang.o mkstr.o sound.o StateParent.o t1read.o t1write.o t3write.o upvv.o sysparams.o _time.o $(LD) /p18F67J50 /l"C:\MCC18\lib" /k"C:\MCC18\lkr" "usbmmap.o" "usbdrv.o" "usb9.o" "usbdsc.o" "usbctrltrf.o" "user.o" "cdc.o" "crc.o" "settings.o" "cmd.o" "time.o" "ftoa.o" "history.o" "main_usb.o" "flash.o" "btobcd.o" "itobcd.o" "ltobcd.o" "button_lang.o" "Calculation_DER_DE.o" "lcd.o" "main.o" "menu.o" "menu_lang.o" "mkstr.o" "sound.o" "StateParent.o" "t1read.o" "t1write.o" "t3write.o" "upvv.o" "sysparams.o" "_time.o" /u_CRUNTIME /u_DEBUG /u_DEBUGDATASTART=0xef4 /u_DEBUGDATALEN=0xc /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /z__MPLAB_DEBUGGER_ICD2=1 /z__ICD2RAM=1 /m"MCHPUSB.map" /w /o"MCHPUSB.cof"
usbmmap.o : system/usb/usbmmap.c system/usb/class/cdc/cdc.h system/usb/usbdrv/usbdrv.h system/usb/usbmmap.c system/typedefs.h system/usb/usb.h autofiles/usbcfg.h system/usb/usbdefs/usbdefs_std_dsc.h autofiles/usbdsc.h system/usb/usbdefs/usbdefs_ep0_buff.h system/usb/usbmmap.h system/usb/usbctrltrf/usbctrltrf.h system/usb/usb9/usb9.h $(CC) -p=18F67J50 /i"C:\MCC18\h" "system\usb\usbmmap.c" -fo="usbmmap.o" -D__DEBUG -k -mL -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
.......
clean : $(RM) "usbmmap.o" "usbdrv.o" "usb9.o" "usbdsc.o" "usbctrltrf.o" "user.o" "cdc.o" "crc.o" "settings.o" "cmd.o" "time.o" "ftoa.o" "history.o" "main_usb.o" "flash.o" "btobcd.o" "btobcd.ERR" "btobcd.lst" "itobcd.o" "itobcd.ERR" "itobcd.lst" "ltobcd.o" "ltobcd.ERR" "ltobcd.lst" "button_lang.o" "Calculation_DER_DE.o" "lcd.o" "main.o" "menu.o" "menu_lang.o" "mkstr.o" "sound.o" "StateParent.o" "t1read.o" "t1write.o" "t3write.o" "upvv.o" "sysparams.o" "_time.o" "MCHPUSB.cof" "MCHPUSB.hex" "MCHPUSB.map"
|
|
|
|
|
Oct 28 2008, 09:50
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(gotty @ Oct 28 2008, 11:01)  Что может быть проще. Берите пример проекта в MPLAB-е и экспортируйте мейкфайл. У меня после компилера SDCC получается асмовый файл. Далее - асм и линкер мплабовский. Проблема в том, что я выдрал где-то такой файл, и начал его переделывать Код PIC = 18f2431
NAME = MControl PRJDIR = $(CURDIR) SDCCDIR = C:/sdcc
SRC = main.c SRCASM = INCLUDE = -I$(SDCCDIR)/include/pic16
CC = $(SDCCDIR)/bin/sdcc ASM = "C:/Program Files/Microchip/MPASM Suite/"mpasmwin.exe LOAD = # #Note : rewrited for use with mpasmwin in command line mode #ASMFLAGS = -c ASMFLAGS = /c+ /m+ /o+ CFLAGS = -mpic16 -p$(PIC) LDFLAGS = $(CFLAGS) -l libc18f.lib OBJS = $(patsubst %.c,%.o,$(SRC)) $(patsubst %.asm,%.o,$(SRCASM)) LSTS = $(patsubst %.c,%.lst,$(SRC)) $(patsubst %.asm,%.lst,$(SRCASM)) ASMS = $(patsubst %.c,%.asm,$(SRC))
all: $(NAME).hex
$(NAME).hex : $(OBJS) $(SRC) $(SRCASM) @echo -n "Linking ... " @$(CC) -o $@ $(LDFLAGS) $(OBJS) @ls -l $@ @echo "done"
%.o: %.asm @echo "Assembling ... $<" $(ASM) $(ASMFLAGS) $(PRJDIR)/$<
%.o: %.c @echo "Compiling ... $<" @$(CC) $(INCLUDE) $(CFLAGS) -S -c $< @$(ASM) $(ASMFLAGS) $*.asm
clean : @rm -f $(ASMS) $(LSTS) $(OBJS) $(NAME).lst $(NAME).hex $(NAME).cod За линкер просьба не пинать - я до него еще не дошел. Короче, при вызове $(ASM) $(ASMFLAGS) $(PRJDIR)/$< ,mpasmwin получает в командную строку путь $(PRJDIR) в линуксоидном формате и начинает рассказывать, что файл не найден. Попытка заставить асм взять файл из текущей директории - те же яйца. В общем, только с полными путями. Как проще всего слеши поменять ?
|
|
|
|
|
Oct 28 2008, 12:10
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(_Pasha @ Oct 28 2008, 12:50)  Короче, при вызове $(ASM) $(ASMFLAGS) $(PRJDIR)/$< ,mpasmwin получает в командную строку путь $(PRJDIR) в линуксоидном формате Это проблема с вашим make. Точнее, скорее всего у вас make от cygwin. Возьмите свежий со странички MSYS - у него с путями порядок. Цитата(gotty @ Oct 28 2008, 14:06)  А может имеет смысл использовать все инструменты из одного комплекта? Я использовал sdcc в связке с gputils. Формат исходника и командной строки для ассемблера из gputils отличается от ассемблера mplab. Если не изменянет память, sdcc имеет специальный ключ для генерации файла под mpasm.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
sergey sva SDCC Aug 11 2008, 13:06 AHTOXA Там же в конце написано:
ЦитатаThe recommended way... Aug 11 2008, 13:47 sergey sva скопировал crtasm.asm в директорию source, добав... Aug 11 2008, 15:01 AHTOXA Цитата(sergey sva @ Aug 11 2008, 21:01) В... Aug 11 2008, 16:05  sergey sva Цитата(AHTOXA @ Aug 11 2008, 20:05) Вы та... Aug 11 2008, 16:12 sergey sva Информацию по make и makefile, прочел вроде понятн... Aug 20 2008, 13:25 AHTOXA Из main.c генерится main.asm, потом он транслирует... Aug 20 2008, 16:07  sergey sva Цитата(AHTOXA @ Aug 20 2008, 20:07) Из ma... Aug 20 2008, 16:39   AHTOXA А что это за регистр такой? Aug 20 2008, 18:45    sergey sva Цитата(AHTOXA @ Aug 20 2008, 22:45) А что... Aug 21 2008, 13:15     SergeiCh В документации на sdcc написано, что _sdcc_externa... Aug 25 2008, 06:49   gotty Цитата(_Pasha @ Oct 28 2008, 11:50) У мен... Oct 28 2008, 11:06    _Pasha Цитата(gotty @ Oct 28 2008, 14:06) А може... Oct 28 2008, 12:48     Сергей Борщ Цитата(_Pasha @ Oct 28 2008, 15:48) Я вкл... Oct 28 2008, 12:54      gotty У меня складывается впечатление что MPLAB не испол... Oct 28 2008, 13:45      _Pasha Цитата(Сергей Борщ @ Oct 28 2008, 15:54) ... Oct 28 2008, 14:20
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|