Отговори на тема  [ 10 мнения ] 
Pic 18F4550 къде му е другия 1 кб рам? 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение Pic 18F4550 къде му е другия 1 кб рам?
Здравейте.
Ползвам Hi-tech PICC18. За първи път се занинавам с 18-ка, та нещо не ми е съвсем ясно. За тая 18-ка пише че имала 2 кб памет. Хубаво - ама излиза че всичката свободна памет е 1024 байта - или поне тая която мога да ползвам. Искам да си направя 2 масива по 512 кб, за да чета в тах от MMC карта, обаче паметта не стига - а сякаш би трябвало да има. Ако питам MPLAB как са ресурсите - ония графики - вика памет на 50%. Компилатора вика - няма повече. Иди ги разбери...
Имам някакви съмнения че единия кбайт се отделя за USB комуникацията - ама и това не разбрах съвсем добре.
Ако някой знае да ме светне как става тая работа с паметта при 18ките, и мога ли да си ползвам целите 2кб или не, и ако може как става.

Масивите ми са описани така.
Заедно с другите работи - памет на 100 процента - ама казва че паметта е 0x400 - което си е 1кб.

unsigned char buf1[462];
unsigned char buf2[462];


Ето какво показва компилатора:

Memory Usage Map:

Program space:
CODE used E77h ( 3703) of 8000h bytes ( 11.3%)
LOWCODE used 0h ( 0) of 8000h bytes ( 0.0%)

Data space:
RAM used 1Dh ( 29) of 400h bytes ( 2.8%)
BIGRAM used 3D1h ( 977) of 400h bytes ( 95.4%)
COMRAM used 12h ( 18) of 60h bytes ( 18.8%)
NVRAM used 0h ( 0) of 100h bytes ( 0.0%)

EEPROM space:
EEDATA used 0h ( 0) of 100h bytes ( 0.0%)

External data memory:
None available


ID Location space:
IDLOC used 0h ( 0) of 8h nibbles ( 0.0%)

Configuration bits:
CONFIG used 3h ( 3) of 7h words ( 42.9%)

Summary:
Program space used E77h ( 3703) of 8000h bytes ( 11.3%)
Data space used 400h ( 1024) of 400h bytes (100.0%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
External data memory None available
ID Location space used 0h ( 0) of 8h nibbles ( 0.0%)
Configuration bits used 3h ( 3) of 7h words ( 42.9%)


Така и не разборам де ги тия 2кб рам от описанието на процесора?

Да ме извините ако питам някоя глупост - ама с 18-ки ми е сефтето... :D


Съб Авг 11, 2007 5:51 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Мързи ме да гледам сега дейта шита, ама нещо ме гложди че 1КБ беше заделен за USB фифо. Незнам дали можеше да се ползва за GPR....

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Съб Авг 11, 2007 5:57 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
5.3.1 USB RAM

Banks 4 through 7 of the data memory are actually
mapped to special dual port RAM. When the USB
module is disabled, the GPRs in these banks are used
like any other GPR in the data memory space.

Сигурно трябва да се каже на компилатора че ще се ползват като GPR за да не вади грешка.


Нед Авг 12, 2007 6:16 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Нейде нещо има.Сега ги дефинирах масивите ти в един мой проект - компилира се и дава накрая:

Build C:\Program Files\Microchip\work\speed_meter\speedmeter for device 18F4550
Using driver C:\Program Files\HI-TECH Software\PICC-18\pro\9.61\bin\picc18.exe

Executing: "C:\Program Files\HI-TECH Software\PICC-18\pro\9.61\bin\picc18.exe" -q -g --asmlist --chip=18F4550 "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s" -P --char=unsigned --cp=16 --pass1 "C:\Program Files\Microchip\work\speed_meter\speedmeter.c"
Executing: "C:\Program Files\HI-TECH Software\PICC-18\pro\9.61\bin\picc18.exe" -q -g --asmlist --chip=18F4550 "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s" -P --char=unsigned --cp=16 -ospeedmeter.cof -mspeedmeter.map speedmeter.p1

Memory Usage Map:

Program space:
CODE used 2BAh ( 698) of 8000h bytes ( 2.1%)
CONST used 0h ( 0) of 8000h bytes ( 0.0%)
SMALLCONST used 0h ( 0) of 7C00h bytes ( 0.0%)
MEDIUMCONST used 0h ( 0) of 7C00h bytes ( 0.0%)

Data space:
RAM used 0h ( 0) of 400h bytes ( 0.0%)
BIGRAM used 0h ( 0) of 400h bytes ( 0.0%)
BANK0 used 0h ( 0) of 100h bytes ( 0.0%)
BANK1 used 11h ( 17) of 100h bytes ( 6.6%)
BANK2 used 0h ( 0) of 100h bytes ( 0.0%)
BANK3 used 0h ( 0) of 100h bytes ( 0.0%)
COMRAM used 0h ( 0) of 60h bytes ( 0.0%)
NVRAM used 0h ( 0) of 100h bytes ( 0.0%)

EEPROM space:
EEDATA used 0h ( 0) of 100h bytes ( 0.0%)

ID Location space:
IDLOC used 0h ( 0) of 8h nibbles ( 0.0%)

Configuration bits:
CONFIG used 3h ( 3) of 7h words ( 42.9%)

Extra space:
SMALLCONS used Ah ( 10) of 1h unit (1000.0%)

Summary:
Program space used 2BAh ( 698) of 8000h bytes ( 2.1%)
Data space used 11h ( 17) of 400h bytes ( 1.7%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
ID Location space used 0h ( 0) of 8h nibbles ( 0.0%)
Configuration bits used 3h ( 3) of 7h words ( 42.9%)
used Ah ( 10) of 1h unit (1000.0%)

Loaded C:\Program Files\Microchip\work\speed_meter\speedmeter.cof.
И си е наред


Нед Авг 12, 2007 6:37 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
Ами четох го това аз - ама не ми стана ясно как точно трябва да му се обясни на компилатора че има още памет, а също не ми стана ясно и ДАЛИ наистина може да му се обясни на компилатора - щото никъде не видях да е споменато как става. Спомням си и че имаше някакъв текст че май ползването на тези регистри е рисковано или нещо такова - ама нали не съм много добре с английския...
Иначе проблема си го реших де - само че по малко заобиколен начин. Чета от ммц картата един сектор по 2 пъти - като пиша ту първата му половина в един буфер от 256 байта, ту втората - в зависимост от това от кой буфер ми чете плеъра в момента. Полу чи си се едно 8 битово плеърче на 8kHz - ама като гледам ще устиска и на 4 пъти повече - и то с тоя калпав начин на четене от ммц-то.

Иначе все пак е добре - ако може да разберем как точно може да се ползва и останалата памет на тоя чип - че не са много тия ПИКове дето имат по толкова памет и се намират у нас.


Нед Авг 12, 2007 6:37 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
Ама ти си ги дефинирал като const сякаш - поне от това дето виждам, щото са заели от програмната памет, а не от рама


Нед Авг 12, 2007 6:40 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
Като гледам това:

Data space used 11h ( 17) of 400h bytes ( 1.7%)

ами тя паметта и при тебе си е толкова... 0x400 си е само 1024 байта .

Маа му и компилатор...

Някъде четох къде е описано на компилатора кой чип колко има - ама не помня. Сега ще разровя... :D


Нед Авг 12, 2007 6:43 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
Вижте какво намерих: Някъде пишеше че има файл "PICC-18.ini" в който са описани чиповече с които бачка компилатора. Ето какво пише в моя, за 18F4550.

[18F4550]
MAKE=MICROCHIP
ARCH=PIC18
PROCID=4550
ROMSIZE=8000
RAMSIZE=400
COMMON=00-5F
ICD2ROM=7DC0-7FFF
ICD2RAM=3F4-3FF
PERIPH=BOOTROM@0-7FF
PERIPH=USBRAM@400-7FF
EEPROMSIZE=100
FLASH_EW=40,20
ERRATA=FASTINTS
INSTR=EXTENDED

Някой да има идеи?


Нед Авг 12, 2007 6:48 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Фев 17, 2006 9:17 am
Мнения: 765
Местоположение: Стара Загора
Мнение 
Мхм, правилно са го написали.... с тази подробност, че USB буферите могат да се ползват и като GPR при условие, че не се позва съответната крайна точка. Може би трябва да си оправиш Ini файла на ръка. Как - не ме питай, с Htech не съм наясно. Друг е въпроса че ЕП0 се ползва абсолютно винаги и това ще ти разкъса адресното пространство на 2х 1000.

Ето така е направено в CCS:



Код:
#define USB_BUFFER_NEEDED (USB_EP0_TX_SIZE+USB_EP0_RX_SIZE+USB_EP1_TX_SIZE+USB_EP1_RX_SIZE+...
+USB_EP15_TX_SIZE+USB_EP15_RX_SIZE)

#if (USB_BUFFER_NEEDED > 0x2FF)
#error You are trying to allocate more memory for endpoints than the PIC can handle
#endif

#reserve 0x400:0x500+USB_BUFFER_NEEDED



Пон Авг 13, 2007 9:49 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
Готово - проблема е решен!
Благодарение на насоките дадени от колегите и малко ровене в документацията на компилатора се стигна до следното решение:

На тоя процесор паметта му е разделена на 2 части "default" и "USBRAM".
За да може компилатора да ползва и двете, в:
MPLAB->Project->Build Options...->Project -> TAB:PICC-18 Linker трябва да изберете отметката "Use Alternate Settings" и в края на реда да добавите "--RAM=default,+USBRAM" без кавичките. ... И ГОТОВО. Вече компилатора знае че може да ползва и останалата част от RAM паметта.

Ето какво показва вече с дефинирани 2 масива по 512 байта - което преди въобще не можеше да стане:

Memory Usage Map:

Program space:
CODE used 13A7h ( 5031) of 8000h bytes ( 15.4%)
LOWCODE used 0h ( 0) of 8000h bytes ( 0.0%)

Data space:
RAM used 45h ( 69) of 800h bytes ( 3.4%)
BIGRAM used 43Ch ( 1084) of 800h bytes ( 52.9%)
COMRAM used 12h ( 18) of 60h bytes ( 18.8%)
NVRAM used 0h ( 0) of 100h bytes ( 0.0%)

EEPROM space:
EEDATA used 0h ( 0) of 100h bytes ( 0.0%)

External data memory:
None available

ID Location space:
IDLOC used 0h ( 0) of 8h nibbles ( 0.0%)

Configuration bits:
CONFIG used 3h ( 3) of 7h words ( 42.9%)

Summary:
Program space used 13A7h ( 5031) of 8000h bytes ( 15.4%)
Data space used 493h ( 1171) of 800h bytes ( 57.2%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
External data memory None available

ID Location space used 0h ( 0) of 8h nibbles ( 0.0%)
Configuration bits used 3h ( 3) of 7h words ( 42.9%)

Успех на всички! :wink:


Пон Авг 13, 2007 11:08 am
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 10 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни