Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : firmware variants
Page 1 of 3 | |||||
Author | Message | ||||
Gadget Regular Member Joined: 22/06/2011 Location: AustraliaPosts: 70 |
Hi, I see there are a few firmware variants popping up. just wondering if people could post their changes to the source code as well as the .HEX file, then at least we could attempt to combine some of the changes that people are making. just my 2c worth Terry |
||||
seco61 Senior Member Joined: 15/06/2011 Location: AustraliaPosts: 205 |
Hi Terry. While a couple of us are releasing some compiled firmware, I think it would be best if Geoff were to release the software - that way only one master source would be available. I have sent Geoff a copy of my source code changes and will leave it up to him to release if he wishes. Of course if you would like a copy I can send it privately, but do be aware that it could change (I am continuously tweaking and working on other mods) and I do not want people to become dependant on the code if it is not the official release. It is OK if you are very good with software and can modify each official release of the source with any unofficial mods.... Just my thoughts. Regards Gerard Regards Gerard (vk3cg/vk3grs) |
||||
Gadget Regular Member Joined: 22/06/2011 Location: AustraliaPosts: 70 |
Hi Gerard, I guess I'm just being a bit impatient, I am curious to see what others are doing and how they are doing it. Yes I would love to see your changes, if it's too hard to send here, my email is tgrnn at big pond dot com. thanks Terry |
||||
captainbill Newbie Joined: 16/06/2011 Location: United StatesPosts: 37 |
Howdy If the MMB software gets too fragmented, it will be chaos. I personally would like a FFT function but thats just me. I have proposed earlier that I would like a way to allow user machine language subroutines. If Geoff can do it, we could have a standardized protocol for calling, passing arguments, and returning values. Perhaps the routines could be poked into string addresses returned by varptr function. The function might be called as x=exec(varptr(y$)) A single floating point number could be returned. Other values could be left at specific offsets in the allocated ram to be peeked and translated as necessary. There may be many ways to implement machine language subroutines. Such a scheme will allow the MMB to remain general in concept and allow individual developers to create assembly or "C" routines for specific purposes. A vast number of such functions could be kept on SD to be retrieved, loaded, called, replaced as necessary at run time. Bill Old school. Still interested. Head in the clouds. |
||||
donmck Guru Joined: 09/06/2011 Location: AustraliaPosts: 1313 |
G'day Cap'n Bill, FFT function? I missed that one. Please explain. I agree on the call ML routines. If I haven't been involved in a thread, then certainty it is the way I have always thought we should be heading. I had to check the wish list to make sure it wasn't there. About to take off for my walk, but I'll add a suitably phrased wish to my wish list, and see if we can raise the profile of this one, as it would sure help Geoff with re-compiles in the long run, if it can be achieved. Edit to done: Wish 29: Call Machine Language Routines. Possibly use Peek & Poke to achieve. http://www.themaximitecomputer.com/wish-list-priority-level- poll/ Cheers Don... https://www.dontronics.com |
||||
aargee Senior Member Joined: 21/08/2008 Location: AustraliaPosts: 255 |
I agree with Bill, some sort of pseudo library function would be great. So you could say, have a comms library of routines that could handle RS-232 for instance, then all you do is load up the library with your program if you want to use it. I don't know how difficult this might be to implement though... Don.. FFT = Fast Fourier Transform. Let's blast away those complex waveforms! See here - Rob For crying out loud, all I wanted to do was flash this blasted LED. |
||||
donmck Guru Joined: 09/06/2011 Location: AustraliaPosts: 1313 |
Just as well I asked Rob. As I say, you don't ask questions, you will never know the answers. Mind you, this could fall out the back of my FIFO memory buffer. My wife says I have a short path through it on items I don't have a great interest in, like clothing, shopping, jewelry................. But then, she accuses me of selective deafness too. Her father said if I don't marry her, he would make sure I was locked up for 50 years. To think, I could be a free man today. Cheers Don... https://www.dontronics.com |
||||
Nick Guru Joined: 09/06/2011 Location: AustraliaPosts: 512 |
Someone got it wrong then. I would have thought getting married is like being locked up for 50 years. (She doesn't read this forum does she?) |
||||
Gadget Regular Member Joined: 22/06/2011 Location: AustraliaPosts: 70 |
user callable machine code would be great, I have been reading the data sheets on the pic32 and it looks like its doable. it seems that you need to set up a portion of ram to do this, and in doing so I'm not sure about the impact on amount of memory available for basic. Have to some more research, but i think it can be done. |
||||
stuarts Senior Member Joined: 15/06/2011 Location: AustraliaPosts: 199 |
Nick, isn't the difference that marriage can be a life sentence. So it just depends on how long you live...... Stuart Time is nature's way of keeping everything from happening all at once. |
||||
donmck Guru Joined: 09/06/2011 Location: AustraliaPosts: 1313 |
|
||||
seco61 Senior Member Joined: 15/06/2011 Location: AustraliaPosts: 205 |
Hi All. I do not think that user callable machine code functions are possible. The thing to remember is that we are operating on a MCU, not a PC/computer with an operating system. Therefore we do not have available a loader that can load the module, relocate all the addresses to handle where it is loaded, establish linkages to the already loaded C runtime functions, etc. When we compile MMBasic (or any other program for an MCU), we are utilising the linker of the IDE to perform this relocation and address reolution for us. So the only way to add C funtions/commands to MMBasic is to modify the base code (mostly in custom .c and custom.h depending on what the code does) and recompile MMBasic. This is not hard to do and if you examine Geoff's code you will see that he has set it up so this can be done quite easily. The only "runtime" loadable programs are going to be Basic subroutines - and this will become a possibility once Geoff releases updated firmware that allows subroutine calls, and parameter passing without the need for line numbers (ie. using labels). Regards Gerard Regards Gerard (vk3cg/vk3grs) |
||||
Nick Guru Joined: 09/06/2011 Location: AustraliaPosts: 512 |
Would any non-BASIC callable code (M/L) interfere with the PIC32's video generation? I haven't seen many big programs created yet for the Maximite so I am wondering what routines we need to call that can't be employed in the standard setup? I can understand maybe an M/L routine processing some fast realtime data where the full 80Mhz of the PIC32 may be useful. I'm curious what people are actually doing with their Maximites, from a software perspective that is. |
||||
seco61 Senior Member Joined: 15/06/2011 Location: AustraliaPosts: 205 |
I haven't seen many big programs created yet for the Maximite so I am wondering what routines we need to call that can't be employed in the standard setup? I can understand maybe an M/L routine processing some fast realtime data where the full 80Mhz of the PIC32 may be useful. I'm curious what people are actually doing with their Maximites, from a software perspective that is. Hi Nick. The video system is interrupt driven and then utilises DMA transfers to the SPI module, again triggered by interrupts from the SPI module. So, other code will not interfere with the video. But again, the only way to have M/L programs is to compile them as part of MMBasic and create new custom commands/functions. Regards Gerard Regards Gerard (vk3cg/vk3grs) |
||||
Nick Guru Joined: 09/06/2011 Location: AustraliaPosts: 512 |
Cool. So video should be ok. ML could be POKEed in, now that Geoff has added those commands. No way to do an EXEC or USR call to it though. The BASIC is fast enough for most things and any good BASIC programmer can find workarounds for most ommisions. It would be for specialized applications that need speed I guess. Maybe some real time application or even an arcade game. What applications do people have in mind that can't be done with the existing setup? I've highlighted Programmable characters as a way of speeding up graphics by defining special symbols so that more complex graphics could simply be PRINT'ed rather than drawing LINE's, CIRCLE's and Boxes. That's what *I* would like to see. What does everyone else want to use the MM for from a Software perspective? |
||||
Ray B Senior Member Joined: 16/02/2007 Location: AustraliaPosts: 219 |
Seco61 said "The only "runtime" loadable programs are going to be Basic subroutines " Does this mean for example that the published LCD routines for initialising an LCD from James could be linked in at the time using an INCLUDE command so you don't need to copy/paste code from one source code snippit library file into the program being written at the time ? This way we publish standard subroutines in a library INCLUDE file that are called up by the new application file. GW-Basic has a USR function and a CALL statement but I think that is just for calling machine code subroutines. Comments .... RayB from Perth WA |
||||
aargee Senior Member Joined: 21/08/2008 Location: AustraliaPosts: 255 |
Nick, There is a really cheap way of getting colour, I remember the old variants of the Space Invaders arcade boxes that had coloured cellophane stuck to the screen for the static graphics. So if yo wanted red just stick your graphics in the red sector of the screen... - Rob. For crying out loud, all I wanted to do was flash this blasted LED. |
||||
donmck Guru Joined: 09/06/2011 Location: AustraliaPosts: 1313 |
There is a really cheap way of getting colour, I remember the old variants of the Space Invaders arcade boxes that had coloured cellophane stuck to the screen for the static graphics. So if yo wanted red just stick your graphics in the red sector of the screen... - Rob. Some may remember the same thing for TVs around the late 50s. Blue up the top, and green down the bottom. Cheers Don... https://www.dontronics.com |
||||
seco61 Senior Member Joined: 15/06/2011 Location: AustraliaPosts: 205 |
Does this mean for example that the published LCD routines for initialising an LCD from James could be linked in at the time using an INCLUDE command so you don't need to copy/paste code from one source code snippit library file into the program being written at the time ? This way we publish standard subroutines in a library INCLUDE file that are called up by the new application file. GW-Basic has a USR function and a CALL statement but I think that is just for calling machine code subroutines. Comments .... Hi Ray. When Geoff completes the firmware update that will allow MMBasic programs without line numbers (using labels, and hopefully with parameter passing), then what you want will be available. You would be able to use the existing MERGE command to load the MMBasic subroutine and would be able to access it as though you had it in your original code. Of course, this technique could be used now - however you would have to ensure you had no line number conflicts and no variable name conflicts... regards Gerard Regards Gerard (vk3cg/vk3grs) |
||||
seco61 Senior Member Joined: 15/06/2011 Location: AustraliaPosts: 205 |
I've highlighted Programmable characters as a way of speeding up graphics by defining special symbols so that more complex graphics could simply be PRINT'ed rather than drawing LINE's, CIRCLE's and Boxes. That's what *I* would like to see. Hi Nick. I have an implementation of programmable fonts in my system at the moment. It is quite easy to implement and I will send a copy of the code to Geoff for his perusal, as I know he has it on his todo list. How many programmable characters would you see the need for? I am also extending the default font to include a lot of the code page 437 characters - but it all takes more memory. On the list of what I would like to see in MMBasic is a PWM output (I am working on that now but it does require using pin 46 of the MCU - early stages yet). Also I would like the ability to read and write "binary" files - again I am working on that as well. And I would also like the ability to declare a variable as an integer (rather than defaulting to float) and also to store "whole" numbers as integers as opposed to floats. This would be to improve the speed when using numbers that have no fractional component, and that are within the range of a 32bit signed integer. This is at the early stages of investigation.... If only I was retired and more time..... regards Gerard Regards Gerard (vk3cg/vk3grs) |
||||
Page 1 of 3 |
Print this page |