Använda kringutrustning i ett realtidskompatibelt program
Viktigt!
Det här är dokumentationen om Azure Sphere (Legacy). Azure Sphere (Legacy) upphör den 27 september 2027 och användarna måste migrera till Azure Sphere (integrerad) vid den här tiden. Använd versionsväljaren ovanför TOC för att visa dokumentationen om Azure Sphere (integrerad).
Realtidskompatibla program (RTApps) kan mappa kringutrustning för exklusiv användning. Så här använder du en eller flera kringutrustningar i en RTApp:
- Lägg till kringutrustningen i programmanifestet.
- Lägg till en avbrottshanterare (om det behövs) och annan stödjande kod i programmet.
- Lägg till kod för att säkerställa att varje kringutrustning är i ett känt bra tillstånd vid start.
Viktigt!
Maskinvaruspecifik information om hur du programmerar kringutrustning för en RTApp finns i dokumentationen från maskinvarutillverkaren. För registerbasadresser, avbrottsnummer, klockfrekvens, samplingsfrekvens och annan information om MT3620, se MT3620-databladet och användarhandboken för MT3620 M4. Om frågor kvarstår kan du begära information från Avnet via e-postAzure.Sphere@avnet.com.
Alla resurser som en RTApp använder måste anges i programmanifestet. I en RTApp måste du använda namnet på resursen som har tilldelats AppManifestValue i JSON-filen för maskinvarudefinitionen för målchipet. Du kan inte använda det högnivånamn som tilldelats resursen i huvudfilen för maskinvarudefinitionen. Om du till exempel vill hitta värdet för att identifiera I2C på ISU0 på MT3620-maskinvara tittar du i filen mt3620.json i mappen HardwareDefinitions som är installerad i microsoft Azure Sphere SDK-mappen. Den här kringutrustningen definieras enligt följande i JSON-filen:
{"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},
Observera att värdet som tilldelats AppManifestValue för I2C-kringutrustningen är "ISU0".
Samtidigt inlästa program kan inte dela resurser. resursanvändning är exklusivt för ett enda program. Azure Sphere OS utför flera viktiga uppgifter när programmet läses in:
- Konfigurerar multiplexering så att de stift som är associerade med kringutrustningen konfigureras för de begärda funktionerna.
- Konfigurerar kärnmappning, vilket innebär att konfigurera brandväggar så att programmet har åtkomst till de register som är associerade med den begärda kringutrustningen.
- Kontrollerar manifestet och kan inte läsa in programmet om det gör anspråk på resurser som redan har begärts av en annan app.
Resten av det här avsnittet innehåller information om hur du använder specifik kringutrustning.
Kommentar
Azure Sphere OS återställer inte kringutrustning vid start. Dina program bör se till att kringutrustningen är i ett känt bra tillstånd vid start eller efter omstart.
En omstart av enheten utlöses när ett nytt program som använder kringutrustning installeras och följande villkor uppfylls:
- Enhetens tillverkningstillstånd är inställt på DeviceComplete.
- Funktionen appDevelopment finns inte på enheten. Mer information finns i Låsning av kringutrustningskonfiguration.
Om en omstart av enheten initieras väntar du tills omstarten är klar och enheten blir responsiv.
Område | beskrivning |
---|---|
Använda ADC:er i realtidskompatibla program | Beskriver hur du använder analoga till digitala konverterare (ADCs) med Azure Sphere. |
Använda GPIO i realtidskompatibla program | Beskriver hur du använder allmän användning av indata/utdata (GPIO) med Azure Sphere. |
Använda GPT i realtidskompatibla program | Beskriver hur du använder GPT (General Purpose Timers) med Azure Sphere. |
Använda I2C i realtidskompatibla program | Beskriver hur du använder interintegrerad krets (I2C) för seriekommunikation. |
Använda I2S i realtidskompatibla program | Beskriver hur du använder Integrated Interchip Sound (I2S) med Azure Sphere |
Använda PWM i realtidskompatibla program | Beskriver hur du använder pulsbreddsmodulering (PWM) med Azure Sphere. |
Använda SPI i realtidskompatibla program | Beskriver hur du använder SPI (Serial Peripheral Interface) för seriell kommunikation. |
Använda UART i realtidskompatibla program | Beskriver hur du använder UART för seriell kommunikation. |
Använda externa avbrott i realtidskompatibla program | Beskriver hur du använder externa avbrott i en RTApp för att svara på externa signaler. |
Använda vakthundstimers i realtidskompatibla program | Beskriver effekterna av att använda vakthundstimers på realtidskärnorna för MT3620. |