Go Down

Topic: More than 256K of memory? (Read 3783 times) previous topic - next topic

Caseyg

I am planning on a project that I think will end up taking quite a bit of code. Primarily I am looking to create a way to remotely control and monitor my commercial espresso machine and was hoping to make it stand alone. I don't want to have a computer running for it to serve up all of the information about the machine.
Is there a way to store my large (presumably) code base on a flash device? I am not talking strings and such, but large amounts of logic/code itself that would bring my code base past 256K. I have been looking for samples and howtos, but either there are none out there or i am using the wrong search terms. Any guidance would be much appreciated.

Nick Gammon

I can't think offhand what you would run to control an espresso machine that would require more than 256 Kb of program memory. The architecture (Harvard) does not allow code to be loaded from external devices, such as SD cards.

However people are making quite complex things, like quadcopters, and robots, using quite small amounts of program memory.

If you simply can't fit your code into 256 Kb, you might look at another processor. The Arduino Due for example has 512 Kb of program memory.

http://arduino.cc/en/Main/ArduinoBoardDue

Bear in mind that early PCs (eg. Apple, Apple Mac) shipped with less than 256 Kb of memory.

From Wikipedia:

Quote

IBM sold the first IBM PCs in configurations with 16 or 64 kB of RAM preinstalled using either nine or thirty-six 16-kilobit DRAM chips. ... After the IBM XT shipped, the IBM PC motherboard was configured more like the XTs motherboard with 8 narrower slots, as well as the same RAM configuration as the IBM XT. ( 64 kB in one bank, expandable to 256kB by populating the other 3 banks ).


It's hard to believe that one dedicated device (a coffee machine) would need more memory than you got on the original IBM PC.
Please post technical questions on the forum, not by personal message. Thanks!

More info:
http://www.gammon.com.au/electronics

fungus


I am planning on a project that I think will end up taking quite a bit of code. Primarily I am looking to create a way to remotely control and monitor my commercial espresso machine and was hoping to make it stand alone. I don't want to have a computer running for it to serve up all of the information about the machine.
Is there a way to store my large (presumably) code base on a flash device? I am not talking strings and such, but large amounts of logic/code itself that would bring my code base past 256K. I have been looking for samples and howtos, but either there are none out there or i am using the wrong search terms. Any guidance would be much appreciated.


I have a hard time imagining an espresso machine needs more than a couple of K of code to monitor.

Maybe you can flesh out your plan. What values need to be monitored? How do you want to access the information?
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

Grumpy_Mike

If you run bitlash, you can pull the code from the SD card.
Bitlash is an interpretive version of the arduino commands, google for it.

Retroplayer

If I had to take a guess, I would say the OP probably is thinking of storing stuff like the webpages, etc.. in the main flash. Actual code, I couldn't imagine many projects that would need more than 256K. So, if it data (audio, graphics, HTML, etc...) that will be filling up your memory, move that stuff to some external memory.

Grumpy_Mike


If I had to take a guess, I would say the OP probably is thinking of storing stuff like the webpages, etc.. in the main flash. Actual code, I couldn't imagine many projects that would need more than 256K. So, if it data (audio, graphics, HTML, etc...) that will be filling up your memory, move that stuff to some external memory.


Well he did say
Quote
I am not talking strings and such, but large amounts of logic/code itself that would bring my code base past 256

Docedison

Unfortunately.. he didn't say much else.

Bob
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Tom Carpenter

Do you know it is going to be larger than 256K, or are you just making a wild guess? Just as an example, it is possible to make an entire MP3 player in 90k of Flash, and that was over 15000 lines of code...
~Tom~

Nick Gammon

Better let the OP respond. :)

Haven't heard a word since the original post.
Please post technical questions on the forum, not by personal message. Thanks!

More info:
http://www.gammon.com.au/electronics

fungus


Better let the OP respond. :)

Haven't heard a word since the original post.


He's probably waiting for the 8-CPU, 4-terabyte RAID, 32GB RAM workstation needed to run the Arduino IDE.  :)
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

Docedison

Gee alla that...? I have an instance running on a 1GHz 1GB Dell D610 laptop... It works fine, Windows 7 Ultimate, though is horribly slow.. I just wanted to see If I could make it work and one more time proved that there are pieces of code too big for a machine... An Expresso Machine?... Does it grow the beans too? I can see where duplicating the environment 'might' require some extra code... but more than 256K?

Bob
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

fungus

I've written a complete Space Invaders game with VGA graphics and sampled sound on an Arduino Uno. I doubt a coffee machine needs that much.
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

Nick Gammon

Since we are pressing on without the pleasure of the company of the OP, I was reading yesterday about how one of the first gaming consoles (or devices anyway) only had 128 bytes of RAM, because it was so expensive. It might have been Pong. So each frame refresh, the entire playing field had to be generated from scratch, because it couldn't be stored in RAM.
Please post technical questions on the forum, not by personal message. Thanks!

More info:
http://www.gammon.com.au/electronics

fungus


Since we are pressing on without the pleasure of the company of the OP, I was reading yesterday about how one of the first gaming consoles (or devices anyway) only had 128 bytes of RAM, because it was so expensive. It might have been Pong. So each frame refresh, the entire playing field had to be generated from scratch, because it couldn't be stored in RAM.


Sounds like the Atari VCS: https://en.wikipedia.org/wiki/Atari_2600_hardware

128 bytes for everything, including CPU stack, frame buffer, sprites, game variables, etc. I've programmed some limited-resource systems in my time but I'm still amazed anybody managed to make games for the VCS.

Sure, Atmel makes ATtinys with only 64 bytes of RAM, but they don't normally get asked to do graphics and sound and manage multiple aliens.
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

Coding Badly

Sure, Atmel makes ATtinys with only 64 bytes of RAM...


Atmel makes ATtiny processors with no SRAM.

Go Up