4.08.2015

Bliskie spotkanie z .NET Micro Framework 4.4

Jakiś czas temu dla wersji NET MF 4.4 (4.4 Beta 2 is here!) pojawiła się solucja dla STM32F4Discovery. Postanowiłem więc skompilować SDK oraz solucję. Może się komuś przyda. Pliki dostępne są w repozytorium: MicroFrameworkSDK i obrazów hex. Najpierw zainstalować trzeba SDK z pliku MicroFrameworkSDK.msi, a następnie rozszerzenie vsix dla odpowiedniej wersji Visual Studio. Pliki hex wgrywamy standardowo poprzez MFDeploy. Instalacja przebiega gładko. Natomiast później można napotkać pewne problemy, które opiszę poniżej.

Na systemie Windows 8 i Visual Studio 2015 nie powinno być większych problemów. Schody mogą się pojawić na wersji Windows 7 i Visual Studio 2013.

Problem 1: sterownik USB.
W tej wersji NET MF nie są wymagane jakieś specjalne sterowniki. System sam powinien wykryć i zainstalować sterownik WinUSB dla STM32F4Discovery. Czasami może się automatycznie podpiąć jakiś inny sterownik. Wówczas trzeba go usunąć i pozwolić systemowi na zainstalowanie domyślnego. Jak ma to poprawnie wyglądać jest poniżej:

Windows 8Windows 7

W pewnych przypadkach na Windows 7 sterowniki nie zostaną zainstalowane automatycznie. Trzeba wówczas samemu pobrać sterownik i zainstalować ręcznie. Sterownik Microsoft - Other hardware - WinUsb Device można pobrać ze strony http://catalog.update.microsoft.com (tylko Internet Explorer).

Problem 2: MetaDataProcessor exited with code -1073741515.
Jeśli używamy tylko Visual Studio 2013 (nie mamy zainstalowanego Visual Studio 2015), to prawdopodobnie, przy pierwszej kompilacji, dostaniemy komunikat:


Ręczne uruchomienie MetaDataProcessor.exe pozwoli na uzyskanie dokładniejszej informacji o błędzie: The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing. Musimy zainstalować Visual C++ Redistributable for Visual Studio 2015.

Problem 3: zmienione piny.
W solucji zostały zmienione niektóre piny w stosunku do poprzedniej wersji. Różnice poniżej:

I2C pins: scl=PB8 sda=PB9

Brak PWMChannel4 .. PWMChannel7

AnalogChannel0: pin=PA0
AnalogChannel1: pin=PA1
AnalogChannel2: pin=PA2
AnalogChannel3: pin=PA3
AnalogChannel4: pin=PF6
AnalogChannel5: pin=PF7
AnalogChannel6: pin=PF8
AnalogChannel7: pin=PF9
AnalogChannel8: pin=PF10
AnalogChannel9: pin=PF3
AnalogChannel10: pin=PC0
AnalogChannel11: pin=PC1
AnalogChannel12: pin=PC2
AnalogChannel13: pin=PC3
AnalogChannel14: pin=PF4
AnalogChannel15: pin=PF5

COM1: (rx, tx, cts, rts)=(PB7, PB6, PP15, PP15)
COM2: (rx, tx, cts, rts)=(PD6, PD5, PD3, PD4)
COM3: (rx, tx, cts, rts)=(PC11, PC10, PD11, PD12)
COM4: (rx, tx, cts, rts)=(GPIO_NONE, GPIO_NONE, GPIO_NONE, GPIO_NONE)
COM5: (rx, tx, cts, rts)=(GPIO_NONE, GPIO_NONE, GPIO_NONE, GPIO_NONE)
COM6: (rx, tx, cts, rts)=(GPIO_NONE, GPIO_NONE, GPIO_NONE, GPIO_NONE)

To wszystko. Możemy spróbować sił z NET MF 4.4. Jeśli pojawią się jakieś poprawki będę próbował na bieżąco kompilować i SDK i solucję.

Brak komentarzy:

Prześlij komentarz