Conceitos básicos do Infineon OPTIGA Trust X e do XMC4800 IoT Connectivity Kit
Importante
Essa integração de referência está hospedada no repositório Amazon-FreeRTOS, que está preterido. Recomendamos começar aqui ao criar um novo projeto. Se você já tem um projeto FreeRTOS existente baseado no repositório Amazon-FreeRTOS que está preterido, consulte o Guia de migração do repositório Github do Amazon FreeRTOS.
Este tutorial fornece instruções para começar a usar o Infineon OPTIGA Trust X Secure Element e o XMC4800 IoT Connectivity Kit. Em comparação com o tutorial Conceitos básicos do Infineon XMC4800 IoT Connectivity Kit, este guia mostra como fornecer credenciais seguras usando um Infineon OPTIGA Trust X Secure Element.
Você precisa do seguinte hardware:
-
Host MCU – Kit de conectividade IoT XMC4800 da Infineon, acesse o catálogo do AWS Partner Device para comprar um com o nosso parceiro
. -
Pacote de extensões de segurança:
-
Secure Element - Infineon OPTIGA Trust X.
Acesse o catálogo do AWS Partner Device para comprá-los de nosso parceiro
. -
Placa de personalização – Placa de personalização OPTIGA da Infineon.
-
Placa adaptadora – Adaptador MyIoT da Infineon.
-
Para seguir as etapas aqui, você deve abrir uma conexão serial com a placa para visualizar as informações de registro e depuração. (Uma das etapas exige que você copie uma chave pública da saída de depuração serial da placa e cole-a em um arquivo.) Para fazer isso, será necessário ter um conversor USB/serial de 3.3 V, além do kit de conectividade IoT XMC4800. Sabe-se que o conversor USB/serial JBtek EL-PN-47310126
Antes de começar, você deve configurar o AWS IoT e seu download do FreeRTOS para conectar seu dispositivo à nuvem da AWS. Para instruções, consulte Opção 2: geração de chaves privadas integradas. Neste tutorial, o caminho para o diretório de download do FreeRTOS é chamado .freertos
Visão geral
Este tutorial contém as seguintes etapas:
-
Instalar software na máquina host para desenvolver e depurar aplicações incorporadas para a placa do microcontrolador.
-
Fazer a compilação cruzada de uma aplicação de demonstração do FreeRTOS para uma imagem binária.
-
Carregar a imagem binária do aplicativo em na placa e executar o aplicativo.
-
Para fins de monitoramento e depuração, interagir com a aplicação em execução na placa em uma conexão serial.
Configuração do ambiente de desenvolvimento
O FreeRTOS usa o ambiente de desenvolvimento DAVE da Infineon para programar o XMC4800. Antes de começar, faça download e instale o DAVE e alguns drivers J-Link para se comunicar com o depurador na placa.
Instalar o DAVE
-
Vá para a página de download do software DAVE
da Infineon. -
Escolha o pacote DAVE para seu sistema operacional e envie suas informações de registro. Após o registro, você receberá um e-mail de confirmação com um link para fazer download de um arquivo .zip.
-
Faça download do arquivo .zip do pacote DAVE (
DAVE_) e descompacte-o no local onde você deseja instalar o DAVE (por exemplo,version_os_date.zipC:\DAVE4).nota
Alguns usuários do Windows relataram problemas usando o Windows Explorer para descompactar o arquivo. Recomendamos que você use um programa de terceiros como o 7-Zip.
-
Para iniciar o DAVE, execute o arquivo executável encontrado na pasta
DAVE_descompactado.version_os_date.zip
Para obter mais informações, consulte o Guia de início rápido do DAVE
Instalação do drivers Segger J-Link
Para se comunicar com o teste de depuração integrado do XMC4800 IoT Connectivity kit, você precisa dos drivers incluídos no pacote de software e documentação J-Link. Você pode fazer download do pacote e documentação J-Link na página de download do software J-Link
Estabelecimento de uma conexão serial
Conecte o cabo do conversor USB/serial ao adaptador Infineon Shield2Go. Uma conexão serial permite que sua placa envie informações de registro em log e depuração em um formato que pode ser visualizado na máquina de desenvolvimento. Para configurar uma conexão serial:
-
Conecte o pino RX ao pino TX do conversor USB/serial.
-
Conecte o pino TX ao pino RX do conversor USB/serial.
-
Conecte o pino terra do conversor serial a um dos pinos GND na sua placa. Os dispositivos devem compartilhar um aterramento comum.
A alimentação é fornecida na porta de depuração USB e, portanto, não conecto o pino de tensão positiva do adaptador serial à placa.
nota
Alguns cabos seriais usam um nível de sinalização 5V. A placa XMC4800 e o módulo Wi-Fi Click exigem 3,3 V. Não use o jumper IOREF da placa para alterar os sinais da placa para 5V.
Com o cabo conectado, você pode abrir uma conexão serial em um emulador de terminal como GNU Screen
Monitoramento de mensagens MQTT na nuvem
Antes de executar o projeto de demonstração do FreeRTOS, você pode configurar o cliente MQTT no console do AWS IoT para monitorar as mensagens enviadas pelo dispositivo para a nuvem da AWS.
Para assinar o tópico MQTT com o cliente MQTT do AWS IoT
-
Faça login no console do AWS IoT
. -
No painel de navegação, escolha Teste e, em seguida, escolha cliente de teste MQTT para abrir o cliente MQTT.
-
Em Tópico de inscrição, insira
e selecione Inscreva-se no tópico.your-thing-name/example/topic
Quando o projeto de demonstração for executado com êxito em seu dispositivo, você verá "Olá, mundo!". enviado várias vezes para o tópico em que você assinou.
Compilação e execução do projeto de demonstração do FreeRTOS
Importação da demonstração do FreeRTOS para o DAVE
-
Inicie o DAVE.
-
No DAVE, escolha File (Arquivo) e depois Import (Importar). Expanda a pasta Infineon escolha DAVE Project (Projeto DAVE) e depois Next (Avançar).
-
Na janela Import DAVE Projects (Importar projetos do DAVE), escolha Select Root Directory (Selecionar diretório raiz), escolha Browse (Procurar) e, em seguida, escolha o projeto de demonstração do XMC4800.
No diretório em que você descompactou o download do FreeRTOS, o projeto de demonstração está localizado em
projects/infineon/xmc4800_plus_optiga_trust_x/dave4/aws_demos/dave4.Verifique se a opção Copy Projects Into Workspace (Copiar projetos para o WorkSpace) está desmarcada.
-
Escolha Terminar.
O projeto
aws_demosdeve ser importado para seu espaço de trabalho e ativado. -
No menu Project (Projeto), escolha Build Active Project (Criar projeto ativo).
Certifique-se de que o projeto seja criado sem erros.
Execução do projeto de demonstração do FreeRTOS
-
No menu Project (Projeto), escolha Rebuild Active Project (Recriar projeto ativo) para reconstruir
aws_demose garantir que as alterações de configuração sejam selecionadas. -
No Project Explorer, clique com o botão direito do mouse em
aws_demos, escolha Debug As (Depurar como) e DAVE C/C++ Application (aplicação DAVE C/C++). -
Clique duas vezes em GDB SEGGER J-Link Debugging (Depuração de GDB SEGGER J-Link) para criar uma confirmação de depuração. Escolha Debug (Depurar).
-
Quando o depurador parar no ponto de interrupção em
main(), no menu Run (Executar), escolha Resume (Continuar).
Neste ponto, continue com a etapa de extração de chave pública em Opção 2: geração de chaves privadas integradas. Depois que todas as etapas estiverem concluídas, vá para o console do AWS IoT. O cliente MQTT configurado anteriormente deve exibir as mensagens MQTT enviadas pelo seu dispositivo. Por meio da conexão serial do dispositivo, você deve ver algo assim na saída UART:
0 0 [Tmr Svc] Starting key provisioning... 1 1 [Tmr Svc] Write root certificate... 2 4 [Tmr Svc] Write device private key... 3 82 [Tmr Svc] Write device certificate... 4 86 [Tmr Svc] Key provisioning done... 5 291 [Tmr Svc] Wi-Fi module initialized. Connecting to AP... .6 8046 [Tmr Svc] Wi-Fi Connected to AP. Creating tasks which use network... 7 8058 [Tmr Svc] IP Address acquired [IP Address] 8 8058 [Tmr Svc] Creating MQTT Echo Task... 9 8059 [MQTTEcho] MQTT echo attempting to connect to [MQTT Broker]. ...10 23010 [MQTTEcho] MQTT echo connected. 11 23010 [MQTTEcho] MQTT echo test echoing task created. .12 26011 [MQTTEcho] MQTT Echo demo subscribed to iotdemo/# 13 29012 [MQTTEcho] Echo successfully published 'Hello World 0' .14 32096 [Echoing] Message returned with ACK: 'Hello World 0 ACK' .15 37013 [MQTTEcho] Echo successfully published 'Hello World 1' 16 40080 [Echoing] Message returned with ACK: 'Hello World 1 ACK' .17 45014 [MQTTEcho] Echo successfully published 'Hello World 2' .18 48091 [Echoing] Message returned with ACK: 'Hello World 2 ACK' .19 53015 [MQTTEcho] Echo successfully published 'Hello World 3' .20 56087 [Echoing] Message returned with ACK: 'Hello World 3 ACK' .21 61016 [MQTTEcho] Echo successfully published 'Hello World 4' 22 64083 [Echoing] Message returned with ACK: 'Hello World 4 ACK' .23 69017 [MQTTEcho] Echo successfully published 'Hello World 5' .24 72091 [Echoing] Message returned with ACK: 'Hello World 5 ACK' .25 77018 [MQTTEcho] Echo successfully published 'Hello World 6' 26 80085 [Echoing] Message returned with ACK: 'Hello World 6 ACK' .27 85019 [MQTTEcho] Echo successfully published 'Hello World 7' .28 88086 [Echoing] Message returned with ACK: 'Hello World 7 ACK' .29 93020 [MQTTEcho] Echo successfully published 'Hello World 8' .30 96088 [Echoing] Message returned with ACK: 'Hello World 8 ACK' .31 101021 [MQTTEcho] Echo successfully published 'Hello World 9' 32 104102 [Echoing] Message returned with ACK: 'Hello World 9 ACK' .33 109022 [MQTTEcho] Echo successfully published 'Hello World 10' .34 112047 [Echoing] Message returned with ACK: 'Hello World 10 ACK' .35 117023 [MQTTEcho] Echo successfully published 'Hello World 11' 36 120089 [Echoing] Message returned with ACK: 'Hello World 11 ACK' .37 122068 [MQTTEcho] MQTT echo demo finished. 38 122068 [MQTTEcho] ----Demo finished----
Compilação da demonstração do FreeRTOS com CMake
Esta seção discute o uso do CMake no Windows com MingW como sistema de compilação nativa. Para obter mais informações sobre como usar CMake com outros sistemas operacionais e opções, consulte Uso da CMake com o FreeRTOS. (MinGW
Se você preferir não usar um IDE para desenvolvimento do FreeRTOS, você pode usar o CMake para compilar e executar as aplicações de demonstração ou aplicações que você tenha desenvolvido usando editores de código e ferramentas de depuração de terceiros.
Como compilar a demonstração do FreeRTOS com CMake
-
Configure o conjunto de ferramentas GNU Arm Embedded.
-
Faça download de uma versão do conjunto de ferramentas do Windows na página de download do conjunto de ferramentas Arm Embedded
. nota
Devido a um bug relatado
no utilitário objcopy, recomendamos que você faça download de uma versão diferente de "8-2018-q4-major". -
Abra o instalador da cadeia de ferramentas transferido por download e siga as instruções no assistente.
-
Na página final do assistente de instalação, selecione Add path to environment variable (Adicionar caminho à variável de ambiente) para adicionar o caminho do conjunto de ferramentas à variável de ambiente do caminho do sistema.
-
-
Instale o CMake e MingW.
Para obter instruções, consulte Pré-requisitos do CMake.
-
Crie uma pasta para conter os arquivos de compilação gerados (
build-folder). -
Altere os diretórios para seu diretório de download do (
) e use o comando a seguir para gerenciar os arquivos de compilação:freertoscmake -DVENDOR=infineon -DBOARD=xmc4800_plus_optiga_trust_x -DCOMPILER=arm-gcc -S . -Bbuild-folder-G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0 -
Altere os diretórios para o diretório de compilação (
build-folder) e use o seguinte comando para compilar o binário:cmake --build . --parallel 8Esse comando cria o binário de saída
aws_demos.hexpara o diretório de compilação. -
Atualize e execute a imagem com JLINK.
-
No diretório de compilação (
build-folder), use os seguintes comandos para criar um script de atualização:echo loadfile aws_demos.hex > flash.jlink echo r >> flash.jlink echo g >> flash.jlink echo q >> flash.jlink -
Atualize a imagem usando o executável JLNIK.
JLINK_PATH\JLink.exe -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlinkOs logs de aplicação devem estar visíveis por meio da conexão de série estabelecida com a placa. Continue para a etapa de extração de chave pública em Opção 2: geração de chaves privadas integradas. Depois que todas as etapas estiverem concluídas, vá para o console do AWS IoT. O cliente MQTT configurado anteriormente deve exibir as mensagens MQTT enviadas pelo seu dispositivo.
-
Solução de problemas
Para obter informações gerais sobre a solução de problemas, consulte Solução de problemas de conceitos básicos.