Tout le monde sait qu'il est facile de développer une preuve de concept pour un appareil embarqué sur un rasbperry pi ou même un PC, bien qu'il s'agisse de choisir un microprocesseur pour votre produit, il est difficile d'être sûr que votre choix permettra à votre concept de fonctionner de manière optimale.
J'ai actuellement un projet de streaming multimédia qui fonctionne avec succès sur le Raspberry Pi, bien que le Pi soit beaucoup trop gros et encombrant pour qu'il soit approprié en tant qu'appareil final. Il est également indiqué que le périphérique final est personnalisé. J'ai du mal à trouver confiance dans les processeurs que je peux utiliser.
Quel est le bon processus pour savoir si un processeur est suffisamment puissant pour exécuter mon application?
Fondamentalement, mes exigences sont les suivantes:
- Hôte USB ou pile TCP / IP intégrée pour le fonctionnement WiFi
- Protocole multimédia I2S / PCM
- I2C pour la configuration périphérique
Trouver des puces avec ces propriétés est très très simple. Honnêtement, cela ne pourrait pas être plus simple. Le problème est de savoir si la puce est suffisamment rapide, au niveau du traitement et du fonctionnement.
J'ai beaucoup regardé le LPC4337 et je pense qu'il conviendrait bien que l'environnement de développement me pose pas mal de problèmes, c'est pourquoi je continue de regarder autour de moi, ce qui m'a conduit au CC3200 de Texas Instruments , bien que ce contrôleur ne fonctionne qu'à 80 MHz et je ne sais pas si ce sera assez fort pour le streaming multimédia en temps réel.
Quelles sont les étapes pour s'assurer qu'un processeur est suffisamment rapide pour mon application? Comme comment savoir si un processeur à 80 MHz sera suffisant ou ai-je besoin de quelque chose de l'ordre de 204 MHz ou même plus?
Réponses:
Cela dépend de la confiance que vous devez avoir. Je travaille dans l'industrie spatiale et cela se fait généralement via ce que nous appelons les "budgets CPU, RAM, ROM". Un budget, qu'il s'agisse de la masse énergétique ou de toute autre chose, décompose votre processus en éléments gérables que vous pouvez quantifier et résumer tous pour obtenir la demande globale. Vous prenez alors un facteur de sécurité qui dépend de la maturité de votre projet, diminuant avec le temps pour tenir compte de la croissance de la demande. Au début, il s'appuie fortement sur l'expérience, puis s'affine au fil du temps à mesure que les technologies sont sélectionnées.
Ce qui précède est extrêmement difficile à déterminer avec précision quand les planificateurs démarrent, dès que vous avez des threads (sauf si les threads sont alloués manuellement aux cœurs) et les systèmes d'exploitation. Il devrait être gérable pour de simples codes de microcontrôleur, mais cela en vaut-il la peine pour votre application?
Ce n'est que ma participation: même si je conçois des systèmes intégrés, je n'ai pas été responsable de ces budgets particuliers (qui sont des intrants pour moi), et je suis vraiment très intéressé de connaître les témoignages d'experts à ce sujet.
Addendum: Avec les systèmes en temps réel, il est généralement plus facile d'évaluer l'adéquation du système à la tâche via le temps d'échantillonnage maximal qui dépend de la latence / des retards dans la transmission des informations tout au long du flux de travail, et le temps maximal pris par chacun échantillon de tâche.
la source
avrdude
peut fournir des estimations de la quantité de RAM consommée par les variables globales, mais vous devez l'exécuter avec l'option d'exécution à sec, car il s'agit fondamentalement d'un outil de téléchargement.Je vais simplifier votre question en: "Comment savoir si un microprocesseur est assez rapide "?
Vous devez identifier le processus / la procédure qui nécessite le temps d'exécution le plus rapide. Si votre processeur peut exécuter les instructions requises dans le délai imparti, ou moins, il est assez rapide.
Regardons un exemple: Votre exigence la plus rapide est de traiter une coupure de courant ; cela nécessite 10 000 instructions à exécuter en 10 millisecondes. Vous aurez besoin d'un CPU avec au moins 1 MIP. Pour convertir cela en "MHz", vous devez connaître le nombre de cycles d'horloge par instruction (cci). Supposons qu'il soit de 10 cci, votre processeur devrait fonctionner à 10 MHz, ou plus rapidement.
la source
Si vous cherchez à réduire le coût de la nomenclature, les fabricants de Shenzhen ont parfois des offres surprenantes. Un exemple: Allwinner A10 a plus de puissance de calcul et d'options de connexion que Raspberry Pi mais sera probablement moins cher s'il est utilisé dans votre conception. Si vous recherchez le même coût que le Pi, l'Allwinner A31 est 6-8 fois plus puissant.
la source