Compilation? problem with Arduino 1.8.12 and Olimexino STM32 board
Posted: Tue Apr 07, 2020 9:17 pm
Hi all,
I have developped a set of applications for the Olimexino STM32 board (a clone of Maple) back in 2014, first using the Maple environment, then I moved to the Arduino 1.8.3 IDE with Roger's package that was constantly evolving through the years. I still use it now, my developments are stable and I am ok with this.
However, my development environment is far from reliable, having been patched again and again. So I decided it was time to move to the new STM32Duino package, with the Arduino 1.8.12 IDE.
Indeed, the installation is much easier than before. No need to manually copy files at places, etc.
I ended up in a working environment, and I started the porting of my applications into this new environment.
For sake of safety i did not alter the computer I used to work with. I retrieved an old computer to do my tests, until I decide to update my newest computer. The old machine has been cleaned, and installed with Windows 10 before I started my trials. It worked rather quickly, and I started my porting work. One of the applications was already working: it involves the Ethernet library and FreeRTOS. Just to say it is not a simplistic sketch.
Unfortunately, last night my computer underwent an automatic windows update. Since then, I am unable to have an application work in my boards.
Since I have two environments, I can compare the results between the two for various experiments.
I started by cleaning my old computer again, unsintalling the IDE and the package, and re-installing the both.
I concentrated on two example applications: "blink" and "AnalogReadSerial".
Both work well on my newest computer. On the contrary, on my old computer, both applications compile with no warning, are uploaded to the board, and the board reboots, then nothing happens. Neither the LED blinks, nor the analog values can be shown in the serial monitor. Moreover, the USB com port (COM4 in my case) is not detected by the computer, whereas it is ok with the new computer.
So I can put to hypothesis:
-either the code is wrongly compiled;
-or it is wrongly uploaded.
At upload time, I get exactly the same output, that I paste below:
with the exception that the last sentence is followed by a timeout to reach COM4 on the old computer.
Another difference is that the size of the hashes is 288 in the good case, 176 in the wrong case. The transfer size is 0x400 in both cases.
Please note the error message saying (in french) that a non existent peripheral was specified. I have lived with this for years without any problem.
Can I suspect the windows update to have created some incompatibility that did not exist before? What can I try other than what I already did?
I have developped a set of applications for the Olimexino STM32 board (a clone of Maple) back in 2014, first using the Maple environment, then I moved to the Arduino 1.8.3 IDE with Roger's package that was constantly evolving through the years. I still use it now, my developments are stable and I am ok with this.
However, my development environment is far from reliable, having been patched again and again. So I decided it was time to move to the new STM32Duino package, with the Arduino 1.8.12 IDE.
Indeed, the installation is much easier than before. No need to manually copy files at places, etc.
I ended up in a working environment, and I started the porting of my applications into this new environment.
For sake of safety i did not alter the computer I used to work with. I retrieved an old computer to do my tests, until I decide to update my newest computer. The old machine has been cleaned, and installed with Windows 10 before I started my trials. It worked rather quickly, and I started my porting work. One of the applications was already working: it involves the Ethernet library and FreeRTOS. Just to say it is not a simplistic sketch.
Unfortunately, last night my computer underwent an automatic windows update. Since then, I am unable to have an application work in my boards.
Since I have two environments, I can compare the results between the two for various experiments.
I started by cleaning my old computer again, unsintalling the IDE and the package, and re-installing the both.
I concentrated on two example applications: "blink" and "AnalogReadSerial".
Both work well on my newest computer. On the contrary, on my old computer, both applications compile with no warning, are uploaded to the board, and the board reboots, then nothing happens. Neither the LED blinks, nor the analog values can be shown in the serial monitor. Moreover, the USB com port (COM4 in my case) is not detected by the computer, whereas it is ok with the new computer.
So I can put to hypothesis:
-either the code is wrongly compiled;
-or it is wrongly uploaded.
At upload time, I get exactly the same output, that I paste below:
Code: Select all
maple_loader v0.1
Resetting to bootloader via DTR pulse
Searching for DFU device [1EAF:0003]...
Found it!
Opening USB Device 0x1eaf:0x0003...
Found Runtime: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=1, name="DFU Program FLASH 0x08005000"
Setting Configuration 1...
Claiming USB DFU Interface...
Setting Alternate Setting ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0x0400
bytes_per_hash=288
Starting download: [##################################################] finished!
error resetting after download: usb_reset: could not reset device, win error: Un périphérique qui n’existe pas a été spécifié.
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode
Another difference is that the size of the hashes is 288 in the good case, 176 in the wrong case. The transfer size is 0x400 in both cases.
Please note the error message saying (in french) that a non existent peripheral was specified. I have lived with this for years without any problem.
Can I suspect the windows update to have created some incompatibility that did not exist before? What can I try other than what I already did?