Shop OBEX P1 Docs P2 Docs Learn Events
PropGCC-SimpleIDE - Page 7 — Parallax Forums

PropGCC-SimpleIDE

123457»

Comments

  • pedwardpedward Posts: 1,642
    edited 2012-05-07 18:21
    Seems like the XMM-SPLIT could be faster if more intelligent.

    Right now XMMC sounds kind of simplistic, completely ignoring external RAM for lesser used data.

    How would you envision hinting at the compiler/linker? I think that you would need the malloc code to be smart, have big heap/little heap logic with hinting. If I alloc a big chunk, put it in XMM heap, otherwise put it in HUB. You would also need a __malloc_xmm function to specifically alloc in XMM. Malloc could be implemented as a layer above __malloc_xmm and __malloc_hub, with the logic in malloc.

    I think of XMM like LIM EMS was back in the day. You have this bunch of memory that can only be paged in and out in little chunks, but it is still faster than reading from disk.

    It would be nice to come up with some standard interface for XMM so it could be exposed in SPIN as well, just like LIM did with the EMS standard.
  • AribaAriba Posts: 2,690
    edited 2012-05-07 18:57
    Hello Jazzed

    Thank's for the new version, I will try it soon.

    What I miss a bit with XMM(C) in SimpleIDE is a way to just start an already compiled and loaded code again.
    I don't know what is the easiest way to implement this. Perhaps a Menu item like "Skip XMM load" or just press the Control key while clicking on the Run or RunConsole icon ?
    The result should be that only the .xmmkernel gets loaded, when you know you have already the right code in the Flash or the autorun.pex file.

    Andy
  • jazzedjazzed Posts: 11,803
    edited 2012-05-07 19:25
    Ariba wrote: »
    What I miss a bit with XMM(C) in SimpleIDE is a way to just start an already compiled and loaded code again.

    You can:
    1. Burn Program F11 to save the loader to EEPROM and save to Flash/SD card, then
    2. Click the red reset button next to the terminal icon to reboot the program.
    Does that help?

    pedward wrote: »
    How would you envision hinting at the compiler/linker? I think that you would need the malloc code to be smart, have big heap/little heap logic with hinting. If I alloc a big chunk, put it in XMM heap, otherwise put it in HUB.


    I there is a hubmalloc set of functions for using HUB RAM in XMM modes. They work the same as malloc, calloc, realloc, and free. Library documentation is high on our list.

    Normal malloc chooses the memory based on what's available. David Betz may have more comments on this. He implemented the changes for the feature.

    pedward wrote: »
    It would be nice to come up with some standard interface for XMM so it could be exposed in SPIN as well, just like LIM did with the EMS standard.


    David Betz created a cache_interface.spin program that does this for us. It is used by one of the loaders for example.
    PUB start(code, mbox, cache, config1, config2)
    pub readLong(madr)
    pub writeLong(madr, val)
    pub readByte(madr)
    pub writeByte(madr, val)
    pub eraseFlashBlock(madr)
    pub writeFlash(madr, buf, count_)
    


    It is possible with the help of a Spin compiler like Roy's to make an XMM-SPIN or BigSpin real with some changes. The problem is that the Spin interpreter cog is so tight that some functionality will be necessarily lost and you will no longer be able to cognew Spin code. Personally I don't see a problem with that, but others might.
  • AribaAriba Posts: 2,690
    edited 2012-05-07 19:44
    jazzed wrote: »
    You can:
    1. Burn Program F11 to save the loader to EEPROM and save to Flash/SD card, then
    2. Click the red reset button next to the terminal icon to reboot the program.
    Does that help?

    Not really, because I have no EEPROM in my setup :innocent:
    I have a PIC on my board which boots a file from SD card at Reset, so I need no EEPROM.
    But it should be possible to write the data, that is normally in the EEPROM, to a file and boot that. Does "Burn EEPROM" produce a file somwhere with the data for the EEPROM? Is the Flash load code in the EEPROM always the same, or does it depend on the compiled XMMC code?

    Thanks
    Andy
  • jazzedjazzed Posts: 11,803
    edited 2012-05-07 19:59
    Ariba wrote: »
    Not really, because I have no EEPROM in my setup :innocent:
    I have a PIC on my board which boots a file from SD card at Reset, so I need no EEPROM.
    But it should be possible to write the data, that is normally in the EEPROM, to a file and boot that. Does "Burn EEPROM" produce a file somwhere with the data for the EEPROM? Is the Flash load code in the EEPROM always the same, or does it depend on the compiled XMMC code?

    Thanks
    Andy

    Ok :)

    AFAIK, the HUB RAM (F10) / EEPROM (F11) loader is always the same for any given memory model, and the user program does not change the loader. However, different memory models do use different loader code.

    I'm not sure about saving the EEPROM loader code to a binary file. David Betz may have a better answer.
  • David BetzDavid Betz Posts: 14,516
    edited 2012-05-07 21:03
    jazzed wrote: »
    Ok :)

    AFAIK, the HUB RAM (F10) / EEPROM (F11) loader is always the same for any given memory model, and the user program does not change the loader. However, different memory models do use different loader code.

    I'm not sure about saving the EEPROM loader code to a binary file. David Betz may have a better answer.
    Being able to save the eeprom loader to a file would be possible but it is not currently supported.
  • AribaAriba Posts: 2,690
    edited 2012-05-07 22:55
    David Betz wrote: »
    Being able to save the eeprom loader to a file would be possible but it is not currently supported.

    No problem. I will add an EEPROM temporarly and read the data from EEPROM into a file. As long as I have to do this only onvce for every XMMC variant, it's not a big thing.

    Andy
  • RsadeikaRsadeika Posts: 3,837
    edited 2012-05-08 05:16
    I just loaded and ran 0-6-10, so far I have not run into any problems. I did notice that when I adjust the window to the size I want to work with, and exit the program, the new window size is not remembered when the program is restarted. Not sure if it is something with SimpleIDE or my Windows 7 setup.

    I just spent some time setting up an Ubuntu 12.04 LTS Server, and I am wondering if it is possible to place a copy of SimpleIDE there and be able to run the program from my Windows x computer? Since I have a couple of different computer locations, it would be nice just to have one copy of SimpleIDE residing on a server, and my laptop would have a mobile version.

    Since Ken has made a request for having Spin/PASM added to SimpleIDE, this will make SimpleIDE a very awesome piece of software. Steve, you are a very great asset to the Propeller community, supported by a very competent and proficient programming team. So, when will be seeing the first implementation of this?

    Ray
  • jazzedjazzed Posts: 11,803
    edited 2012-05-08 06:57
    Rsadeika wrote: »
    I just loaded and ran 0-6-10, so far I have not run into any problems. I did notice that when I adjust the window to the size I want to work with, and exit the program, the new window size is not remembered when the program is restarted. Not sure if it is something with SimpleIDE or my Windows 7 setup.


    SimpleIDE does not save window geometry or position at this time.

    Rsadeika wrote: »
    I just spent some time setting up an Ubuntu 12.04 LTS Server, and I am wondering if it is possible to place a copy of SimpleIDE there and be able to run the program from my Windows x computer? Since I have a couple of different computer locations, it would be nice just to have one copy of SimpleIDE residing on a server, and my laptop would have a mobile version.


    Not sure if it would work, but you're welcome to test it. I've never done this "intentionally" and can't guarantee anything.

    It may be that you will need a .zip package of SimpleIDE and Propeller-GCC tools on your server since you can't install the program there with the windows setup tool. Producing a package like that is on my todo list.

    My main concern is whether or not the program would be able to find the .dll support files and be able to access the other compiler tools.

    Networks are magical, so there's a chance.....

    Rsadeika wrote: »
    Since Ken has made a request for having Spin/PASM added to SimpleIDE, this will make SimpleIDE a very awesome piece of software. Steve, you are a very great asset to the Propeller community, supported by a very competent and proficient programming team. So, when will be seeing the first implementation of this?


    Not sure yet. I'm still trying to usher Propeller-GCC into Beta state.
  • ctwardellctwardell Posts: 1,716
    edited 2012-05-10 11:34
    Steve,

    I noticed that the editor does not behave as expected when selecting a block of text and then using tab to indent.

    The selected text will be indented, but then the block is unselected which prevents adding addtional indents.

    In some cases the line above the selection is also indented along with the selection.

    You can replicate this by creating a file with a few lines and playing around with selecting lines and then pressing tab.

    C.W.
  • jazzedjazzed Posts: 11,803
    edited 2012-05-10 11:40
    ctwardell wrote: »
    Steve,

    I noticed that the editor does not behave as expected when selecting a block of text and then using tab to indent.

    The selected text will be indented, but then the block is unselected which prevents adding addtional indents.

    Hi C.W.

    I'm sorry, this is a restriction I imposed because I got tired of fighting all the corner cases associated with more relaxed behavior.
    Maybe it can be enhanced later.
    ctwardell wrote: »
    In some cases the line above the selection is also indented along with the selection.

    I've seen this too. Will look into it later. Do you you have repeat-by steps? I can open an issue for tracking with steps.

    Thanks,
    --Steve
  • pedwardpedward Posts: 1,642
    edited 2012-05-10 12:25
    When is the editor going to get Vi key bindings???
  • jazzedjazzed Posts: 11,803
    edited 2012-05-10 13:00
    pedward wrote: »
    When is the editor going to get Vi key bindings???

    LOL :)

    I think perhaps you, me, ross, heater, and ted are probably the only ones around here who know what vi means.
  • mindrobotsmindrobots Posts: 6,506
    edited 2012-05-10 13:10
    I haven't learned vi in 38 years, I'm not about to just to program propellers!!! :frown:
  • Dave HeinDave Hein Posts: 6,347
    edited 2012-05-10 13:16
    Who needs vi when you've got the ex line editor? Steve, make sure you support the "Q" command when you add vi support. :)
  • jazzedjazzed Posts: 11,803
    edited 2012-05-10 13:18
    Uh oh. Sorry Rick and Dave! Sorry if I left anyone else out about knowing what vi means .... Man I'm in trouble now.
  • mindrobotsmindrobots Posts: 6,506
    edited 2012-05-10 13:23
    Soon as I get my Propeller driven card reader going, I'll show you kids how to edit!! Dad gummit!!!

    Univac1100-80.jpg
    250 x 215 - 21K
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2012-05-10 15:45
    mindrobots wrote: »
    attachment.php?attachmentid=92390&d=1304078172

    I have one of those in my garage!

    Oh, wait...mine is a ShopVac. Never mind.

    -- Gordon
  • Heater.Heater. Posts: 21,230
    edited 2012-05-11 02:30
    Actually, supporting vi commands, or at least some of them, would be boon for me. You see I have such vi induced brain damage now that when using lesser editors I end up with files full of ":/w" and such:)
  • jazzedjazzed Posts: 11,803
    edited 2012-05-11 10:06
    Heater. wrote: »
    Actually, supporting vi commands, or at least some of them, would be boon for me. You see I have such vi induced brain damage now that when using lesser editors I end up with files full of ":/w" and such:)


    When I get past the current project business, I may add some vi friendly stuff. Look to the future for some Escape ;)
Sign In or Register to comment.