<commit_before># 1. UART 
Schrijf embedded software voor de Cortex M3 in het SmartFusion ontwikkelbord die via de UART met een PC communiceert.
 * Configureer de microcontroller en zijn I/O (voor dit labo: schakel alle I/O behalve de UART uit)
 * Schrijf en compileer een elementair C programma m.b.v. SoftConsole
 * Upload het programma naar het ontwikkelbord
 * Analyseer de correcte werking aan de hand van on-chip debugging.
 * Communiceer via de seriële poort met het ontwikkelbord

### Verslaggeving
Maak één gecomprimeerd .zip bestand dat alle gevraagde documenten bevat.

Voeg de nodige bewijsstukken toe:
 * De originele C broncode: (alle SoftConsole bestanden) (geef duidelijk aan welke files bij welke opgave behoren)
 * Verslag in pdf formaat met een bespreking van de werking van de zelf geschreven/toegevoegde code.

Geef dit document af via Blackboard. 
De inleverdeadline wordt vermeld op Blackboard.

### Getting started
Download en installeer de Microsemi Libero SOC1 ontwikkelomgeving op je laptop.
De installatie bestanden zijn beschikbaar tijdens de les op USB stick (en voor of na de les in mijn bureau).

We maken gebruik van het "Microsemi SmartFusion Evaluation Kit" ontwikkelbord.

De handleidingen, tutorials en veel andere informatie voor dit ontwikkelbord zijn online
beschikbaar.
 * http://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/smartfusion/smartfusion-evaluation-kit
 * http://www.actel.com/FPGA/SmartFusion (oude website)

## 1.1. UART voorbeeldprogramma: "Hello World"
Installeer het voorbeeldprogramma beschreven in de 
[smartfusion schema (pdf)](https://github.com/AP-Elektronica-ICT/EmbeddedSystems/raw/master/Documentation/0_Tutorials/UART%20SoftConsole%20Standalone/SmartFusion_UART_SW_flow_tutorial_UG.pdf)
"SmartFusion UART SW flow tutorial UG.pdf" op het ontwikkelbord.

Bestudeer en pas het programma aan zodat je de werking goed begrijpt.

Vanaf versie 11.5 van Libero SoC is de flow voor het starten van een nieuw project iets eenvoudiger geworden.
I.p.v. eerst Softconsole op te starten en daar Libero in te stellen als een "external tool" kan je nu in Libero de Wizard achter de knop "new project" volgen.
Hierdoor zijn de stappen beschreven in de eerste vijftal pagina's van de tutorial zo goed als overbodig geworden.

De benodigde info om de wizard correct te doorlopen staat echter wel in de tutorial:
 * Family: SmartFusion
 * Type development kit: A2F200M3F
 * Package: 484 FBGA
 * Speed: STD
 * Voltage: 1.5
 * Operating conditions: STD

Van deze opgave verwacht ik niets in je verslag.

## 1.2. Software Bibliotheek
Pas het voorbeeldprogramma aan door een eigen bibliotheek aan het project toe te voegen. (myLib.h en myLib.c)

Voeg de bibliotheek toe door rechts te klikken op het "app" project en selecteer "new -> header file" en nadien "new -> c source file". 

Include uw header file in de main.c file om uw eigen functies te kunnen aanroepen.
 * myLib.h bevat de functie prototypes en de definities van constanten.
 * myLib.c bevat de implementatie van de functie prototypes
 
Pas het programma aan dat een zelf gekozen tekst die wordt gedefinieerd binnen uw myLib bestanden vanuit de main functie wordt afgedrukt.
 * Maak een functie: “printMyText()”: die een stukje tekst afdrukt
 * Maak een functie: “printThisText(message, length)”: die de eerste length letters tekst waarnaar wordt verwezen met message afdrukt<commit_msg>lab1: uart - small edit<commit_after># 1. UART 
Schrijf embedded software voor de Cortex M3 in het SmartFusion ontwikkelbord die via de UART met een PC communiceert.
 * Configureer de microcontroller en zijn I/O (voor dit labo: schakel alle I/O behalve de UART uit)
 * Schrijf en compileer een elementair C programma m.b.v. SoftConsole
 * Upload het programma naar het ontwikkelbord
 * Analyseer de correcte werking aan de hand van on-chip debugging.
 * Communiceer via de seriële poort met het ontwikkelbord

### Verslaggeving
Maak één gecomprimeerd .zip bestand dat alle gevraagde documenten bevat.

Voeg de nodige bewijsstukken toe:
 * De originele C broncode: (alle SoftConsole bestanden) (geef duidelijk aan welke files bij welke opgave behoren)
 * Verslag in pdf formaat met een bespreking van de werking van de zelf geschreven/toegevoegde code.

Geef dit document af via Blackboard. 
De inleverdeadline wordt vermeld op Blackboard.

### Getting started
Download en installeer de Microsemi Libero SOC1 ontwikkelomgeving op je laptop.
De installatie bestanden zijn beschikbaar tijdens de les op USB stick (en voor of na de les in mijn bureau).

We maken gebruik van het "Microsemi SmartFusion Evaluation Kit" ontwikkelbord.

De handleidingen, tutorials en veel andere informatie voor dit ontwikkelbord zijn online
beschikbaar.
 * http://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/smartfusion/smartfusion-evaluation-kit
 * http://www.actel.com/FPGA/SmartFusion (oude website)

## 1.1. UART voorbeeldprogramma: "Hello World"
Installeer het voorbeeldprogramma beschreven in de
[SmartFusion UART SW flow tutorial UG](https://github.com/AP-Elektronica-ICT/EmbeddedSystems/raw/master/Documentation/0_Tutorials/UART%20SoftConsole%20Standalone/SmartFusion_UART_SW_flow_tutorial_UG.pdf)
op het ontwikkelbord.

Bestudeer en pas het programma aan zodat je de werking goed begrijpt.

Vanaf versie 11.5 van Libero SoC is de flow voor het starten van een nieuw project iets eenvoudiger geworden.
I.p.v. eerst Softconsole op te starten en daar Libero in te stellen als een "external tool" kan je nu in Libero de Wizard achter de knop "new project" volgen.
Hierdoor zijn de stappen beschreven in de eerste vijftal pagina's van de tutorial zo goed als overbodig geworden.

De benodigde info om de wizard correct te doorlopen staat echter wel in de tutorial:
 * Family: SmartFusion
 * Type development kit: A2F200M3F
 * Package: 484 FBGA
 * Speed: STD
 * Voltage: 1.5
 * Operating conditions: STD

Van deze opgave verwacht ik niets in je verslag.

## 1.2. Software Bibliotheek
Pas het voorbeeldprogramma aan door een eigen bibliotheek aan het project toe te voegen. (myLib.h en myLib.c)

Voeg de bibliotheek toe door rechts te klikken op het "app" project en selecteer "new -> header file" en nadien "new -> c source file". 

Include uw header file in de main.c file om uw eigen functies te kunnen aanroepen.
 * myLib.h bevat de functie prototypes en de definities van constanten.
 * myLib.c bevat de implementatie van de functie prototypes
 
Pas het programma aan dat een zelf gekozen tekst die wordt gedefinieerd binnen uw myLib bestanden vanuit de main functie wordt afgedrukt.
 * Maak een functie: “printMyText()”: die een stukje tekst afdrukt
 * Maak een functie: “printThisText(message, length)”: die de eerste length letters tekst waarnaar wordt verwezen met message afdrukt
{'fraction_non_alphanumeric': 0.05311948204826369, 'fraction_numerical': 0.007504414361389052, 'mean_word_length': 4.659450457951707, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3459945', 'n_tokens_mistral': 2288, 'n_tokens_neox': 2229, 'n_words': 909}