If you want to legally ride a fast bike in Switzerland, your only option is to have it registered as an S-Pedelec.
The only economically viable option to get an S-Pedelec is buying one. Seriously. It does not have to be a Stromer, but, really, it absolutely has to be an S-Pedelec.
There is...
Seeing as you are located in Switzerland, and shooting for a vehicle that goes up to 45 km/h speed, the Stromer has that one critical advantage: It can be registered ("gelbes Kontrollschild") to be legal on public roads, as a so-called "S-Pedelec".
If you shop around, for instance on...
Read-out protection is an integral part of the STM chip architecture. This is a hardware-based copy protection scheme that no one seems to have been able to overcome so far, using generally available methods.
"Am I able to roll back?" was also the first question I asked, when it came to looking...
The page of contents for this course alludes to the fact, that this is for a MIPS CPU.
For the STM8, http://www.st.com/content/ccc/resource/technical/document/programming_manual/43/24/13/9a/89/df/45/ed/CD00161709.pdf/files/CD00161709.pdf/jcr:content/translations/en.CD00161709.pdf would probably...
Looking at https://github.com/OpenSource-EBike-firmware/BMSBattery_S_controllers_firmware/commit/9c9de66fe41618ae14f595990d00dcdf9ed948c8#diff-f09135e1598deb289c250d9ed37dd8dbR98 it would seem that the checksum is also in a different location?
Cool that you figured this out!
This then begs the...
dec 2 = bin 0010
dec 9 = bin 1001
Three bits of difference. That's substantial.
On the other hand, I cannot tell what the quality of the reverse engineering is. Your collection of tidbits seems to suggest, that xor 2 does not (always) work when an external controller attempts to send data to...
Cool, now submit a pull request for all the usability (Java) changes that you made! ;)
This way, everything is "upstream" in the same repository, and "master" is the one and only master.
The current C source code might not be defined well enough to work _with_ compiler optimizations turned _on_.
You committed a change to github where you added volatile to one variable; that may be one step into the right direction.
That's quite simple, actually. Checklist:
1.) is there any...
Hm. This is consistent with https://sourceforge.net/p/sdcc/code/10108/log/?path=/tags/sdcc-3.6.0/sdcc
So cygwin has the "working" version? In this case the best way to proceed is to have a Windows build environment completely derived from cygwin?
If you are certain that your mingw environment...
Are these the exact same _version_ of the compiler?
It would be very helpful to note in the README the _exact_ version of the compiler which is known to work. In case the same version of the compiler shows different behaviour, the tool chain that built that compiler has a problem. In which case...
volatile is all about making sure that the "right" content is found in variables whenever they are read.
This applies, for instance, whenever data is written in an interrupt routine, while it is being read elsewhere, too. (The inverse is true as well) And that's where registers and optimization...
Your screen shot shows one additional difference: push and pop interaction with the stack (line 112 vs line 138). This is almost certainly a result of debug builds vs optimizing builds, or a difference between compiler versions.
In any event, try getting "push fp" on the Windows side, too, by...