Randapparatuur gebruiken in een realtime-compatibele toepassing
Realtime compatibele toepassingen (RTApps) kunnen randapparatuur toewijzen voor exclusief gebruik. Een of meer randapparatuur in een RTApp gebruiken:
- Voeg het randapparaat toe aan het toepassingsmanifest.
- Voeg een interrupt-handler (indien nodig) en andere ondersteunende code toe aan de toepassing.
- Voeg code toe om ervoor te zorgen dat elk randapparaat bij het opstarten een bekende goede status heeft.
Belangrijk
Raadpleeg de documentatie van de fabrikant van uw hardware voor hardwarespecifieke informatie over het programmeren van randapparatuur voor een RTApp. Zie het MT3620-gegevensblad en de mt3620-gebruikershandleiding voor registratiebasisadressen, interruptnummers, kloksnelheid, steekproeffrequentie en andere informatie over de MT3620; als er nog vragen zijn, kunt u details opvragen bij Avnet door een e-mail te sturen naar Azure.Sphere@avnet.com.
Alle resources die een RTApp gebruikt, moeten worden opgegeven in het toepassingsmanifest. In een RTApp moet u de naam gebruiken voor de resource die is toegewezen aan AppManifestValue in het JSON-bestand voor de hardwaredefinitie voor de doelchip. U kunt niet de naam op hoog niveau gebruiken die is toegewezen aan de resource in het headerbestand van de hardwaredefinitie. Als u bijvoorbeeld de waarde wilt vinden voor het identificeren van I2C op ISU0 op MT3620-hardware, zoekt u in het bestand mt3620.json in de map HardwareDefinitions die is geïnstalleerd in de map Microsoft Azure Sphere SDK. Dit randapparaat wordt als volgt gedefinieerd in het JSON-bestand:
{"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},
De waarde die is toegewezen aan AppManifestValue voor het I2C-randapparaat is 'ISU0'.
Gelijktijdig geladen toepassingen kunnen geen resources delen; resourcegebruik is exclusief voor één toepassing. Het Azure Sphere-besturingssysteem voert verschillende belangrijke taken uit wanneer de toepassing wordt geladen:
- Hiermee configureert u multiplexing, zodat de pinnen die aan het randapparaat zijn gekoppeld, worden geconfigureerd voor de aangevraagde functionaliteit.
- Hiermee stelt u kerntoewijzing in, waarbij firewalls moeten worden geconfigureerd, zodat de toepassing toegang heeft tot de registers die zijn gekoppeld aan de aangevraagde randapparatuur.
- Controleert het manifest en kan de toepassing niet laden als er resources worden geclaimd die al door een andere app zijn geclaimd.
In de rest van deze sectie vindt u meer informatie over het gebruik van specifieke randapparatuur.
Opmerking
Het Azure Sphere-besturingssysteem stelt randapparatuur niet opnieuw in bij het opstarten. Uw toepassingen moeten ervoor zorgen dat randapparatuur bij het opstarten of na het opnieuw opstarten een bekende goede status heeft.
Het opnieuw opstarten van het apparaat wordt geactiveerd wanneer een nieuwe toepassing die randapparatuur gebruikt, wordt geïnstalleerd en aan de volgende voorwaarden wordt voldaan:
- De productiestatus van het apparaat is ingesteld op DeviceComplete.
- De appDevelopment-mogelijkheid is niet aanwezig op het apparaat. Zie Randapparaatconfiguratievergrendeling voor meer informatie.
Als een apparaat opnieuw wordt opgestart, wacht u totdat het opnieuw opstarten is voltooid en het apparaat reageert.
Onderwerp | Beschrijving |
---|---|
APC's gebruiken in realtime compatibele toepassingen | Hierin wordt beschreven hoe u analoog-naar-digitaal-conversieprogramma's (APC's) gebruikt met Azure Sphere. |
GPIO gebruiken in realtime compatibele toepassingen | Hierin wordt beschreven hoe u gpio (input/output) voor algemeen gebruik gebruikt met Azure Sphere. |
GPT gebruiken in realtime compatibele toepassingen | Hierin wordt beschreven hoe u timers voor algemeen gebruik (GPT) gebruikt met Azure Sphere. |
I2C gebruiken in realtime compatibele toepassingen | Hierin wordt beschreven hoe u Inter-Integrated Circuit (I2C) gebruikt voor seriële communicatie. |
I2S gebruiken in realtime compatibele toepassingen | Beschrijft hoe u Integrated Interchip Sound (I2S) gebruikt met Azure Sphere |
PWM gebruiken in realtime compatibele toepassingen | Hierin wordt beschreven hoe u pulse width modulation (PWM) gebruikt met Azure Sphere. |
SPI gebruiken in realtime compatibele toepassingen | Hierin wordt beschreven hoe u Serial Peripheral Interface (SPI) gebruikt voor seriële communicatie. |
UART's gebruiken in realtime compatibele toepassingen | Hierin wordt beschreven hoe u UART's gebruikt voor seriële communicatie. |
Externe interrupts gebruiken in toepassingen die geschikt zijn voor realtime | Hierin wordt beschreven hoe u externe interrupts in een RTApp gebruikt om te reageren op externe signalen. |
Watchdog-timers gebruiken in realtime compatibele toepassingen | Beschrijft de effecten van het gebruik van watchdog-timers op de MT3620 realtime kernen. |