Todo mundo sabe que é fácil desenvolver uma prova de conceito para um dispositivo embutido em um Rasbperry Pi ou mesmo em um PC, embora quando se trata de escolher um microprocessador para o seu produto, é difícil ter certeza de que sua escolha permitirá que seu conceito funcione Otimamente.
Atualmente, tenho um projeto de streaming de mídia trabalhando com êxito no raspberry pi, embora o pi seja muito grande e volumoso para ser adequado como um dispositivo final. Também é afirmado que o dispositivo final é personalizado. Estou tendo dificuldades para encontrar confiança nos processadores que posso usar.
Qual é um bom processo para descobrir se um processador é poderoso o suficiente para executar meu aplicativo?
Basicamente, meus requisitos são:
- Host USB ou pilha TCP / IP incorporada para operação WiFi
- Protocolo de mídia I2S / PCM
- I2C para configuração periférica
Encontrar chips com essas propriedades é muito simples. Honestamente, não poderia ser mais simples. A questão é saber se o chip é rápido o suficiente, processamento e operação.
Eu olhei bastante para o LPC4337 e acho que seria adequado, embora o ambiente de desenvolvimento esteja me causando um grande problema, por esse motivo ainda estou olhando em volta, o que me levou ao CC3200 da Texas Instruments , embora esse controlador seja executado apenas a 80 MHz e não tenho certeza se isso será forte o suficiente para o streaming de mídia em tempo real.
Quais são algumas etapas para garantir que um processador seja rápido o suficiente para o meu aplicativo? Como saber se um processador de 80 MHz será bom o suficiente ou preciso de algo da ordem de 204 MHz ou até mais?
Respostas:
Depende de quão confiante você precisa ser. Eu trabalho na indústria espacial e isso normalmente é alcançado através do que chamamos de "orçamentos de CPU, RAM, ROM". Um orçamento, seja o custo da massa de energia ou qualquer outra coisa, está dividindo seu processo em itens gerenciáveis, que você pode quantificar e resumir para obter a demanda geral. Você assume um fator de segurança que depende da maturidade do seu projeto, diminuindo com o tempo para explicar o crescimento da demanda. Desde o início, ele se apóia fortemente na experiência e depois é refinado ao longo do tempo à medida que as tecnologias são selecionadas.
O exposto acima é extremamente difícil de determinar com precisão quando os agendadores entram em ação, assim que você tiver threads (a menos que os threads sejam alocados manualmente aos núcleos) e sistemas operacionais. Deve ser administrável para códigos simples de microcontroladores, mas vale a pena para a sua aplicação?
Esta é apenas a minha participação: mesmo que eu projete sistemas integrados, não fui responsável por esses orçamentos específicos (que são insumos para mim) e, na verdade, estou muito interessado em conhecer as histórias de especialistas sobre isso.
Adendo: Nos sistemas em tempo real, geralmente é mais fácil avaliar a adequação do sistema à tarefa através do tempo máximo de amostragem, que depende da latência / atrasos na transmissão das informações por todo o fluxo de trabalho e do tempo máximo gasto por cada um. amostra de tarefa.
fonte
avrdude
pode fornecer estimativas de quanta RAM é usada por variáveis globais, mas você deve executá-la com a opção dry run, porque é fundamentalmente uma ferramenta de upload.Vou simplificar sua pergunta para "Como descobrir se um microprocessador é rápido o suficiente"?
Você precisa identificar o processo / procedimento que requer o tempo de execução mais rápido. Se o seu processador puder executar as instruções necessárias no tempo especificado, ou menos, será rápido o suficiente.
Vamos ver um exemplo: Seu requisito mais rápido é processar uma perda de energia ; isso requer 10.000 instruções a serem executadas em 10 milissegundos. Você precisará de uma CPU com pelo menos 1 MIP. Para converter isso em "MHz", você precisa saber o número de ciclos de clock por instrução (cci). Vamos supor que seja 10 cci, sua CPU precisaria rodar a 10 MHz ou mais rápido.
fonte
Se você está procurando reduzir o custo da lista técnica, às vezes esses fabricantes de Shenzhen têm ofertas surpreendentes. Um exemplo: o Allwinner A10 tem mais opções computacionais de energia e conexão que o Raspberry Pi, mas provavelmente será mais barato se usado em seu projeto. Se você está procurando o mesmo custo que o Pi, o Allwinner A31s é 6-8 vezes mais poderoso.
fonte