Onkos täällä muita jotka kehittävät (tai ovat kehittäneet) bare metal-koodia jollekkin ns. käyttisprossulle? Itsellä työn alla kyseisen levyn Allwinner H616 eli Cortex-A53 prossu. Tarkoitus on käyttää koodia Bigtreetechin CB1 Compute Modulen kanssa kunhan saan softan siihen kuosiin että on tärkeimmät ominaisuudet kunnolla käytössä. Toistaiseksi ei ole kuvan ulostulolle käyttöä joten se jää vielä tekemättä, mutta eihän sitä tiedä mitä jatkossa tapahtuu kunhan saa muuten valmiiksi.
Pitkään ST:n ARM-pohjaisilla prossuilla koodanneena (STM32F4xx) päätin apinoida hieman heidän kirjastojen koodin layouttia tähän projektiin. Tällä hetkellä käynnistyminen muistikortilta kestää noin 670ms. Tämä aika sisältää muistiyksikön alustuksen ja kaikkien ytimien käynnistämisen. Käynnistämiseen käytän pelkkää SPL:ää jolla käynnistetään oma koodi, eli U-Boot modattuna niin että ATF ja itse U-Boot ohitetaan kokonaan. Käynnistysaikaan pystyy mahdollisesti vielä hieman vaikuttamaan varsinkin kun pääsee käyttämään eMMC-muistia, mutta osan käynnistysajasta vie myös piirin oma bootloader joka valitsee käynnistysmedia ym. joihin ei pysty enää vaikuttamaan.
Tällä hetkellä menossa WiFin koodin rakentaminen. Tämä on hiukan hidasta hommaa koska käytännössä pitää harrastaa reverse engineeringiä että saa prossun ja WiFi-moduulin välillä kommunikoinnin toimimaan oikein, siihen kun ei mitään opuksia löydy netistä. Sama myös sitten bluetoothin kanssa kun samassa moduulissa mutta eri välylässä kiinni.
Miksi:
- Tarve real time-koodille joten peruskäyttis ei käy (lisäksi käyttisten pitkä käynnistymisaika)
- Ei sopivia mikrokontrollereita joissa olisi neljä ydintä
- Mikrokontrollerit yleensä huomattavasti hitaampia
- Flash ja RAM muistit huomattavasti isompia ja nopeampia
Mitä on jo toiminnassa: (ei välttämättä täysin valmiina mutta toimii välttävästi)
- Kaikkien toissijaisten ytimien käynnistys
- Muistinkäsittely
- Keskeytykset
- Ajastimet
- UART
- SPI
- I2C
Mitä vielä kesken:
- WiFi
- Bluetooth
- Natiivi USB
- eMMC
- Muistikortin käyttö softan latauksen jälkeen
Mango Pi MQ Quad: bare metal-koodi
Mango Pi MQ Quad: bare metal-koodi
- An expert is a man who has made all the mistakes which can be made in a very narrow field.
- Never be afraid to try something new. Remember, amateurs built the ark. Professionals built the Titanic.
Compute modulet, yhden levyn tietokoneet, kehitysalustat ym. komponentit verkkokaupastamme täältä
- Never be afraid to try something new. Remember, amateurs built the ark. Professionals built the Titanic.
Compute modulet, yhden levyn tietokoneet, kehitysalustat ym. komponentit verkkokaupastamme täältä