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.
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.
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.
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.
Burn Program F11 to save the loader to EEPROM and save to Flash/SD card, then
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
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?
Not really, because I have no EEPROM in my setup
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.
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.
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.
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?
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.
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.
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.
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.
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:)
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
Comments
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.
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
You can:
- Burn Program F11 to save the loader to EEPROM and save to Flash/SD card, then
- Click the red reset button next to the terminal icon to reboot the program.
Does that help?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.
David Betz created a cache_interface.spin program that does this for us. It is used by one of the loaders for example.
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.
Not really, because I have no EEPROM in my setup
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.
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
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
SimpleIDE does not save window geometry or position at this time.
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.....
Not sure yet. I'm still trying to usher Propeller-GCC into Beta state.
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.
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.
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
LOL
I think perhaps you, me, ross, heater, and ted are probably the only ones around here who know what vi means.
I have one of those in my garage!
Oh, wait...mine is a ShopVac. Never mind.
-- Gordon
When I get past the current project business, I may add some vi friendly stuff. Look to the future for some Escape