<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikifr.techno-innov.fr/index.php?action=history&amp;feed=atom&amp;title=Technique%2FLogiciel%2FAPI%2FSrc_Layout</id>
	<title>Technique/Logiciel/API/Src Layout - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wikifr.techno-innov.fr/index.php?action=history&amp;feed=atom&amp;title=Technique%2FLogiciel%2FAPI%2FSrc_Layout"/>
	<link rel="alternate" type="text/html" href="https://wikifr.techno-innov.fr/index.php?title=Technique/Logiciel/API/Src_Layout&amp;action=history"/>
	<updated>2026-04-04T03:01:08Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wikifr.techno-innov.fr/index.php?title=Technique/Logiciel/API/Src_Layout&amp;diff=24&amp;oldid=prev</id>
		<title>Nathael : Page créée avec « {{DISPLAYTITLE:Organisation des sources pour les micro-contrôleurs}}  Les sources présentes dans les dépôts de chaque micro-contrôleur ont été organisées de façon... »</title>
		<link rel="alternate" type="text/html" href="https://wikifr.techno-innov.fr/index.php?title=Technique/Logiciel/API/Src_Layout&amp;diff=24&amp;oldid=prev"/>
		<updated>2020-09-02T03:25:43Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « {{DISPLAYTITLE:Organisation des sources pour les micro-contrôleurs}}  Les sources présentes dans les dépôts de chaque micro-contrôleur ont été organisées de façon... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:Organisation des sources pour les micro-contrôleurs}}&lt;br /&gt;
&lt;br /&gt;
Les sources présentes dans les dépôts de chaque micro-contrôleur ont été organisées de façon cohérente pour simplifier l&amp;#039;utilisation du code pour de nouveaux projets et le portage sur de nouveaux micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
== Langage des sources ==&lt;br /&gt;
L&amp;#039;ensemble des sources destinées à fonctionner sur les micro-contrôleurs (donc à l&amp;#039;exclusion du dossier &amp;#039;host&amp;#039;) est écrit en C (principalement) ou en assembleur (fichier &amp;#039;include/core/lpc_core.h&amp;#039; et quelques autres exceptions).&lt;br /&gt;
&lt;br /&gt;
== Fichiers présents à la racine ==&lt;br /&gt;
* Licence&lt;br /&gt;
La racine de chaque dépôt contient un ou plusieurs fichiers concernant la ou les licences utilisée.&lt;br /&gt;
* Readme&lt;br /&gt;
La racine de chaque dépôt contient un fichier &amp;#039;README&amp;#039; contenant une description des sources et l&amp;#039;état actuel du support du micro-contrôleur.&lt;br /&gt;
* Makefile&lt;br /&gt;
Ce Makefile sert de base et est utilisé par tous les Makefiles des différentes applications. Il permet aussi de compiler l&amp;#039;ensemble des applications en une fois. Voir la page [[Technique/Logiciel/API/Makefiles|Principe de fonctionnement des différents Makefiles]] pour de plus amples informations sur son contenu.&lt;br /&gt;
* Script d&amp;#039;édition de lien&lt;br /&gt;
Le script d&amp;#039;édition de lien (Linker Script) est utilisé par l&amp;#039;éditeur de lien (linker - ld) pour la création de l&amp;#039;éxécutable au format ELF en fin de compilation.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ce fichier décrit la mémoire (FLASH et RAM) du micro-contrôleur et la façon d&amp;#039;organiser le code dans cette mémoire.&amp;lt;br /&amp;gt;&lt;br /&gt;
L&amp;#039;article [[Articles/Nathael/Domotab_et_elec_Libre_partie5|Partie 5: Programmation : premiers signes de vie]] explique en grande partie son fonctionnement (entre autres). Se référer à la documentation de GNU ld pour plus d&amp;#039;informations.&lt;br /&gt;
&lt;br /&gt;
== Dossiers ==&lt;br /&gt;
Le code est organisé et réparti dans plusieurs sous-dossiers :&lt;br /&gt;
=== &amp;#039;core&amp;#039;===&lt;br /&gt;
Le dossier &amp;#039;core&amp;#039; contient le code correspondant au support des fonction internes du micro-contrôleur :&lt;br /&gt;
* démarrage (bootstrap),&lt;br /&gt;
* horloges (PLL),&lt;br /&gt;
* system tick timer (systick),&lt;br /&gt;
* configuration des entrées/sorties et fonctions spéciales (PIO),&lt;br /&gt;
* gestion d&amp;#039;énergie,&lt;br /&gt;
* chien de garde (watchdog),&lt;br /&gt;
* accès aux routines &amp;#039;ROM&amp;#039;,&lt;br /&gt;
* ...&lt;br /&gt;
=== &amp;#039;drivers&amp;#039; ===&lt;br /&gt;
Support des différents blocs fonctionnels du micro-contrôleur :&lt;br /&gt;
* GPIO,&lt;br /&gt;
* ADC,&lt;br /&gt;
* UART (serial),&lt;br /&gt;
* I2C,&lt;br /&gt;
* SPI (SSP),&lt;br /&gt;
* RTC,&lt;br /&gt;
* Timers,&lt;br /&gt;
* ....&lt;br /&gt;
=== &amp;#039;extdrv&amp;#039; ===&lt;br /&gt;
Drivers pour les composants externes (capteurs, transceivers, mémoires, afficheurs, ...), connectés en utilisant un des bus de communication du micro-contrôleur (SPI, I2C, ...), ou utilisant directement des GPIO.&amp;lt;br /&amp;gt;&lt;br /&gt;
=== &amp;#039;lib&amp;#039; ===&lt;br /&gt;
Éléments de bibliothèques diverses, principalement présents dans la bibliothèque C, et protocoles de communication.&lt;br /&gt;
=== &amp;#039;include&amp;#039; ===&lt;br /&gt;
Fichiers d&amp;#039;entête (header files) correspondant aux éléments précédents et reprenant la même organisation (core, drivers, extdrv, lib).&lt;br /&gt;
=== &amp;#039;apps&amp;#039; ===&lt;br /&gt;
Code des applications, organisé par module (cartes électroniques).&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque module dispose d&amp;#039;un sous-dossier dans le dossier &amp;#039;apps&amp;#039;, et chaque application destinée à un module donné est présente dans un sous-dossier du module en question.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque dossier d&amp;#039;application contient le code spécifique de l&amp;#039;application qui doit définir une fonction &amp;quot;main()&amp;quot; qui est le point d&amp;#039;entrée du programme et est appelé à partir du &amp;quot;Reset_Handler&amp;quot; présent dans &amp;#039;core/bootstrap.c&amp;#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ce code doit procéder à la configuration des fonctions internes et des entres/sorties et réaliser la boucle principale du programme.&amp;lt;br /&amp;gt;&lt;br /&gt;
Le code peut être réparti dans plusieurs fichiers dont le nom n&amp;#039;a pas d&amp;#039;importance pour la compilation.&lt;br /&gt;
Chaque dossier d&amp;#039;application contient aussi un Makefile &amp;quot;générique&amp;quot; (identique pour toutes les applications) qui fait appel au Makefile principal pour la compilation de l&amp;#039;application. (Voir la page [[Technique/Logiciel/API/Makefiles|Principe de fonctionnement des différents Makefiles]] pour plus d&amp;#039;informations).&lt;br /&gt;
=== &amp;#039;host&amp;#039; ===&lt;br /&gt;
Code d&amp;#039;exemple destiné à fonctionner sur les systèmes communicants avec les modules (PC de développement, passerelles, système de contrôle, ....)&amp;lt;br /&amp;gt;&lt;br /&gt;
Ce code peut faire appel à des bibliothèques externes (libC, bibliothèques graphiques, ...) et être écrit dans n&amp;#039;importe quel language.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
La compilation est prévue pour être réalisée en utilisant un cross-compilateur GCC et l&amp;#039;utilitaire &amp;#039;make&amp;#039; fonctionnant sur un système GNU/linux.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les explications sur l&amp;#039;utilisation d&amp;#039;un cross-compilateur sont présentes au début de l&amp;#039;article [[Articles/Nathael/Domotab_et_elec_Libre_partie5|Partie 5: Programmation : premiers signes de vie]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Voir la page [[Technique/Logiciel/API/Makefiles|Principe de fonctionnement des différents Makefiles]] pour de plus amples informations sur les Makefiles utilisés pour la partie micro-contrôleur.&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour la compilation des applications destinées aux systèmes communicants avec les modules (dossier &amp;#039;host&amp;#039;), se référer aux fichiers README présents dans les dossiers de ces applications et aux Makefiles correspondants.&lt;/div&gt;</summary>
		<author><name>Nathael</name></author>
	</entry>
</feed>