none
OS Image RAM Usage Optimization RRS feed

  • Question

  • Hi,

    I am using win Ce 6.0 R3, with device having 64 MB of ram, HIVE based Registry and  ROM Only File system (persistent)

    I have configured os design/bsp for generating 40 MB of image and included all the required components my problem is i can't add more ram due to some h/w limitations. when i tried to get free ram using sytem info remote tool i have found only 14 MB of ram is available for the applications. 

    Is there any way to configure the os image in such way that it should use minimum ram. 

    I mean modules we add bib files as modules and files sections can help in this regard. as some of the applications we add as component are not in use until user starts it. and threfore it should not consume any RAM.

    what I understood the normal process of loading is

    1) Copy image from nand to ram, (here it will consume ram , size = image file size (bin,nb0))

    2) jump to the image 

    or is the only way to bunch the component into installable and install it later so that it will take space only on file system when not in execution.

    is there any installable for Office Viewers / pdf viewers available in R3 so that instead of placing these components in image we can add it later.

     

    Please suggest.

    Thanks for looking in to this..


    Anant
    Friday, March 4, 2011 12:10 PM

All replies

  • Look into XIP.
    See : http://www.eggheadcafe.com/software/aspnet/36181173/extend-ram-memory-to-flash-memory-win-ce-6-r3.aspx

    Never used it myself, so I cannot give you any details nor tell you if it even suits your needs ,
    but AFAIK it should be possible to execute the image directly from (some types of) flash using xip.
    If so, it might free up the imagesize in RAM.

    Rob
    www.robtso.nl

     

     

     

    Friday, March 4, 2011 1:18 PM
  • Probably you can try to reduce the image size by removing the OS components which you dont need.

    This will also improve the bootup time.


    Senior Design Engineer T.E.S Electronic Solutions (Bangalore-India) www.tesbv.com email-misbah.khan@tesbv.com
    Friday, March 4, 2011 1:54 PM
  • That will be a good practice for using BINFS.
    Only load the minimal core part into RAM, other modules just loading to RAM on-demand by BINFS and kernel.
    And when system meet the memory budget limit, kernel can also page-out those module to save memory.
    The drawback is it need some trick to set BINFS well (please study the http://msdn.microsoft.com/en-us/library/ee490593.aspx) and due to increase the page fault, it also introduce performance impact.

    Friday, March 4, 2011 7:25 PM
  • Look into XIP.
    See : http://www.eggheadcafe.com/software/aspnet/36181173/extend-ram-memory-to-flash-memory-win-ce-6-r3.aspx

    Never used it myself, so I cannot give you any details nor tell you if it even suits your needs ,
    but AFAIK it should be possible to execute the image directly from (some types of) flash using xip.
    If so, it might free up the imagesize in RAM.

    Rob
    www.robtso.nl

     

    Hello Rob,

    Thanks for your suggestion,

    but as I am using nand flash, and xip is only possible with NOR flash. 

     

    Thanks,

     

     



    Anant
    Monday, March 7, 2011 8:27 AM
  • Probably you can try to reduce the image size by removing the OS components which you dont need.

    This will also improve the bootup time.


    Senior Design Engineer T.E.S Electronic Solutions (Bangalore-India) www.tesbv.com email-misbah.khan@tesbv.com
    Hello Misbah,
    this seems to be the right option, I just want to use the os components by installing instead of including in the image obiviously with all the components this won't be possible but some of those can be installed independently. like office viewers , pdf viewer , wordpad. and I am looking for some way get them into the cab and install , also looking for installable for such components so that don't need to analyze each components for there dependent dlls and other files/settings required to be there for execution.
    Thanks 


    Anant
    • Proposed as answer by Misbah Khan Wednesday, March 9, 2011 5:29 AM
    Monday, March 7, 2011 8:35 AM
  • Since your final goal is to have the program loaded on demand to reduce the overall memory load, right?
    Then perhaps putting effort in setting up BINFS will be easier than try to pack them into CAB files.

    Tuesday, March 8, 2011 8:35 PM
  • Hello KMOS, 

    thanks for your reply..!

    yes right.! actually I have almost finalized the os image, bsp customization and boot loader. .

    I have used features like ROM Based FS , Hive Reg. Thats why I did't think of changing the basic things which might distrub the existing work. 

    by the way will check the changes need to do for implementing BINFS. 

    please send me any links/blogs/article  if you have regarding implementing BINFS. 

     

    Thanks Again


    Anant
    Wednesday, March 9, 2011 4:44 AM
  • Already replied in previous response, http://msdn.microsoft.com/en-us/library/ee490593.aspx for the BINFS how to.

    Wednesday, March 9, 2011 9:51 PM
  • Hello KMOS,

    Thanks for your efforts..!

    Going through the link you posted earlier, just ask to post if other than this is also available...!

     

    Thanks 


    Anant
    Thursday, March 10, 2011 5:10 AM
  • Use real world BSP for reference should be helpful.
    The SMDK6410 does provide a good example for implementing BINFS.
    Friday, March 11, 2011 1:54 AM