Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

LabVIEW ARM LPC2388

 

Bonjour,

 

Actuellement je travail avec une carte d'évaluation MCB2300 équipée d'un micro contrôleur LPC2388, celui-ci dispose de 64kB de SRAM au lieu de 32kB pour le LPC2378. Je souhaite créer une cible générique propre au micro contrôleur LPC2388. Pour cela j'ai besoin de recompiler plusieurs librairies afin de les adapter à ce micro contrôleur.

 

1)CAN_LPC2378.lib et RLARM_CAN.lib situés LabVIEW2010\Targets\keil\Embedded\RealView\generic\LPC2378\Template\Drivers\CAN. Pour cela j'aurai besoin du fichier projet Keil afin de modifier le type du micro contrôleur dans le projet puis recompiler le projet afin de recréer les librairies adaptées au LPC2388. Où ce trouve les fichiers projet permettant de recompiler ces librairies ?

 

2)MCB2300IO.lib située en LabVIEW2010\Targets\keil\Embedded\RealView\MCB2300\Template\Drivers\IO afin de faire la même operation qu'en 1)

 

3)FS_ARM_L.lib et TCP_ARM_L.lib situées en Keil\ARM\RV31\LIB. Concernant ces librairies fournies par Keil, je pense qu'il n’est pas nécessaire de les recompiler. Mais quelqu'un pourrait-il me le confirmer.

 

Merci d'avance pour vos réponses

0 Compliments
Message 1 sur 8
5 562 Visites

Bonjour,

Les LPC2378 et LPC2388 sont très proche, il y a deux différences: le LPC2388 a une SRAM plus grande et un périphérique USB Host/OTG en plus.

Je n'ai pas regardé en détail, mais en changeant juste le microcontrôleur dans le projet template Keil, vous devriez pouvoir utiliser le LPC2388 sans aucun problème et profiter des 64kB de SRAM.

Cependant, si vous souhaitez utiliser le périphérique USB Host/OTG, il vous faudra créer un driver en C.

Cordialement

 

Yann
0 Compliments
Message 2 sur 8
5 559 Visites

Merci pour votre réponse.

 

Effectivement, dans le cas de la librairie MCB2000IO.lib, il suffit de changer le micro contrôleur dans le fichier projet µVision LabVIEW\Targets\Keil\Embedded\Build\MCB2300IO.uvproj puis de relancer la compilation pour creerla librairie MCB2300IO.lib pour le micro contrôleur LPC2388.

Par contre pour les librairie CAN_LPC2378.lib et RLARM_CAN.lib Comment fait on pour recompiler ces librairies et surtout où ce trouve le fichier projet µVision qui permet de recompiler ces librairies ?

 

J'ai également une autre question à vous poser concernant l'appel de fonction C à partir d'une librairie ayant l'extension .lib. Par exemple le VI LabVIEW2010\vi.lib\Embedded\ARM\MCB2300\MCB2300 Turn On LED.vi ci dessous fais appel à une fonction C "To increase performance, this VI is implemented using a C function call". Pourquoi ne vois t-on pas l'appel de la fonction C sur le diagrramme ?. Comment ce VI fait il pour implémenter la fonction à partir d'une librairie de fonction C crée à Keil µVision ? . Il y a bien un VI appeler une fonction d'une DLL, mais cela ne fonctionne qu'à partir dune dll et non à partir d'une librairie crée à partir de Keil µVision

 

Face avant-MCB2300 Turn On LED.jpgDiagramme-MCB2300 Turn On LED.jpg

Cordialement

0 Compliments
Message 3 sur 8
5 482 Visites

Bonjour,

pour appeller des fonctions C, vous avez deux solutions:

-Il y a un ficher funclist qui comme son nom l'indique recense toutes les fonctions ainsi que leurs arguments. Cette méthode est expliquée dans le chapitre 21 du manuel  Microprocessor SDK Porting Guide.

 

-Depuis LabVIEW 2010, il est possible d'utiliser le noeud d'appel de fonction de LabVIEW (comme on le ferait pour une DLL sur un PC). Cette méthode est utilisée pour les fonctions Stellaris des microcontroleurs LM3S.

Je n'ai jamais utilisé cette deuxième méthode mais elle me semble plus simple et rapide que la première. Je vous conseil d'utiliser la deuxième option pour les nouveaux développements.

Pour avoir un exemple, créez un nouveau projet ARM sous LabVIEW avec comme cible la carte LM3S. Poser une fonctions Stellaris sur votre VI diagrame et examinez le code.

 

Cordialement,

Yann
0 Compliments
Message 4 sur 8
5 477 Visites

Bonjour,

 

Effectivement, j'ai testé en utilisant la deuxième méthode que vous préconisé en créant un projet pour cible LM3S et en plaçant une fonction Stellaris (Dans mon cas la fonction ADC Comparator configure qui fait appel à la fonction C extern void ADCComparatorConfigure(unsigned long, unsigned long, unsigned long,)). Lorsque que je fais un clic droit sur le VI appeler une fonction d'un DLL Configurer..., j'obtiens la fenêtre de configuration du VI.

Sur celui-ci, il n'apparait pas la librairie C à laquelle fait référence la fonction. Ma question est : Comment fait on pour relier au VI appeler une fonction d'un DLL une fonction C et une librairie Keil?

De plus avez vous des informations concernant la recompilation des librairies CAN_LPC2378.lib et RLARM_CAN.lib afin de les recompiler pour un LPC2388 ?

 

Cordialement 

 

Diagramme ADC Comparator ConfigureConfiguration ADC Compare.jpg

 

 

0 Compliments
Message 5 sur 8
5 454 Visites

Bonjour,

Je ne peux pas vous aider pour la recompilation des librairies, le plus simple est d'envoyer un mail ou de téléphoner directement au support technique National Instruments si vous voulez vraiment le faire.

Cependant je ne pense pas que cela soit nécessaire, sur la famille LM3S la librairie que fournit Luminary micro est utilisable par tous les LM3S sans recompilation.

Pourtant il y a plus de diffèrences entre les LM3S qu'entre vos deux microcontroleurs.

 

Pour appeller une fonction C, voici comment faire:

-Ouvrez le projet Keil de template que vous avez créé pour votre microcontroleur.

-Ajoutez ou créez un nouveau fichier C contenant une fonction et son prototype( void allumLED(int numLED); par exemple).

-Sauvegardez votre projet.

-Ajouter le noeud d'appel en utilisant comme nom de fonction allumLED, puis configurez les paramètres.

 

Je ne suis pas sûr de la dernière étape car je n'ai jamais essayé de le faire et je n'ai plus LabVIEW Embedded for ARM d'installé sur mon PC.

Pouvez-vous me dire si cela fonctionne?

Cordialement,

Yann
0 Compliments
Message 6 sur 8
5 450 Visites

Bonjour,

 

Effectivement, pour appeler une fonction C à partir d'un code inclu dans un fichier C, il suffit d'appliquer la méthode que vous avez décris. Par contre je me permet de vous exposer la méthode que vous avez utilisé en la completant et en donnant un Fichier projet exemple en pièce jointe.

Le programme réalisé pour l'exemple consiste à realiser une addition et une soustraction à partir de 2 variables A et B. L'addition et la soustraction sont réalisées en utilisant 2 fonctions écrite en C. le code de ces fonctions est inclus dans le fichier operations_base.c. Les fonctions C d'addition et de soustraction sont appelées dans le VI principale par le VI appeler une fonction d'un DLL. L'exemple fonctionne pour une cible LPC2378. Voici la procédure à suivre pour réaliser le fichier projet ARM.

 

1) Inclure dans le fichier projet LPC2378, le fichier operations_base.c contenant les fonctions. en faisant un clic droit sur la cible puis en sélectionnant Ajouter/Fichier...

 

fenetre projet.jpg

 

2) Dans le VI principal Test001.vi inserer le VI Appeler une fonction d'une DLL situé dans la palette fonction/Connectivit/Librairies and Executable.

VI avec appeller une fonction DLL.jpg

 

3) Configurer le VI Appeler une fonction d'une DLL en faisant un clic droit  Configuer...

      • Onglet Fonction

Dans le champ nom de fonction : mettre le nom de la fonction c appelée. Dans notre cas il s'agit de la fonction AdditionAB ou SoustractionAB

appeler une fonction DLL-Fonction

 

  • Onglet Paramètres

Ajouter les paramètres d'entrée/sortie de la fonction C

-Paramètres entrés A et B

Nom : A ou B

Type : Numérique

Type de données : Entier 32 bits signé

Passer : Valeur

 

appeler une fonction DLL-parametre A et B.jpg

 

-Paramètre de sortie resultat

Nom : resultat

Type : Numérique

Type de données : Entier 32 bits signé

Passer : Pointeur sur valeur

 

appeler une fonction DLL-parametre résultat.jpg

 

Si le fonction a été correctement définie, nous devons avoir dans le champ prototype de la fonction en bas de la fenêtre

void AdditionAB(int32_t A, int32_t B, int32_t *resultat)

Cliquer sur OK pour terminer.

 

Test001-diagramme.jpg

 

4)Ajouter le fichier C dans les spécifications de construction  en faisant un clic droit sur Application/Properties

Catégorie/Source File

Ajouter le fichier C opérarions_base.c dans aditionalFiles (*.c, *.s, *.o, *.lib)

Build specification properties-Source Files.jpg

 

Cliquer sur OK pour valider

 

 

5) Sauvegarder tous le projet, compiler le tout et executer sur la cible LPC2378

 

De même pour appeler une fonction c à partir d'un fichier librairie .lib. Il faut je pense ajouter ce fichier au projet, configurer le VI Appeler une fonction d'une DLL avec le paramètre d'entrée/sortie de la fonction C, inserer le fichier.lib dans les specifications de construction, sauvegarder le projet et compiler.

 

Cordialement

 

 

Message 7 sur 8
5 429 Visites

Bonjour,

J'ai une carte STM32F4 et je veux la connecter avec labview.

Mon projet est de faire l'acquisition des donnes de la carte STM32F4 vers l'interface de labview.

Pouvez-vous m'aider pour passer cette étape ? 

Merci d'avance.

J.h

0 Compliments
Message 8 sur 8
4 806 Visites