HP Forums

Full Version: DM 42 Source code updated
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hi,
For those waiting for news on DM42 calculator : have a look at SwissMicros forum.
Source code available / compliant with OSS licenses.

Can't wait to build my own fw :-)
The geek in me feels happy...

Regards,
(06-04-2018 04:13 PM)Olaf Wrote: [ -> ]For those waiting for news on DM42 calculator : have a look at SwissMicros forum.
Source code available / compliant with OSS licenses.

Not the full source code, but, again, only some parts of the source code. Many parts (100+ functions) are hidden into some kind of closed source library whose sources are not distributed.

So, IMO, no license compliant code at all.

Regards.
(06-04-2018 07:01 PM)emece67 Wrote: [ -> ]Not the full source code, but, again, only some parts of the source code. Many parts (100+ functions) are hidden into some kind of closed source library whose sources are not distributed.

So, IMO, no license compliant code at all.

Just for the record, this is Michael's answer to your observations on SwissMicro's forum:

Quote:Many different licenses were used for the DM42 and some of the code can not be open sourced, not our decision.
The 100+ functions are system functions which can be called from the loaded program.
Moderator note:

If we are going to discuss this again here, please keep our comments fact oriented and do not impugn or insult anyone.

Agreed? I will only close if this is abused. If one person causes the abuse, they will be addressed. If the thread gets out of hand... please let's follow our forum guidelines for how we treat others.
Out of interest: What 100+ functions? Isn't this just Free42 plus some code gluing it to the hardware?
(06-04-2018 07:30 PM)Gene Wrote: [ -> ]Agreed?
Absolutely, and thanks for not closing the thread. I'm really curious what's left to do.
(06-04-2018 07:33 PM)Thomas Radtke Wrote: [ -> ]Out of interest: What 100+ functions? Isn't this just Free42 plus some code gluing it to the hardware?

I briefly looked at the code, what you are referring to is in this file:
lft_ifc.h

There's an "operating system" that was separated off of the free42 code. All linkage is done through a table like the one you see on that file. This is actually quite similar to dynamic linking. The free42 portion apparently generates a separate file *.pgm, apparently some much simplified form of elf, the following file:

https://github.com/swissmicros/DM42PGM/b...rtup_pgm.s

It starts the .pgm program by initializing data sections, and then executing it, conceptually similar to launching an ELF file (simpler).

From my point of view, they have separated the free42 application to a point where you could compile a different application, and should be able to make it run by putting it in that same *.pgm format.

At first look, it's a proper separation, with free42 running as a separate "application". The functions that can be seen in that link table seem to be exclusively dealing with hardware and disk, these are standard services that most OS provide. I don't see anything that could belong "inside" free42, like a math helping routine or a solver, that could indicate the separation is not real.

As far as I see, they pulled it off.
(06-04-2018 09:28 PM)Claudio L. Wrote: [ -> ]I briefly looked at the code...
As far as I see, they pulled it off.

Thanks for quickly making the time to pull and analyze the DM42 code Claudio, and for your independent assessment. It's good to get some facts and insight from a reliable source down in black and white before FUD spreads and stuff starts again. Much appreciated!
My feeling is absolutely different. They couldn't release all the source code because it has non-compatible licenses. Thus, they distributed the GPL parts in source code form and the other parts compiled.

This, IMO, violates the GPL license. They haven't implemented an OS with an API where I (or any other) can write his/her own programs to be run (if so, what is the expected behavior of such 100+ "OS API" functions so I can use any of them?). This is not an OS, but the 29 % of the firmware of a product, as its only function is allow the remaining 71 % to work[*].

For me this is the end of the story. Clearly Swissmicros will not release the full source code of the product and plan to continue selling a product that, I think, violates a software license. Simply, I do not want to buy any more items from such a company, this includes, unfortunately, the future wp43s hardware platform.

I think it's time for me to retire from this discussion before, I hope not, some people feel it turns boring or repetitive or offending and closes it.

Regards.

[*] Such 29/71 numbers are, simply, based upon the sizes of the corresponding binary files.
IMHO, they managed to pull it off. The 100+ functions that emece67 is complaining about are not called directly. They are called by calling an address that is an offset from a magic address. Since the magic address is unaligned, all the called addresses are unaligned, so the CPU (if so configured) will jump to an exception handler in the non-GPL "System" code. The exception handler can check what address was being called and perform the desired function before returning to the GPL "Program" code.

In principle, that's not really much different to the way GPL programs for other operating systems work. They generally use some sort of "software interrupt" to allow the operating system kernel to perform some function on behalf of the program. The main difference on the DM42 is the type of memory the program gets loaded into.
I love the ASCII large font they used in their /dm/*.cc files.

Interestingly, although this isn't a full source release, I have found nothing FreeRTOS-like as I take my brief read through the files (For example, the characteristic FreeRTOS naming style). I remember someone mentioning it, so now I'm curious about the unreleased part.

It seems that they didn't use the CMSIS library, didn't use the STM32 HAL or LL or SPI library. The licensing issue is not as severe as I imagined.
(06-05-2018 12:05 AM)andylithia Wrote: [ -> ]It seems that they didn't use the CMSIS library, didn't use the STM32 HAL or LL or SPI library. The licensing issue is not as severe as I imagined.

They didn't use them in DM42PGM, but used at least some of them in DMCP.
No Linux available for this SoC?
It is likely supported by NuttX which is Posix-like and supports many variants of the STM32 chip family.
(06-05-2018 12:36 PM)Craig Bladow Wrote: [ -> ]It is likely supported by NuttX which is Posix-like and supports many variants of the STM32 chip family.

Interesting stuff. In principle, it should allow a completely open source calculator to run on the DM42 hardware. It's probably not as mature as STMicro's own code though.
(06-04-2018 10:13 PM)emece67 Wrote: [ -> ]My feeling is absolutely different. They couldn't release all the source code because it has non-compatible licenses. Thus, they distributed the GPL parts in source code form and the other parts compiled.
You are correct that they separated the GPL parts and distributed the modified source code.

(06-04-2018 10:13 PM)emece67 Wrote: [ -> ]This, IMO, violates the GPL license. They haven't implemented an OS with an API where I (or any other) can write his/her own programs to be run (if so, what is the expected behavior of such 100+ "OS API" functions so I can use any of them?). This is not an OS, but the 29 % of the firmware of a product, as its only function is allow the remaining 71 % to work[*].
As a matter of fact, it appears they did implement an API. They have also distributed (in a more liberal BSD style license) the headers needed to use that API to link into their DMCP module (the closed-source OS if you want to call it that). The functions have their declarations, and you can see examples of how to use them in the Free42 GPL'd source code patches.
The firmware is not a single binary blob now. This was the main "issue" with the GPL compliance, the fact that the GPL code was statically linked into a single "packaged final product" with the non-GPL code. They are now distributing the DMCP module in one binary file, and the DM42 "program" in a separate file. The DMCP module apparently allows you to update the DM42 program from a file in a FAT partition, independent of the OS.

(06-04-2018 10:13 PM)emece67 Wrote: [ -> ]For me this is the end of the story. Clearly Swissmicros will not release the full source code of the product and plan to continue selling a product that, I think, violates a software license. Simply, I do not want to buy any more items from such a company, this includes, unfortunately, the future wp43s hardware platform.
I was among the first ones pointing out the violation of the license and supporting Thomas in his demands. But right now the project was organized in a way that seems to comply with every detail of the GPL license. Whether we like it or not doesn't really matter, it's the nature of open source that they can use the project as long as they comply with that license. Somebody may call it "compliance", other people will choose to call it a "workaround" or a "cheat", some may think it's disloyal and some not, everyone is entitled to an opinion and to have their own feelings. But speaking technically (all feelings aside), I have no reasonable arguments to make the case for non-compliance anymore.
I do think it's now possible for other people to do their own customizations on the DM42 program, compile them and flash them in their calculator (or write a completely different program altogether), that's what this community wanted and that's in the spirit of the GPL.
(06-05-2018 03:09 PM)Claudio L. Wrote: [ -> ]I do think it's now possible for other people to do their own customizations on the DM42 program, compile them and flash them in their calculator (or write a completely different program altogether), that's what this community wanted and that's in the spirit of the GPL.

I agree. I think SwissMicros did a good job with the 3.7 release, and I have no complaints about it.
Thomas, that is great news.
Hooray! I'm hoping SM keeps their scope focused on supporting the basic Free42 features (and extending it to support the hardware where it makes sense, like they did with the larger screen), and we see a community fork that takes a "sky is the limit" approach with extending the 42S capabilities.
Excellent news!
Pages: 1 2
Reference URL's