Galeria de mapas mentais Mapa de conhecimento do processador GD32
Processador inovador GigaDevice, o processador GD32 é uma série de microcontroladores de 32 bits de alto desempenho e baixo consumo de energia com amplas perspectivas de aplicação e forte suporte ao desenvolvimento.
Editado em 2024-11-30 07:30:42A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
GD32
GD32F307C
Inicialize a partir da SRAM
O endereço de Reset_Handler deve ser 0x200001e1
Verifique o arquivo do mapa
Ajustar tabelas de vetores em arquivos .s
Adicionar antes de __Vectors_End
O número exato depende da situação
Ajustar IROM1 IRAM1 no alvo
Ajustar download do Flash
Comece modificando a função principal
nvic_vector_table_set(NVIC_VECTTAB_RAM, 0x00)
Configure o endereço base da tabela de vetores de interrupção NVIC
STM32
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x00);
Nota: STM32 possui controle macro VECT_TAB_SRM
SystemInit();
Interrupção NVIC
Responsável por gerenciar solicitações de interrupção (IRQs)
Interromper o gerenciamento de prioridades
: NVIC suporta até 256 níveis de prioridade de interrupção, mas GD32F307C normalmente usa apenas 16 deles. Cada interrupção pode receber um nível de prioridade, com valores de prioridade mais baixos indicando prioridade mais alta.
Tabela de vetores de interrupção
: NVIC usa a tabela de vetores de interrupção para armazenar o endereço da rotina de serviço de interrupção (ISR). Quando ocorre uma interrupção, o NVIC obterá o endereço ISR correspondente da tabela de vetores com base no número da interrupção e saltará para esse endereço para executar o ISR.
Quebrar aninhamento
: NVIC suporta aninhamento de interrupções, ou seja, interrupções de alta prioridade podem interromper o processamento de interrupções de baixa prioridade.
Interromper ativar e desativar
: NVIC permite que o status de habilitação e desabilitação de cada interrupção seja controlado através de registradores.
Registro NVIC
ISER (Interrupt Set-Enable Register): usado para habilitar interrupções.
ICER (Interrupt Clear-Enable Register): usado para desabilitar interrupções.
ISPR (Interrupt Set-Pending Register): usado para definir interrupções para o status pendente.
ICPR (Interrupt Clear-Pending Register): utilizado para limpar o status pendente das interrupções.
IPR (Interrupt Priority Register): usado para definir a prioridade das interrupções.
SysTick
Contador decrescente de 24 bits
Geralmente usado para implementar o clock do sistema operacional ou função de atraso simples
Características
Recarga automática: SysTick pode ser configurado para recarregar automaticamente um valor predefinido quando o contador decrementa para zero, permitindo assim interrupções periódicas.
Geração de interrupção: Quando o contador SysTick diminui para zero, uma interrupção SysTick pode ser acionada. Essa interrupção geralmente é usada para agendamento de tarefas ou rotação de intervalo de tempo do sistema operacional.
Simples e fácil de usar: O SysTick é muito simples de configurar e usar, normalmente necessitando apenas de configurar alguns registros.
registrar
CTRL (Registro de Controle e Status): utilizado para controlar o modo de funcionamento e status do SysTick.
LOAD (Reload Value Register): usado para definir o valor de recarga do contador SysTick.
VAL (Current Value Register): utilizado para ler o valor do contador SysTick atual.
CALIB (Registro de Valor de Calibração): usado para fornecer informações de calibração, geralmente usado para a batida do relógio do sistema operacional.
Exemplo
Pesquisa para ler caracteres
porta serial
USART
Cenários de aplicação
Adequado para situações onde a comunicação síncrona e assíncrona é necessária, como transmissão de dados sincronizada com relógio com dispositivos externos.
modo síncrono
modo assíncrono
Semelhante ao UART
UART
Cenários de aplicação
Comunicação assíncrona ponto a ponto simples, como comunicação com sensores, ferramentas de depuração, etc.
modo assíncrono
Suporta apenas o modo de comunicação assíncrona
Compatível com M3
M4 sem FP era compatível com M3
RTOS grátis
A porta pode usar arquivos CM3
Processo de transplante
1. Preparar
Baixe o código-fonte do FreeRTOS LTS
GrátisRTOSv202406.01-LTS
Keil Engenharia
2. Copie o arquivo de código do kernel do FreeRTOS para o diretório correspondente do projeto
1. O diretório do projeto é FreeRTOS
2. Cortar, manter arquivo
croutine.c
eventos_grupos.c
lista.c
fila.c
stream_buffer.c
tarefas.c
temporizadores.c
incluir diretório
diretório portátil
Catálogo MemMang
Diretório RVDS
Diretório ARM_CM3
3. FreeRTOSConfig.h
Pode ser configurado manualmente
Você também pode copiar diretamente outras rotinas de referência
3. Modificar código
gd32f30x_it.c
Função de anotação void PendSV_Handler(void)
Função de anotação void SVC_Handler(void)
Função de anotação void SysTick_Handler(void)
Usando a implementação no arquivo FreeRTOS port.c
4. Configurar projeto Keil
(1) Opções para alvo
Caminhos de inclusão
..\FreeRTOS\incluir
..\FreeRTOS\portátil\RVDS\ARM_CM3
(2) Gerenciar itens do projeto
Itens do projeto
Grupos
Adicionar grupo
FreeRTOS_Core
FreeRTOS_Port
5. Referência do programa API FreeRTOS
Exemplo
xTimerCreate
xTaskCreate
Combate real
Arquivo de cabeçalho de referência
#include "FreeRTOS.h"
outro
projeto
keil5 abre o projeto keil4
Modifique diretamente o nome do arquivo uproj -> uprojx
Mapa de conhecimento do processador GD32
Interrupção NVIC
Responsável por gerenciar solicitações de interrupção (IRQs)
Interromper o gerenciamento de prioridades
O NVIC suporta até 256 níveis de prioridade de interrupção, mas o GD32F307C normalmente usa apenas 16 deles. Cada interrupção pode receber um nível de prioridade, com valores de prioridade mais baixos indicando prioridade mais alta.
Tabela de vetores de interrupção
O NVIC usa uma tabela de vetores de interrupção para armazenar os endereços das rotinas de serviço de interrupção (ISRs). Quando ocorre uma interrupção, o NVIC obterá o endereço ISR correspondente da tabela de vetores com base no número da interrupção e saltará para esse endereço para executar o ISR.
Quebrar aninhamento
NVIC suporta aninhamento de interrupções, ou seja, interrupções de alta prioridade podem interromper o processamento de interrupções de baixa prioridade.
Interromper ativar e desativar
O NVIC permite que o status de habilitação e desabilitação de cada interrupção seja controlado através de registradores.
Registro NVIC
ISER (Interrupt Set-Enable Register): usado para habilitar interrupções.
ICER (Interrupt Clear-Enable Register): usado para desabilitar interrupções.
ISPR (Interrupt Set-Pending Register): usado para definir interrupções para o status pendente.
ICPR (Interrupt Clear-Pending Register): utilizado para limpar o status pendente das interrupções.
IPR (Interrupt Priority Register): usado para definir a prioridade das interrupções.
SysTick
Contador decrescente de 24 bits
Geralmente usado para implementar o clock do sistema operacional ou função de atraso simples
Características
Recarga automática: SysTick pode ser configurado para recarregar automaticamente um valor predefinido quando o contador decrementa para zero, permitindo assim interrupções periódicas.
Geração de interrupção: Quando o contador SysTick diminui para zero, uma interrupção SysTick pode ser acionada. Essa interrupção geralmente é usada para agendamento de tarefas ou rotação de intervalo de tempo do sistema operacional.
Simples e fácil de usar: O SysTick é muito simples de configurar e usar, normalmente necessitando apenas de configurar alguns registros.
registrar
CTRL (Registro de Controle e Status): utilizado para controlar o modo de funcionamento e status do SysTick.
LOAD (Reload Value Register): usado para definir o valor de recarga do contador SysTick.
VAL (Current Value Register): utilizado para ler o valor do contador SysTick atual.
CALIB (Registro de Valor de Calibração): usado para fornecer informações de calibração, geralmente usado para a batida do relógio do sistema operacional.
Exemplo
porta serial
USART
Cenários de aplicação
Adequado para situações onde a comunicação síncrona e assíncrona é necessária, como transmissão de dados sincronizada com relógio com dispositivos externos.
modo síncrono
modo assíncrono
Semelhante ao UART
UART
Cenários de aplicação
Comunicação assíncrona ponto a ponto simples, como comunicação com sensores, ferramentas de depuração, etc.
modo assíncrono
Suporta apenas o modo de comunicação assíncrona