[elektro] dsPIC C30 nagy konstans tömb
hg12345
hg12345 at freemail.hu
Mon May 12 07:08:59 CEST 2008
Hi!
Melyik forditót használod V3.10 vagy korábbit? Amit leírtál annak jónak
kéne lenni-e, az újabb változatban kipróbáltam
__attribute__((space(auto_psv))) char tt[150][200]={ };
Nem kiabált, de ha átléptem a 32K korlátot akkor igen.
Ha definiáltam egy másik nagy tömbböt, akkor azt is lefordította és a
linker üzent :
c:\program files\microchip\mplab c30\bin\bin\pic30-coff-ld.exe: Warning:
data initialization has been turned off, therefore section .data will not
be initialized.
c:\program files\microchip\mplab c30\bin\bin\pic30-coff-ld.exe: Error:
PSV section .const exceeds 32K bytes (actual size = 41210).
Link Error: Could not allocate program memory
De kicsi a memóriaja amire dolgozom....
Az új fordítóban erről egy teljes fejezet mesél:
6.2 MANAGED PSV POINTERS
Gyakorlatilag van egy korlát a memóriában 32K ennél nagyobb FLASH
konstans csak lapozva tud kezelni! A const alapból a C a PSVPAG
regisztettel lapozással a felső 32K-byte-ból olvassa, mintha ram-ot
olvasna.
__attribute__((space(auto_psv)))
__attribute__((space(psv)))
__attribute__((space(prog)))
>
> Sziasztok, sikerült belefutnom egy kis C problémába. Egy igen nagy
(kb.
> húszezer bájtos) konstans tömb lenne a programmemóriában:
>
> const char data[]=
> {
> //adatok felsorolása
> };
>
> Elvileg lenne bőven még hely a programmemóriában, de mégis
ekkora tömbre:
>
> Error: Not enough contiguous memory for section .const.
>
> Probálkozásaim a megoldásra: 18000 elemet sorolok fel a kapcsos
zárójelek
> között, azt még elfogadja, de ha külön csinálok hozzá mondjuk egy
2000
> eleműt úgy sem jó neki. Optimalizálással sem sikerült rávennem a
fordítót.
> Ellentétben a C18-as fordítóval itt a #pragma direktíva helyett az
> attribute-t kell használni, ha én akarom kijelölni a helyét, de a répa
meg
> sem moccan, kapok még egy warning-ot is:
>
> warning: ignoring space attribute applied to automatic...
>
> Esetleg nem lehet valahogy bináris adatként hozzálinkelni, mint egy
fájl, és
> akkor majd programmemória olvasással elintézem én? Vagy más
ötlet?
>
> Köszi,
>
> Árpi
>
>
> -----------------------------------------
> elektro[-flame|-etc]
>
_______________________________________________________
Tippelj és nyerd meg a Panasonic DVD felvevőt!
http://vasarlas.origo.hu
More information about the Elektro
mailing list