Shop OBEX P1 Docs P2 Docs Learn Events
MMU vs XMMC — Parallax Forums

MMU vs XMMC

ecuageoecuageo Posts: 5
edited 2015-03-01 06:15 in Propeller 1
I'm new to microcontrollers but am an experienced developer. I'm interested in building a computer from the propeller and developing somewhat of an operating system for it. This is a hobby and a chance to learn some new principles.

I'm learning about virtual memory and memory management units. Obviously the propeller doesn't have an MMU. I wanted to understand the xmmc solution in more detail, but don't know where there is in-depth documentation on how it works. How does paging/caching work with that model? Is there a way to get around only one cog running xmmc? Etc

Thanks for any time spent on answering my question.

Comments

  • ecuageoecuageo Posts: 5
    edited 2015-02-28 09:12
    I just found https://code.google.com/p/propgcc/ It looks like a good start to many of my questions. If anyone knows of a project doing something similar, it would be great to hear about.
  • Mike GreenMike Green Posts: 23,101
    edited 2015-02-28 09:40
    Be sure to have a look at Spinix and Sphinx. Both are written in a mix of Spin and assembly language with most of the assembly language providing I/O drivers. Spinix is a Linux-like "operating system" where most of the utility functions are provided by small utilities that talk to each other via "pipe-like" I/O. Sphinx is similar, but is important mostly because it includes a Spin compiler / assembler. Both are used to provide a stand-alone simple Propeller development system.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-02-28 09:50
    Here's a list of various OSes on the Propeller.

    If using PropGCC, take a look at PropWare. As an experienced developer, you may find the Parallax-supported IDEs a little... lacking. They're great and simple and awesome for beginners, but not very feature-rich compared to CLion and Eclipse. PropWare will provide an easy way to use PropGCC in your existing IDE (or at the command line).
  • ecuageoecuageo Posts: 5
    edited 2015-02-28 11:54
    Awesome answers! I have so much code to read ...
  • msrobotsmsrobots Posts: 3,709
    edited 2015-03-01 02:31
    @ecuageo,

    there is a big difference between a MMU and XMMC.

    A Memory Management Unit on normal CPUs will swap in or out Memory for your processor, thus allowing you to simulate memory at any address you like. Normally this get used to simplify programming, because each program can assume to have a memory starting at $0. or $100 or whatever the OS likes.

    XMMC in PropGCC is a way to use external memory to extend the size of C/C++ programs beyond the 32K HUB ram the propeller has.
    Because of the need to fetch the external memory, it is slower but you will be able to run quite large programs.
    Still some things need to be in HUB ram. Stacks, variables, cache for external memory, things like that.

    @swimdude0614,

    not that you are pushing PropWare in any form, aren't you? I am a great fan of JetBrain's also. Mostly because of TeamCity. May need to look at CLion.

    Enjoy!

    Mike
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-01 06:15
    msrobots wrote: »
    @swimdude0614,

    not that you are pushing PropWare in any form, aren't you? I am a great fan of JetBrain's also. Mostly because of TeamCity. May need to look at CLion.

    Enjoy!

    Mike

    Who me?! Nooo... I wouldn't do that.

    I'm fully dedicated to making PropWare an easy-to-use and highly functional tool for the Propeller. I know it's not all the way there yet, but as you can see from my issues page, a plan is definitely forming.

    And yes. Give CLion a try. If you've never used a JetBrains IDE, it's one of the few things I'm more passionate about than PropWare.
Sign In or Register to comment.