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.

Is it possible to boot from SDcard?

Status
Not open for further replies.

bianchi77

Advanced Member level 4
Advanced Member level 4
Joined
Jun 11, 2009
Messages
1,313
Helped
21
Reputation
44
Reaction score
20
Trophy points
1,318
Location
California
Visit site
Activity points
9,442
Guys,

Is it possible to boot from SDCard or ATMEGA128?
So from flash, will redirect to SDcard and run my application from there..., to get more space..
Similar with Disk Operating System ?

Thanks
 

Hello!

Technically nothing is impossible.
But you have to understand the meaning of "boot".
Basically what a flash based CPU does at boot time is to jump to some specific location in flash and
execute instructions at that location. So it's not possible to "boot" directly from an SD card. You have
to copy your code somewhere and execute it from there. For example, you may copy it to some flash
location and execute. BUT: as you may know, the number of times you can overwrite flash is quite
limited (say, 100 000 times), so it really depends on what you want to develop.

Another solution is to copy your code to RAM and execute from RAM. But usually in small microprocessors,
you have a very limited amount of RAM and no (or limited) possibility of external RAM.
If you have for example 4K RAM, you may divide it into 2K of program RAM and 2k of program data
(or 3K/ 1K). But within 3K, you will be very limited. If you want to measure something and send the result
to serial port, it might be enough, but if you want to access your SD card from your RAM program, it will
be extremely difficult if not impossible.

One way to solve this is to write your own memory paging scheme to access more than the actual RAM
allows. This is also a challenge.

One good environment to do that might be a FRAM based processor. I have used one, and if you set
the frequency low enough, there is no access difference between FRAM and RAM.

Now you might be interested in a boot loader: you reserve some space of your CPU flash to access
SD card and copy a program to flash. If you don't constantly change the program, then you will not
exceed the 100 000 overwrites and it will work fine.

Basically, flash based chips are not designed to be flexible. They are designed to allow small portable
systems, and therefore not easy to use as a generic processor.

Well, as a conclusion, it really depends on what you want to do.
- You have a hardware with many variants and you want to provide updates to your customers by
mail or any remote method
=> Write a boot loader
- You want to change your software at run time
=> Write a RAM executable software (or a mix of flash + dll-like ram executable)
- You want a MSDOS like system
=> You may consider ARM with external memory.

That's about it.

Dora
 

I'm interested with the last one :
- You want a MSDOS like system
=> You may consider ARM with external memory.


Remind me my old PC XT, just want to mimic it from MCU with a simple way...
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top