A construção de programas com C ou C++ para o dispositivo L610 bem explicada pelo s documentos:
- Fibocom_L61x&LC61x&LG61x&MC61x&MG61x OpenCPU Programming Guide_V1.1.pdf
- Fibocom_L61x&LC61x&LG61x&MC61x&MG61x_Introduction to OpenCPU System Framework and Operating Process_V1.1.pdf
No entanto, embora o processo explicado nos exemplos seja bom para prova de conceito, realmente é melhor o conforto e a conveniência fornecidos pelo meu IDE. Neste exemplo será utilizado a IDE para pode digitar o programa em os recursos do AUTOCOMPLETE.
(Tradução, acertos e testes)
Resumo
Esta postagem explica como você pode configurar o VSCODE para "abrir" um aplicativo C++ e fazer uso do AUTOCOMPLETE.
REQUISITOS:
WINDOWS 10, mas pode UBUNTU (WSL2)
O modo OpenCPU garante a comunicação entre os aplicativos dos clientes e o módulo sem a necessidade de os conjuntos de comandos MCU ou AT. Os aplicativos dos clientes, como parte do programa de firmware principal, chamam APIs integradas para implementar as funções desejadas, por exemplo, iniciar/parar o protocolo integrado pilha para rede dial-up (DUN). Os aplicativos chamam APIs que encapsulam o LWIP interno interface para transmissão de dados, chamada encapsulada HTTP, MQTT, FTP e outras APIs para implementar diferentes requisitos de serviço, chame UART encapsulado, I2C, SPI e outras APIs para controlar periféricos dispositivos, incluindo o LCD e a câmera, chamam APIs de sistema operacional encapsuladas para criar threads, filas de mensagens, e semáforos, e chamar APIs GPIO encapsuladas para gerenciamento GPIO e outros requisitos.
A função de implementação da API é a mesma que a função de implementação do comando AT. Quase todos as operações que os conjuntos de comandos AT podem executar podem ser desenvolvidas para APIs para que os aplicativos chamem assim quanto a atender requerimentos em diferentes cenários.
Configuração do ambiente de desenvolvimento OpenCPU e Compilação
Será necessário a execução da Virtualização do UBUNTU, no caso foi utilizado o WSL.
Depois de instalar o Ubuntu, conecte-se à Internet conforme necessário. Depois de se conectar à Internet com sucesso, use o privilégio de root do Ubuntu para executar os seguintes comandos:
sudo apt install build-essential python3 python3-tk qtbase5-dev
sudo apt install libc6 libstdc++6 zlib1g
Os comandos anteriores são usados para instalar a biblioteca e o software necessários para compilar um programa do usuário.
Obtenha com a FIBOCOM
o SDK core_sdk_16000.1000.00.88.15.03.tar.zip
ou Docker
Copie core_sdk.tar.gz para um diretório no Ubuntu, por exemplo, /home/user/. Rode o seguinte comando na interface de shell do Ubuntu.:
cd /home/ubuntu/
unzip core_sdk_16000.1000.00.88.15.03.tar.zip
Depois de descompactar o pacote, execute os seguintes comandos de compilação em sequência:
cd core_sdk_16000.1000.00.88.15.03.tar/
tar xzvf core_sdk_16000.1000.00.88.15.03.tar.gz
Adicionando código a ser compilado
Depois de obter o pacote TAR e descompactá-lo em uma pasta , você verá arquivos mostrados na figura a seguir, pasta ROOT do CSDK.
Entre eles, hello_world.c e demo.c são códigos de exemplo.
Enfim, para o código exemplo abaixo, chamado de Uart Demo, crie um arquivo oc_uart_demo.c na pasta ROOT e copie o conteúdo para dentro.
Exemplo que utiliza UART
/* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA"). * All rights reserved. * * This software is supplied "AS IS" without any warranties. * RDA assumes no responsibility or liability for the use of the software, * conveys no license or title under any patent, copyright, or mask work * right to the product. RDA reserves the right to make changes in the * software without notification. RDA also make no representation or * warranty that such application will be suitable for the specified use * without further testing or modification. */ #define OSI_LOG_TAG OSI_MAKE_LOG_TAG('M', 'Y', 'A', 'P') #include "fibo_opencpu.h" #include "oc_uart.h" #include "stdio.h" #include "stdlib.h" #include "string.h" void uart_recv(hal_uart_port_t uart_port, UINT8 *data, UINT16 len, void *arg) { OSI_PRINTFI("uartapi recv uart_port=%d len=%d, data=%s", uart_port, len, (char *)data); } static void prvThreadEntry(void *param) { OSI_LOGI(0, "application thread enter, param 0x%x", param); hal_uart_config_t drvcfg = {0}; drvcfg.baud = 115200; drvcfg.parity = HAL_UART_NO_PARITY; drvcfg.data_bits = HAL_UART_DATA_BITS_8; drvcfg.stop_bits = HAL_UART_STOP_BITS_1; drvcfg.rx_buf_size = UART_RX_BUF_SIZE; drvcfg.tx_buf_size = UART_TX_BUF_SIZE; int port = 0; uint8_t send_test[] = "uart testando"; fibo_hal_uart_init(port, &drvcfg, uart_recv, NULL); for (size_t i = 0; i < 3; i++) { fibo_hal_uart_put(port, send_test, sizeof(send_test) - 1); fibo_taskSleep(1 * 1000); } OSI_LOGI(0, "application thread exit, param 0x%x", param); fibo_hal_uart_deinit(port); fibo_thread_delete(); } void* appimg_enter(void *param) { OSI_LOGI(0, "application image enter, param 0x%x", param); fibo_thread_create(prvThreadEntry, "mythread", 1024, NULL, OSI_PRIORITY_NORMAL); return 0; } void appimg_exit(void) { OSI_LOGI(0, "application image exit"); }
Você só precisa adicionar código à macro CONFIG_APPIMG_LOAD_FLASH em CMakeLists.txt e adicionar o caminho do arquivo de cabeçalho recém-adicionado.
Execute
. tools/core_launch.sh
cout
cd ..
cmake .. /.. -G Ninja
adicione em CMakeLists.txt (root do sdk) o fonte que voce quer testar
if(CONFIG_APPIMG_LOAD_FLASH)
set(target hello_flash)
add_appimg(${target} ${flash_ldscript}
###hello_world.c
###demo.c
### pingpong.c
oc_uart_demo )
ninja
ubuntu@DESKTOP-UHGFA4M:~/core_sdk_16000.1000.00.88.15.03.tar/out$ ninja clean
[1/1] Cleaning all built files...
Cleaning... 8 files.
ubuntu@DESKTOP-UHGFA4M:~/core_sdk_16000.1000.00.88.15.03.tar/out$ ninja
[6/6] Generating hex/hello_flash.pac
ubuntu@DESKTOP-UHGFA4M:~/core_sdk_16000.1000.00.88.15.03.tar/out$
VSCODE COMO IDE (WSL2)
Instale o vscode
sudo apt update
sudo apt install software-properties-common apt-transport-https wget -y
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt install code
code --version
Execute vscode
code
https://acessingslinkitfromanywhereintheworld.blogspot.com/2024/08/blog-post.html
【上电即上华为云】华为云openCPU智联模组_Cat.1_MC615-CN-云社区-华为云 (huaweicloud.com)
【上电即上华为云】华为云openCPU智联模组_Cat.1_MC615-CN-云社区-华为云 (huaweicloud.com)
Fibocom_cat1_L610&LC610N&LG610&MC615_Log Capture Guide_Windows_V1.0.2.pdf
Sobre a SMARTCORE
A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br
Nenhum comentário:
Postar um comentário