Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Help me please. Can't compile hitech picc.

Status
Not open for further replies.
N

Notty07

Guest
Newbie level 1
Hi

I have some ploblem I can't compile with hitech picc.
It tell me not enough memory in bank0.
Because I use memory over 96byte.
How I can do it for use memory in another bank.

(I use picc8.01pl3 and mplab6.10)

Thank you.
 

Go to hts0ft suppport forum

**broken link removed**

And place you problem there .
 

hi fullmoon,
i don't know what is the type of pic you use but you probably have to place a bank# modifier in front of var, i.e.

bank3 unsigned char myarray[80]; // this array will be placed in bank3 of pic /i.e. 16f877/

see also and hi-tech picc manual!
Best regards!
 

Hi Stroma

I use pic16f877 .
I declare float data[100];
After build it show this message

Executing: C:\HT-PIC\bin\picc.exe -Q -MPLAB -C -16F877 tt.c -Ott.obj -Ett.cce -G
Executing: C:\HT-PIC\bin\picc.exe -Q -MPLAB -16F877 E:\test\tt.obj -Ett.lde -Ott.hex
Error[000] : Can't find 0x12C words for psect rbss_0 in segment BANK0
BUILD FAILED

How I can do.
 

Sorry, but you can't declare an array of 100 Bytes. Take a look at the datasheet (memory organization): in bank 0 there are only 96 Bytes for usage, in bank 1, 2 or 3 only 80 Bytes. You have to split your array in different banks. For float-variables there are 3 Bytes per value needed, so for your problem there are 300 Bytes needed. Split them in 4 banks (4 * 75 Bytes).


Mik
 

Hi fullmoon,

I cannot be sure, it'll be proper for your problem.
According my earler experience with PIC12xxx and PIC16xxx.

1st possible method is :
If you want a kind of look-up table, you can declare your array on
ROM or FLASH area using the instruction of const or flash.

2nd possible method is :
If you can change your source somewhat, change your array from 1X100
to aXb e.g. 2X50, 4X25 etc.

I hope to you can solve your problem with above, if those can applied.

Good luck.
:roll:
 

Hi fullmoon,

Probably you can’t declare such BIG array of data in one ram bank. If you _really_ need float number array, try to split it in different banks or choose pic18Fxxx.

Best regards.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top