Inhoudsopgave:

Seriële foutopsporing met CloudX: 3 stappen
Seriële foutopsporing met CloudX: 3 stappen

Video: Seriële foutopsporing met CloudX: 3 stappen

Video: Seriële foutopsporing met CloudX: 3 stappen
Video: Proyecto de heliostato Templastat / Templastat Heliostat Project: improvements, updates and test 2024, November
Anonim
Seriële foutopsporing met CloudX
Seriële foutopsporing met CloudX

In dit project wil ik het concept van debuggen via de seriële terminal uitleggen. Maar laten we eerst als starter het concept uitleggen aan de hand van zijn betekenissen.

1. seriële communicatie

seriële communicatie is voor communicatie tussen het CloudX-bord en een computer of andere apparaten. Alle CloudX-kaarten hebben minimaal één seriële poort (ook wel UART of USART genoemd): Serieel. Het communiceert op digitale RX- en TX-pin met andere hardware of seriële communicatiemodules (zoals gsm en gps) zoals met de computer via USB met behulp van de SoftCard. Als u deze functies gebruikt, kunt u dus niet ook TX en RX gebruiken voor digitale invoer of uitvoer. U kunt de ingebouwde seriële monitor van de CloudX-omgeving gebruiken om te communiceren met een CloudX-bord. Klik op de seriële monitorknop in de werkbalk en selecteer dezelfde baudrate die wordt gebruikt in de parameter die aan serialBegin() wordt aangeroepen.

2. Foutopsporing:

Debugging betekent eenvoudigweg fouten identificeren en verwijderen uit (computerhardware of -software). Debugging omvat het lokaliseren en corrigeren van codefouten in een computerprogramma. Debuggen maakt deel uit van het softwaretestproces en is een integraal onderdeel van de gehele levenscyclus van softwareontwikkeling. Laten we bijvoorbeeld aannemen dat uw code succesvol is gecompileerd en dat u uw hardware aan het testen bent en dat het niet werkt zoals verwacht, hoewel er veel manieren zijn om uw code te debuggen; een eenvoudige en effectieve manier om het te debuggen is door het gebruik van seriële debugging. De CloudX IDE genereert 2 soorten bestanden bij succesvolle compilatie, HEX- en COFF-bestand. Het HEX-bestand is strikt machinecode, wat in het bord wordt geladen voor uitvoering in de echte wereld, maar kan ook worden uitgevoerd op uw pc-simulatiesoftware zoals Proteus Isis, terwijl het COFF-bestand een leesbaar formaat is dat kan worden uitgevoerd op uw pc-simulatiesoftware (Proteus Isis). Voor deze scope zullen we twee basistypes van debuggen op serieel protocol beschouwen,

1. Zachte seriële foutopsporing:

Bij deze methode wordt elke test en foutopsporing op de pc uitgevoerd via een aantal handige software zoals Proteus ISIS. Omdat de CloudX in feite een COFF-bestand genereert, raad ik aan dit te gebruiken voor pc-simulatie, omdat je hiermee in principe tussen regels met codes kunt stappen en kunt achterhalen waar een probleem vandaan komt, en als je code moet worden uitgevoerd zonder te stappen, met behulp van virtuele teminal van de "virtuele instrumentmodus", kunt u altijd weten waar de regeleenheid op een bepaald moment loopt. laten we eens kijken naar dit codevoorbeeld,

Stap 1:

Afbeelding
Afbeelding
Afbeelding
Afbeelding

/*

* Bestand: newmain.c

* Auteur: OGBOYE GODWIN * * Gemaakt op 28 juni 2018, 10:15 uur */

#erbij betrekken

#erbij betrekken

/* we zullen maken

rood pin1 groen pin2 geel pin3 * knop pin4 */ char *tell= "hmmm, ik ben aangeraakt"; setup(){ pinMode(1, OUTPUT); pinMode(2, UITGANG); pinMode (3, UITGANG); pinMode (4, INGANG); Serial_begin (9600); loop(){ while(!readPin(4)); Serial_writeText (vertellen); Serial_writeText("….verhuizen naar rood"); Serial_write (0x0D); portWrite(1, 0x00); pinSelect(1, HOOG); vertragingen (200); // probeer alle vertragingen van commentaar te verwijderen en kijk wat er gebeurt // vervang ze dan (je zult het zeker leuk vinden!). while(!readPin(4)); Serial_writeText (vertellen); Serial_writeText("….verhuizen naar groen"); Serial_write (0x0D); portWrite(1, 0x00); pinSelect(2, HOOG); vertragingen (200); // probeer alle vertragingen van commentaar te verwijderen en kijk wat er gebeurt // vervang ze dan (je zult het zeker leuk vinden!).

while(!readPin(4));

Serial_writeText (vertellen); Serial_writeText("….verhuizen naar geel"); Serial_write (0x0D); portWrite(1, 0x00); pinSelect (3, HOOG); vertragingen (200); // probeer alle vertragingen van commentaar te verwijderen en kijk wat er gebeurt // vervang ze dan (je zult het zeker leuk vinden!). } }

hiermee kun je zien hoe de seriële debugging belangrijk is als je de vertragingen verwijdert. als je dat deed, zou je hebben gezien hoe lastig die eenvoudige code kan veroorzaken als het in de echte wereld wordt uitgevoerd zonder die vertragingen.

Stap 2:

Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding

2. Hardware-foutopsporing:

Bij deze methode wordt elke test en foutopsporing gedaan door het CloudX-prototypebord aan de pc te bevestigen met behulp van de softCard en gebruik te maken van de seriële terminal van CloudX IDE (aanbevolen) of een andere nuttige software zoals Proteus ISIS compim, realTerm, enz. Genereer COFF bestand kan hier niet worden gebruikt omdat deze methode vereist dat HEX wordt opgestart in de hardware, ik raad aan dit te gebruiken voor CloudX-softcard. Merk op dat uw code zonder stappen wordt uitgevoerd, zodat u altijd kunt weten waar de regel is dat de controller op een bepaald moment wordt uitgevoerd door de seriële uitgang. laten we deze code eens bekijken, hetzelfde voorbeeld hierboven vermeld, stel uw hardware zo in dat deze vergelijkbaar is met die van rode LED --------- naar pin1 groene LED --------- pin2 gele LED -- ------- pin3 knop --------- pin4

Stap 3:

Afbeelding
Afbeelding

stappen

1. Gebruik dezelfde code als hierboven

2. bootload naar je bord

3. start de CloudX seriële terminal door op de knop "serieel" in de werkbalk te klikken

4. selecteer de gewenste poort en baudrate (9600 in deze tutorial)

5.start de terminal door op verbinden te klikken (verbreek de verbinding als u wilt stoppen)

6. met de poort geopend/aangesloten, drukt u naar believen kort op de knop en u ziet de seriële uitgang op de terminalvensters. Merk op dat als je de vertragingen van de code hebt, je meerdere regels seriële uitvoer zo snel en ongecontroleerd binnen krijgt voordat je je handen van de knop haalt. Als je om welke reden dan ook in je code een dergelijk of soortgelijk probleem hebt, kun je altijd deze methode gebruiken om fouten op te sporen.

Aanbevolen: