En temps réel puce du système d'exploitation Nucleus greffe plus de LTE230

Zhou Chunliang 1,2, 1,2 Fan Wenjie, Wang Liancheng 1,2, 1,2 Feng Xi, Zhou Zhimei 1,2, 1,2 Tangxiao Ke

(1. Pékin-core Microelectronics Technology Co., Ltd Laboratoire clé de State Grid Corporation de laboratoire d'analyse de conception de puces de puissance, Beijing 100192, Chine; 2. Pékin-core Microelectronics Technology Co., Ltd Beijing IC Design Engineering Research Center pour une haute fiabilité puissance , Beijing 100192, Chine)

: En introduisant le système d'exploitation en temps réel puce Nucleus Plus et LTE230 et plate-forme matérielle, traite de la greffe Nucleus plus lors du démarrage du système, l'initialisation du système, la gestion de la mémoire, la gestion d'interruption, interruption avancée et la gestion des tâches et des essais du système d'exploitation, souligne le Nucleus important et difficile plus sur la transplantation de puce LTE230. À l'heure actuelle du système d'exploitation portable a été appliqué avec succès le module de communication LTE230, système d'exploitation en temps réel, les interruptions et le système de gestion des tâches pour répondre pleinement à la demande.

: TP316.2 Code du document: ADOI: 10,19358 / j.issn.1674-7720.2017.01.007

Format de référence : Zhou Chunliang, Fan Wenjie, Wang Liancheng, et un autre système d'exploitation en temps réel Nucleus plus puce LTE230 de transplantation [J] ses applications, 2017,36 (1): 22-24,31.

0 introduction

puce LTE230 pour 230M Network Power Communication sans fil puce de bande de base Terminal de presse, la technologie radio logicielle à puce, en plus de la partie de domaine de la couche physique mis en oeuvre par un circuit de fréquence intermédiaire, un accès fréquence de la couche physique et bit au niveau des symboles, couche de protocole de médias et une ressource radio contrôle, protocole de couche réseau et puces de gestion de l'appareil sont utilisés à l'intérieur et à l'extérieur beaucoup CEAVX1643 DSP (appelé X1643) logiciel pour atteindre [1], de sorte que le logiciel est très complexe, impliquant de nombreuses interruptions et des tâches en temps réel exigeant, sur la base traditionnelle architecture logicielle de déclenchement d'interruption ne peut pas répondre aux besoins de la puce de bande de base, doit système d'exploitation en temps réel et de son mécanisme de planification multi-tâche introduite dans, pour terminer l'agrandissement et la mise à jour d'une variété de fonctions et caractéristiques du système grâce à une gestion multi-tâches, pour simplifier le logiciel DSP la conception, le but d'améliorer l'efficacité du développement.

Les systèmes actuels d'exploitation en temps réel commerciaux traditionnels ne prennent pas en charge X1643, alors que l'expérience nécessaire pour soutenir le système d'exploitation des fabricants de puces CEVA DSP sont sur leur propre greffe après l'achat, ils peuvent apprendre très peu. Après une évaluation approfondie, en tenant compte de la taille du noyau en temps réel, le nombre d'utilisateurs et de nombreux autres facteurs, et en fin de compte choisi le système d'exploitation Nucleus plus Mentor Graphics (Nucleus) comme objet portable. Nucleus est conçu pour les applications en temps réel embarqués dans un système multi-tâches préemptif basé sur la priorité opérationnelle, et un autre processeur de support grand public ARM, la dernière version de près de 99% du code est écrit en ANSI C, et très portable. Dans un environnement cible typique, le code de base ne dépasse pas 20 Ko. méthode Nucleus utilisant des composants logiciels, faciles à remplacer et réutiliser des composants communs comprennent un contrôle des tâches, la gestion de la mémoire, la gestion d'interruption, la gestion de la minuterie, etc. [2].

Une puce et plate-forme matérielle

Une puce DSP dans le SoC en tant que noyau, une configuration générale représentée sur la figure 1, l'intégration de la puce de processeurs à haute performance X1643, mémoire de grande capacité eDRAM, avec agrégation de support et le module général IF UART, SPI, I2C , minuterie, WDT, GPIO, PWM et d'autres périphériques.

Module de communication en utilisant la puce puce puce + RF avec le programme illustré à la figure 2 en fonction. L'interface de commande entre la puce RF et une puce de bande de base SPI, des données d'interface JESD207; et de contrôle et les interfaces de données entre les bornes de puissance sont tous les deux en série.

2 migration du système d'exploitation

Nucleus ne supporte pas X1643, transplantation au démarrage du système, l'initialisation du système, la gestion de la mémoire, la gestion des interruptions et la gestion des tâches, le travail sur la puce. X1643 seule instruction multiple données SIMD, et le mot d'instruction très long l'architecture VLIW réunies, autour de laquelle une pluralité de registres de base 100, y compris les registres d'accumulation d'ACF, d'adressage des registres des ARF, des registres de programme SRF, le mode de MSR et des registres d'état, pour déterminer registre PR et un sous-système de stockage MSSR registre catégories [3], par rapport au processeur ARM, le classement et le registre de fonction sont tout à fait différents, le registre doit utiliser une transplantation spéciale d'attention.

2.1 démarre système

Chip pour contrôler le mode de démarrage par BootStrap Pin. BootROM peut être guidé à travers la série SPI ou l'application Flash et le système d'exploitation est chargé dans l'exécution TCM et eDRAM; soutien X1643 en partant d'une adresse désignée de l'unité de commande peut être par l'intermédiaire du SPI SPI directement à partir du lanceur de mode de mémoire flash, en au début du processus de mise au point, vous pouvez utiliser des programmes de téléchargement de l'émulateur JTAG directement au début de la mise en uvre du TCM et eDRAM. processeur ARM et similaires est légèrement différent, le programme TCM X1643 ne peut pas accéder au bus de données interne et la puce de bus de système ne peuvent être chargés par le programme ou en utilisant JTAG Programme DMA.

initialisation du système 2,2

Une fois le système démarre correctement, le curseur PC passera à l'adresse zéro, qui est, le programme d'initialisation TCM, le début du système. Première initialisation de niveau de carte, le processus principal représenté sur la figure.

Dans BootROM réinitialise l'horloge et l'initialisation de base de commande de mémoire, l'initialisation de l'opération principale du système d'exploitation lui-même et le panneau de base lors de l'initialisation X1643. Démarrer le système d'exploitation sur le pool de mémoire de la pile du système, après le passage à la pile du système, l'espace occupé par le début de la pile seront récupérés au pool de mémoire. X1643 fournir « saturation », « en passant », « mode » est pendant des opérations particulières telles que le fonctionnement du signal numérique, le système d'exploitation ne pas utiliser, pour être désactivé lors de l'initialisation, le programme d'empêcher un déclenchement erroné provoqué par un comportement anormal, compilé code est le suivant:

; supprimer tous les mécanismes de saturation

mov moda, a0

ou # 0x1F, a0

; Disable multiplicateurs mécanismes de changement de poste

mov # 0xFFFF1FFF, a1

et a1, a0

mov a0, moda

; Désactiver les mécanismes modulo

mov MOD0, r0

ands r0, # 0xffffff00, r0

mov r0, MOD0

X1643 utilisant l'architecture axée sur le compilateur, les données de pipeline d'instructions, et le contrôle des ressources connexes est résolu par un compilateur, le compilateur de code assembleur sans qu'il le traitement dans la préparation d'autres code d'initialisation et de compilation, d'ajouter manuel d'instruction nop à des opérations de isolat, il devrait être une attention particulière.

Système d'exploitation et les composants logiciels d'application initialisation initialise l'initialisation de niveau de carte est mise en uvre dans le code C, qui est similaire au processus dans le processeur ARM, ne sont pas décrits en détail ici.

2.3 Gestion de la mémoire

Nucleus assure la gestion de la mémoire de la partition et la gestion de la mémoire dynamique de deux façons, l'ancien a une très bonne certitude, mais pas assez souple, ce dernier est très flexible, mais l'allocation de mémoire et le délai de récupération n'est pas correct. Compte tenu de la quantité de mémoire requise puce de bande de base sont claires, donc utiliser une approche de gestion de la mémoire de la partition. allocation de mémoire spécifique représentée sur la figure.

Sur la figure. 4, Code Segment0 utilisation du programme TCM, données Segment0 à l'aide de données TCM, X1643 est une architecture Harvard, en utilisant les deux mêmes espace d'adressage de TCM. eDRAM adresse de début 0x400000, une capacité totale de 2 Mo, la première partie du code affecté au segment, le segment affecté à la partie de données. Après le démarrage de l'adresse du pool de mémoire segment BSS, la fin de l'adresse de la fin de la eDRAM. Nucleus segment BSS exigence est le dernier segment lorsqu'un lien, l'espace BSS est réservé pour le pool de mémoire ne peut pas être occupé, mais ne voient pas cette zone lorsque l'appel de linker fonctions de bibliothèque de liaison CEVA dans le processeur de bande de base, le lien à des contraintes ajoutées, avant d'assurer que son BSS situé.

2.4 Gestion Interrompre

X1643 cinq sources d'interruption, dans lequel INT0, INT1 et INT2 respectivement à partir de la fréquence intermédiaire, des périphériques (toutes les interruptions périphériques par un contrôleur d'interruption synthétique de source d'interruption) et OS Tick Timer, INT3, INT4 et X1643 programme réservé pour des données internes et DMA, utilisé uniquement au démarrage, peut être requête. Pour INT0, INT1 et INT2 effectuées dans le système d'exploitation ne traite que, et les trois interruptions en utilisant un gestionnaire d'interruption commun et unifié, qui se distingue par ID. Dans le système d'exploitation, vous pouvez appeler NU_Register_LISR à chaque bas niveau d'interruption LISR service de routine enregistré pour interrompre le tableau de pointeurs de fonction. LISR consommer très court, seulement quelques appels un service système, traitement de données complexes et appel système peut activer le HISR de routine de service d'interruption avancée pour terminer.

Lorsqu'une interruption se produit, le processus est le suivant:

(1) pénètre dans l'entrée d'interruption, les interruptions de désactiver (hardware);

(2) est prévu pour interrompre ID a0, a0 et stocké valeur précédente dans la pile, dans le gestionnaire d'interruption commune;

(3) X1643 enregistrée dans le registre de pile (Push);

(4) enregistrer le pointeur de pile, le pointeur de pile est commuté à la pile du système;

(5) saute vers le système d'exploitation entrée de service d'interruption, le traitement d'interruption est effectué (la LISR);

(6) pour restaurer le pointeur de pile;

(7) nécessite un changement de contexte d'interruption routine de service, la commutation de contexte (commutateur de contexte, HISR);

(8) à partir du registre de pile récupérer X1643 (POP);

(9) registre d'interruption ID récupération a0 occupé;

(10) d'interruption ouvert, le retour d'interruption.

X1643 compilateur de registres internes divisé en deux catégories: les registres et les registres CallUsed CallSaved [4]. Interrompre le traitement pour améliorer l'efficacité, réduire les délais de traitement, à l'étape (3), (8) CallUsed seulement sauvegarder et de restaurer les registres. CallUsed registre sont:

ACF (registre de 40bit): a0 ~ a7, A16 ~ A23

ARF: r0 ~ r3, g1 ~ g3, s0 ~ s1, modu0, MODU1

SRF: lcstep0, lcstep1, lci0 ~ lci3

MSR et PR: MOD0, moda

2.5 avancée d'interruption et la gestion des tâches

interruption peut être supérieur Nucleus considéré comme une tâche prioritaire, les deux ont leur propre espace de pile, une pile est initialisé lorsque vous créez, vous souhaitez enregistrer avant d'appeler contexte (pile), après un appel à restaurer le contexte (pile) . Lorsque le système d'exploitation portable, l'accent est mis sur interruption de haut niveau et des tâches connexes étroitement et l'architecture X1643 et de la structure de pile compilateur et l'initialisation, la pile pour sauvegarder et restaurer le processus de mise en uvre.

pile Nucleus, il y a deux: Saisine Stack et Stack Unsolicited. La valeur initiale de la pile ne sera utilisée que lorsque le premier appel, la valeur est vraiment ici besoin est d'obtenir à travers les paramètres de la pile et les tâches d'interruption avancées en cours d'exécution et la transmission d'adresse, ils ne touchent pas la majorité de l'opération initiale du registre, et non initialisés.

Sollicitée Stack pour interruption avancée, est une pile de minmum. En entrant dans LISR, il a été enregistré CallUsed enregistrer, sollicitèrent Stack VALIDER CallSaved registre. structure de données Sollicitée Stack est déclarée dans le langage C. Notez que, X1643 ACF a8 ~ A15 est un registre de 40 bits, pour la simple pression / facilité pop de manipulation, haute 8 bits « UINT32 A8E » sont déclarés. En outre, pour un grand nombre d'opérations de traitement numérique du signal sont concentrées sur un petit cycle d'exécution de code de base, ce qui élimine la nécessité pour le nombre de cycles d'instructions de test, X16434 règle le niveau maximal de la boucle de commande emboîtée zéro consommation de matériel dédié (BlockRepeat Mécanisme de registre [3 ]) afin d'améliorer l'efficacité de l'exécution du code. Écrit en langage assembleur ou un code de boucle haute performance écrit en langage C et au Canada option du compilateur optimisation avancé utilisera les registres de matériel de contrôle en boucle, afin d'assurer que le programme fonctionne correctement, il doit être initialisé à 04 ensemble de registres. De même lors d'un changement de contexte, ces quatre ensembles de registres doivent être sauvegardés et restaurés, ces quatre banques de registre avec le même nom, enregistrez le code assembleur comme suit:

BKST; Groupe 1

{} pousser dw bknest1 || {pousser dw} bknest0

; 2/3 des groupes 1 et opérations similaires sont omis ici

BKST; Groupe 4

{} pousser dw bknest1 || {pousser dw} bknest0

Unsolicited Stack pour les tâches, tout nécessaire de tenir le registre actuel, initialize, sauvegarder et restaurer des opérations pour Sollicitée Stack similaires, mais parce qu'il contient une opération « saturée » registre « mode » et autres, il est nécessaire pour le MSR et MOD0 initialisé moda.

3 Système d'exploitation d'essai

Après le test de migration du système d'exploitation en deux étapes: Première application du noyau de démonstration [2] test fonctionnel de base, le processus de fixation est ensuite appliqué les tests de scénario LTE230 typique.

Kernel Demo a créé les sept tâches, une file d'attente de messages, un sémaphore et un groupe d'événements. Task_0 est une minuterie de tâches, 1 s chacun génère un événement, est un producteur, la tâche Task_1, l'envoi d'un message à une file d'attente, le consommateur Task_2 est une tâche pour obtenir des messages de la file d'attente; Task_3 et Task_4 même tâche fonction d'entrée en compétition pour un sémaphore; Task_5 Task_0 événement d'attente générée et événements de comptage; Task_6 port d'entrée de détection de clé, un état de sortie de l'information Task_0 à Task_5.

Procédure de fixation LTE230 est nécessaire pour établir une connexion avec le réseau après que le terminal est mis sous tension, y compris une recherche de cellule, d'un accès aléatoire, l'étape de réception MIB / SIB et analogues. Dans le processus de fixation, en plus de OS Tick interrompue, le moût de module émetteur-récepteur en cas de traitement d'interruption quatre associée, une minuterie d'interruption de couche physique, la transmission et la réception de deux tâches et interrompre la communication entre les tâches sémaphores.

Kernel Demo et LTE230 fixent la procédure fonctionne correctement, le système d'exploitation de la programmation multi-tâches, fonctions mécanisme de traitement et de communication d'interruption normalement, sur cette base, peut être un pilote de puce complète, la pile de protocole LTE, la pile de protocole TCP, le traitement de l'ensemble du canal de service le portage et le test des systèmes logiciels.

4 Conclusion

Le présent document décrit le processus de migration et garde Nucleus sur puce LTE230, le système d'exploitation courant a été transplanté communication dans le projet pilote

Module, un fonctionnement stable pendant plus d'une année, démontre pleinement que la migration du système d'exploitation est réussie. En fonction de la migration du système d'exploitation est basé sur une puce LTE230 X1643, il est nécessaire d'avoir une connaissance approfondie des registres de base X1643 dans le processus de migration, l'initialisation au niveau du conseil d'administration complète et la programmation en langage assembleur et la gestion des interruptions sauvegarde des registres du noyau et la récupération opération, qui est la migration du système d'exploitation important et difficile pour un nouveau processeur. Cet article traite de la méthode du système d'exploitation en temps réel pour la série de greffes sur noyaux CEVA DSP à d'autres intègrent également a une importante valeur de référence.

références

[1] Zhou Chunliang, Zhang Feng, Cheng Londres, tels que la conception et l'application LTE230 puce de bande de base de communication sans fil [J] Technologie électronique, 2015,41 (12): .. 4850

[2] Mentor Graphics, Inc .. Nucleus Guide du noyau [Z] 0,2013.

[3] CEVA, INC .. CEVAX1643 Spécification d'architecture [Z] 0,2012.

[4] CEAV, INC .. SmartNcode SDT Utilisateurs Guides V9.2 [Z] 0,2011.

comédie Sérieusement drôle, de toute façon, je ne l'ai pas vu depuis longtemps
Précédent
Remise Xbox jeu cette semaine: "Halo 5: Guardian" regard
Prochain
Léchant temps d'écran | Qui plus âme directrice de style manuscrit?
film d'action Spy Game « guerre secrète » premières affiches d'exposition Aaron Zhao Liying Zhang Han pour rejoindre les fronts secrets
« Marée Oriental · Endeavor magnifique nouvelle ère de » réforme et d'ouverture de 40 ans de célébration concours de photographie uvres choisies | Work Song Mingkun « Jiefangbei changement »
huile restante sur la base de la géométrie des fonctionnalités de reconnaissance de motif
Lourd! Le nouveau téléphone de jeu Red Devils Jingdong configuration Novembre ne peut pas aller au-delà crowdfunding
Documentaire "Ladder: l'art de Cai Guo-Qiang" fichier donné 9,22500 m Feu Ladder
domaine de l'Internet dans la mise à mort micro enveloppe
temps d'écran léchant | obsédé par Isabella Leong
Yu Guangzhong la poésie et la peinture pour commémorer l'ouverture de cette exposition à regarder la peinture dans la « nostalgie »
Article détaillé NVIDIA Tesla vient de sortir V100 exactement où le bétail?
possibilité de routage hybride - géographie capteurs sous-marins réseaux sans fil
entraîneur Spider-Man Arts Shaolin? point fort d'exposition édition spéciale créative