CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

Memory allocation doubt

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
naveen13m



Joined: 01 Jun 2012
Posts: 4
Location: India

View user's profile Send private message

Memory allocation doubt
PostPosted: Sat Jun 02, 2012 7:46 am     Reply with quote

I have a PIC16F882 microcontroller and it has a program memory of 3.5kb, 128 bytes of RAM. The file LCD.c is around 14kb and if my code is around 3kb then where will this lcd.c be stored in the microcontroller if i use lcd.c in my code ?
SherpaDoug



Joined: 07 Sep 2003
Posts: 1640
Location: Cape Cod Mass USA

View user's profile Send private message

PostPosted: Sat Jun 02, 2012 9:41 am     Reply with quote

The .c code is not stored in the PIC. The .c code feeds the compiler which generates a much smaller binary image. It is this binary image which is stored in the PIC.
_________________
The search for better is endless. Instead simply find very good and get the job done.
naveen13m



Joined: 01 Jun 2012
Posts: 4
Location: India

View user's profile Send private message

PostPosted: Sat Jun 02, 2012 1:11 pm     Reply with quote

If the programmable memory is only 3.5kb can i use both ADC and LCD at the same time i.e even after creating the image, will this be sufficient?
jeremiah



Joined: 20 Jul 2010
Posts: 1345

View user's profile Send private message

PostPosted: Sat Jun 02, 2012 1:23 pm     Reply with quote

It all depends on how much of the code you use. CCS only creates code for parts that you use. The only real way to know is toss a program into the compiler, compile it, and see how much space it takes up.
Ttelmah



Joined: 11 Mar 2010
Posts: 19499

View user's profile Send private message

PostPosted: Sat Jun 02, 2012 2:51 pm     Reply with quote

Yes.
It is important to understand, that you can write one line of code, that uses several KB of actual ROM, or hundreds of lines that use just a few bytes. A single FP maths function, combining perhaps log's and sin's, can use more memory than many small PIC's have in them, but lines like defines, use no actual storage at all, till they are used, and even then only a very few bytes.
Now, the 16F882, does not have 3.5kb of memory. First, 'b' means bits, not bytes, but also the memory here is in 14bit 'words', of which it has 2048. Now to give an idea of what that can hold, I have a program, which uses flex_lcd, handles an I2C master, three ADC channels, keyboard, and a small command parser, which uses just 1881 words. 8.4KB, + 5KB, + 29.4KB + 20.7KB of source code.
However (conversely), I have another project here, which is under 4KB of source, and occupies 91000 words in the final chip.

You should be able to write a program that drives the LCD, and reads the LCD, occupying only a few hundred bytes. However switch to using complex arithmetic, and trying to print the results, and expect to have no hope at all....

Best Wishes
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group