Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic 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.

Register Log in

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

Status
Not open for further replies.
N

Notty07

Guest
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.
 

stroma

Advanced Member level 4
Joined
Apr 25, 2002
Messages
114
Helped
9
Reputation
18
Reaction score
6
Trophy points
1,298
Activity points
837
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!
 

N

Notty07

Guest
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.
 

M!k

Advanced Member level 2
Joined
Apr 22, 2002
Messages
682
Helped
109
Reputation
218
Reaction score
35
Trophy points
1,308
Activity points
4,822
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
 

cheolim

Full Member level 1
Joined
Dec 3, 2002
Messages
97
Helped
3
Reputation
6
Reaction score
3
Trophy points
1,288
Activity points
873
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:
 

stroma

Advanced Member level 4
Joined
Apr 25, 2002
Messages
114
Helped
9
Reputation
18
Reaction score
6
Trophy points
1,298
Activity points
837
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.
Toggle Sidebar

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top