N108 est un système d'exploitation complet en temps réel écrit pour la puce TM4C123, avec la prise en charge des écrans LCD externes. Le noyau du système d'exploitation a été écrit à zéro. Le système d'exploitation repose sur certains matériels externes pour fonctionner correctement, mais peut être facilement modifié pour être autosuffisant. Pour une liste des ressources matérielles externes nécessaires, veuillez consulter ci-dessous.
Le système d'exploitation est interagi avec une coquille de type Unix. Le shell utilise la communication série via l'UART0 de la carte pour envoyer des commandes que vous tapez au système d'exploitation N108. Pour interfacer avec le système d'exploitation, connectez votre TM4C123 LaunchPad à votre ordinateur via USB et incendiez une interface série - comme Coolterm pour Mac ou Putty pour Windows - et connectez-vous au port série que vous utilisez. De là, vous devriez pouvoir voir l'invite de la coquille N108. Vous pouvez émettre des commandes à partir de cette interface.
N108 a un support complet de chargement de processus, vous pouvez donc compiler et lancer vos propres programmes TM4C123 en utilisant ce système d'exploitation, sans avoir à recompiler le système d'exploitation avec votre programme. Pour utiliser cette fonctionnalité, compilez votre programme indépendant à l'aide de Keil UVision (ou tout autre compilateur de bras intégré) et déposez le fichier ELF dans une carte SD formatée FAT32. Raccordez la carte SD à votre TM4C123 et exécutez le système d'exploitation. Dans le shell du système d'exploitation, tapez «Launch», où «est le nom du fichier ELF ARM que vous avez dans la carte SD. Le système d'exploitation doit lancer le programme et commencer à s'exécuter.
Le système d'exploitation prend en charge un seul appel système: OS_DISPlayMessage. L'appel vous permet d'imprimer des chaînes à l'écran LCD ST7735 attaché à la carte. Il prend 4 paramètres pour spécifier où, à l'écran, vous souhaitez que la carte affiche le texte. Plus d'appels peuvent être facilement ajoutés en modifiant le tableau de constante statique ElfSymbol_t Symboltable [] trouvé sous OS_CRITIQUE / OS.C, et en ajoutant un pointeur à votre nouvelle fonction.
Je pense ajouter plus d'appels système à ce domaine pour permettre des accès plus faciles des ressources SOC TM4C (au lieu des ressources externes). TBD.
Le système d'exploitation, hors de la boîte, s'appuie sur trois pièces de matériel externe pour fonctionner normalement: une puce externe pour interfacer le pilote série avec et pour émettre des commandes (comme un ordinateur personnel), un écran LCD et un lecteur de carte SD. L'écran LCD est utilisé comme source de sortie (avec le port série), et le lecteur de carte SD est utilisé par le système de fichiers et le chargeur de processus pour charger et exécuter des processus externes. Pour une liste des commandes d'interfaçage en série, veuillez consulter ci-dessous. J'ai personnellement utilisé un ST7735 car il permet l'interfaçage LCD et SD compatible SSI; Le schéma pour cela est également inclus ci-dessous.
Ce système d'exploitation est conçu pour les variations de la puce TM4C123 ARM. Cependant, la majeure partie de la couche d'abstraction matérielle est stockée sous OS_Critical / HardwareManager. Ce module peut être très facilement échangé pour les pilotes pris en charge sur d'autres appareils. Le système d'exploitation utilise les outils matériels suivants pour son fonctionnement principal:
UART:
PLL:
GPIO:
SSI:
Le code est conçu pour être utilisé avec Texas Instruments Code Composer Studio. Il suffit de cloner le référentiel et d'importer le projet dans votre espace de travail CCS. Le projet devrait se développer, sans aucun travail supplémentaire nécessaire.
Ce système d'exploitation clignotera hors de la boîte sur un Launchpad TI TM4C123.
Le système d'exploitation utilise un LCD externe ST7735 pour deux choses: en tant que LCD et en tant que lecteur de carte SD externe pour son système de fichiers. Mon système d'exploitation a également été utilisé à d'autres fins - comme l'interfaçage avec les capteurs - veuillez donc ignorer toutes les connexions étrangères dans la deuxième image. Ce qui est important, c'est que le ST7735 soit connecté.
Voici les schémas pour savoir comment connecter cela à votre lancement: 

L'interfaçage principal entre le système d'exploitation (fonctionnant sur la carte) se fait via le port UART série intégré. Vous pouvez utiliser n'importe quel programme Terminal sur votre ordinateur - comme CoolEdge sur Mac ou Putty sur Windows - pour envoyer ces commandes sur l'interprète OS une fois le démarrage terminé.
Hors de la boîte, le système d'exploitation prend en charge les commandes suivantes, comme on le voit dans shell / shell.c:
char* commandFormat[] =
{
"help",
"runproc <processname>"
}
Très Barebones, mais l'idée ici est d'ajouter vos propres commandes et d'interface avec le reste du système d'exploitation. Aidez essentiellement à imprimer cette même liste, tandis que RunProc charge un processus externe (stocké dans la carte SD insérée dans la carte de rupture ST7735) et commence à exécuter ce programme. Pendant le ralenti, seul l'interprète fonctionne.