реклама на сайте
подробности

 
 
> SDCC
sergey sva
сообщение Aug 11 2008, 13:06
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 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
но что то мне это не чего не говорит, может кому приходилось это настраивать, помоги настроить пожалуйста.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergey sva
сообщение Aug 20 2008, 13:25
Сообщение #2


Гуру
******

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



Информацию по make и makefile, прочел вроде понятно. Вот что в доке написано, вроде так и делаю.
Цитата
While these initialization modules are meant as generic startup code there might be the need for customization.
Let’s assume the return value of _sdcc_external_startup() in crtstart.asm should not be checked (or
_sdcc_external_startup() should not be called at all). The recommended way would be to copy crtstart.asm (f.e.
from http://sdcc.svn.sourceforge.net/viewvc/*ch...vice/lib/mcs51/
crtstart.asm) into the source directory, adapt it there, then assemble it with asx8051 -plosgff 4 crtstart.asm and
when linking your project explicitely specify crtstart.rel. As a bonus a listing of the relocated object file crtstart.rst
is generated.

Вот makefile :
Код
CC=sdcc
AS=asx8051
LINKFLAGS=--model-large --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700
all: main.hex
    
main.rel: main.c
    $(CC) $(LINKFLAGS) -c main.c



crtstart.rel:  crtstart.asm
    $(AS)  -plosgff  crtstart.asm



main.hex: main.rel  crtstart.rel
    $(CC) $(LINKFLAGS) main.rel  crtstart.rel
    packihx <main.ihx>main.hex


clean:

    @del *.hex *.ihx *.lnk *.mem *.rel *.rst *.sym *.lst *.map


Все компилится получается хекс, но только просматриваю сгенерированный файл main.asm
он должен получится из двух объектных файлов main.rel crtstart.rel а там только от main.rel
может что не так сделал в макефайле ?

Сообщение отредактировал sergey sva - Aug 20 2008, 13:44
Прикрепленные файлы
Прикрепленный файл  asm.zip ( 14.16 килобайт ) Кол-во скачиваний: 33
 
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 20 2008, 16:07
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Из main.c генерится main.asm, потом он транслируется в main.rel.
А crtstart - он уже и так .asm, потому из него делается сразу crtstart.rel.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Aug 20 2008, 16:39
Сообщение #4


Гуру
******

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



Цитата(AHTOXA @ Aug 20 2008, 20:07) *
Из main.c генерится main.asm, потом он транслируется в main.rel.
А crtstart - он уже и так .asm, потому из него делается сразу crtstart.rel.


Понятно. smile.gif Еще есть проблемка в crtstart.asm Есть строка mov 0x8e , #0x10.
Записываю в регистр 0x8e значение 0x10.(Во время инициализации)
После в программе вывожу на дисплей значение этого регистра, содержание его 0x80 вместо 0x10.
функция которая выводит на дисплей работает нормально, проверял. Сегодня целый день
провозился уже не знаю где искать. Может что в hex можно увидеть.
Прикрепленные файлы
Прикрепленный файл  hex.zip ( 7.72 килобайт ) Кол-во скачиваний: 42
 
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 20 2008, 18:45
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А что это за регистр такой?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Aug 21 2008, 13:15
Сообщение #6


Гуру
******

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



Цитата(AHTOXA @ Aug 20 2008, 22:45) *
А что это за регистр такой?

Регистр AUXR в нем настраивается размер памяти XRAM 256 512 768 1024 или 1792.
Сегодня с утра посмотрел на код и сразу дошло, что на дисплее информация int а 0х10 это hex, еще в этом регистре есть бит который зарезервирован и читается как 1; поэтому записываю 0х10 а получается 0х50. Но проблема еще не решена, просто я не там искал.
Проблема вот какая: если размер XRAM превышает 256,байт , то программа зависает. На самом деле
должна работать до 1792. отрывок из документации в зипе.

makefile

Код
CC=sdcc
AS=asx8051
LINKFLAGS=--model-large --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700
all: main.hex
    
main.rel: main.c
    $(CC) $(LINKFLAGS) -c main.c



crtstart.rel:  crtstart.asm
    $(AS)  -plosgff  crtstart.asm



main.hex: main.rel  crtstart.rel
    $(CC) $(LINKFLAGS) main.rel  crtstart.rel
    packihx <main.ihx>main.hex


clean:

    @del *.hex *.ihx *.lnk *.mem *.rel *.rst *.sym *.lst *.map


main.mem
Код
Internal RAM layout:
      0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00:|0|0|0|0|0|0|0|0|a|b|b|b|b|b|b|Q|
0x10:|Q|Q| | | | | | | | | | | | | | |
0x20:|B|B|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x30:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x40:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x50:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x60:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x70:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x80:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x90:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xa0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xb0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xc0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xd0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xe0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xf0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData, S:Stack, A:Absolute

Stack starts at: 0x22 (sp set to 0x21) with 222 bytes available.

Other memory:
   Name             Start    End      Size     Max    
   ---------------- -------- -------- -------- --------
   PAGED EXT. RAM                         0      256  
   EXTERNAL RAM     0x0000   0x0151     338     1792  
   ROM/EPROM/FLASH  0x0000   0x1dd6    7639    65535

Прикрепленные файлы
Прикрепленный файл  Doc1.zip ( 308.24 килобайт ) Кол-во скачиваний: 64
 
Go to the top of the page
 
+Quote Post
SergeiCh
сообщение Aug 25 2008, 06:49
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



В документации на sdcc написано, что _sdcc_external_startup(), о которой писал AHTOXA, как раз и предназначена для инициализации памяти. Если это можно сделать на Си, зачем писать на ассемблере?
Код
int _sdcc_external_startup(void)
{
    AUXR = XRS2;
    return 0;
}


Цитата
Проблема вот какая: если размер XRAM превышает 256,байт , то программа зависает.

До main доходит, или раньше зависает?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - _Pasha   Господа! Если кому не в напряг, выложите, пожа...   Oct 28 2008, 06:50
- - gotty   Цитата(_Pasha @ Oct 28 2008, 08:50) Госпо...   Oct 28 2008, 08:01
- - _Pasha   Цитата(gotty @ Oct 28 2008, 11:01) Что мо...   Oct 28 2008, 09:50
- - 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
- - Сергей Борщ   Цитата(_Pasha @ Oct 28 2008, 12:50) Короч...   Oct 28 2008, 12:10


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01439 секунд с 7
ELECTRONIX ©2004-2016