Border line programming: Compilato ed installato il NET MicroFramework sulla scheda Olimex STM32-E407

Costruire apparecchiature embedded trovo che sia estremamente più divertente e soddisfacente che passare ore a scrivere software gestionale in Visual Basic.

Ogni tanto mi incaponisco su una cosa, e generalmente riesco a portarla alla fine. Questa volta mi è beccata la fissa di fare i porting del NetMF sulla scheda STM32-E407 della Olimex, che mi sono comperato per giocare con il Chibios, e che potete trovare  qui. In realtà non è che la cosa sia una “novità” assoluta, visto che la ricompilazione l’avevo già fatta per la STM32F4Discovery di ST, tuttavia stavolta mi muovevo su un terreno un po’ “diverso” visto che si trattava di modificare il porting per una nuova piattaforma, nonché di caricarlo con procedure diverse, stante la mancanza di doc in giro.

Non solo, visto che mi piace farmi del male, ho voluto compilare il framework non con il solito MDK della Keil, ma con il gratuito GCC.

Dopo un paio di settimane di imprecazioni, di attese davanti alla shell per vedere il risultato, il risultato è un porting discretamente funzionante (ha ancora un grosso bug sul quale sto lavorando), ed una scheda con grosse potenzialità sulla quale lavorare.

Per compilare ho usato il GCC nella distribuzione 4.7.3 di launchpad, scaricabile da  qui.

Questo

Screenshot 2014-02-18 14.06.56

è il risultato della compilazione.

Per scaricare il bootloader nel micro ho usato il CooCox (free pure lui) e come programmatore l’ARM-USB-OCD-H sempre di Olimex.

Dopo aver scaricato il bootloader ho riavviato la scheda ed ho quindi scaricato il resto del NetMF tramite l’MFDeploy, nella cartella Tools del NetMF stesso.

Al termine ho controllato il risultato e…

Screenshot 2014-02-18 17.14.26

Come si vede, il CLR risponde correttamente.

Ho quindi scritto la solita applicazione idiota per fare blinkare il led

Option Explicit On
Option Strict On
Imports System
Imports System.Threading
Imports Microsoft.SPOT
Imports Microsoft.SPOT.Hardware

Namespace STM32E407_First_Project

    Public Module Module1

        Sub Main()
            Dim Led As New OutputPort(Microsoft.SPOT.Hardware.STM32F4.Pins.GPIO_PIN_C_13, False)
            While True
                Led.Write(True)
                Thread.Sleep(1000)
                Led.Write(False)
                Thread.Sleep(1000)
            End While
        End Sub

    End Module

End Namespace

e dopo 5 secondi, ecco che sono riuscito a gestire il tutto dal visual studio.

A breve con altre novità