At 07:11 PM 5/30/2006 -0400, Tom Walsh wrote: >As long as you don't use malloc() and free() in your software, no, there >is no need for it. However, the MMU allows you to compress your heap >and make the "holes" appear as a larger segment instead of a lot of tiny >ones scattered about. Memory fragmentation can also be a big issue with >an embedded system. > >The other advantage would be to virtualize large arrays of structures >onto Flash memory devices such as Secure Digital or Compact Flash. >Having a miniscule 32K of RAM is a PITA. I have an array of structures >which are 72 bytes in size and one element of that struct is a 48 char >text field. This text field is only needed for the initial report but >must be kept if the system is told to 're-report all events'. Since I >have 100 structures, that is 7K of data. of which, 4K is something that >could be stored on a disk drive. Virtualization could allow me to >extend the "RAM" and hold that infrequently accessed data in slower memory. Even without the relocating memory a MMU could be useful. MMUs usually (It's almost a necessary side effect of their operation) include memory protection so accesses to addresses outside of the 'mapped' addresses are trapped. By limiting access to address ranges to certain process's a whole class of errors can be reduced significantly. At this point a distinction between user and supervisor modes can be really useful. I don't care about virtualization or compressing the heap but making sure only certain processes can write to specific address ranges, now that I'd like to see. I just haven't seen an implementation on a microcontroller yet. Robert " 'Freedom' has no meaning of itself. There are always restrictions, be they legal, genetic, or physical. If you don't believe me, try to chew a radio signal. " -- Kelvin Throop, III http://www.aeolusdevelopment.com/
Message
Re: [lpc2000] the race is on
2006-05-30 by Robert Adsett
Attachments
- No local attachments were found for this message.