STM32::Algumas perguntas sobre o início do projeto

I. Visão geral:

O arquivo de inicialização executa as seguintes funções principais

This module performs:
- Set the initial SP                    //设置初始化堆栈空间
- Set the initial PC == Reset_Handler   //设置PC指针
- Set the vector table entries with the exceptions ISR address              //设置中断向量表
    - Configure the clock system                                            //设置系统时钟
    - Branches to __main in the C library (which eventually calls main()).  //进入C语言 main()

Para obter detalhes, consulte:
 Explicação detalhada do arquivo de inicialização SCM STM32 (análise de linguagem assembly)_Arquivo de inicialização MCU_Blog de KaminLuo-Blog CSDN

Análise do código de inicialização STM32F4_mcd application team_JXDZ's Blog-CSDN Blog 

2. Vários pontos e questões-chave 

Ponto-chave 1: Configurando a tabela de vetores

        Quando o kernel responde a uma exceção que ocorre, o manipulador de exceção correspondente é executado. Para determinar o endereço de entrada do programa de serviço de exceção, o kernel usará a tabela de vetores para consultar, assim como uma matriz de ponteiros, cada subscrito representa uma exceção e o valor interno é o endereço do programa. Porque após o reset o valor do registrador é 0, então é necessária uma tabela de vetores em 0x0000 0000 para determinar o próximo salto do programa, então a tabela é mapeada no endereço 0x0000 0000

Questão 1: Como o evento anormal corresponde à função de processamento de interrupção correspondente, ou seja: como é gerado o subscrito para encontrar o endereço da função de interrupção?

A correspondência entre eventos de interrupção e funções de interrupção é determinada tanto pelo hardware quanto pelo software.

        No nível do hardware, os periféricos do microcontrolador (como temporizadores, portas seriais, etc.) gerarão sinais de interrupção específicos, e esses sinais de interrupção acionarão eventos de interrupção correspondentes . Por exemplo, quando o temporizador transborda, um evento de interrupção do temporizador será acionado; quando a porta serial receber dados, um evento de interrupção de recebimento da porta serial será acionado. (interrupção brusca)

        No nível do software, os desenvolvedores precisam configurar controladores de interrupção (como NVIC, Nested Vectored Interrupt Controller) para permitir que interrupções específicas sejam acionadas corretamente e especificar funções de processamento de interrupção correspondentes. (interrupção suave)

De modo geral, as configurações correspondentes aos eventos de interrupção e funções de interrupção são divididas nas seguintes etapas :

  1. Configure o módulo periférico: defina o modo de funcionamento, habilitação de interrupção e outros parâmetros do módulo periférico para que ele possa gerar eventos de interrupção.
  2. Configure o controlador de interrupção: use os registros ou interfaces de software relacionadas ao controlador de interrupção para definir a prioridade de interrupção, habilitar fontes de interrupção específicas, etc.
  3. Função de tratamento de interrupção de gravação: Escreva uma função de tratamento de interrupção no código e execute as operações correspondentes de acordo com o tipo de evento de interrupção. A ligação do endereço da função de processamento de interrupção ao número da interrupção geralmente é realizada escrevendo o endereço da função de processamento de interrupção na tabela de vetores de memória.
  4. Habilite a habilitação de interrupção global: No local apropriado, ligue a chave de habilitação de interrupção global, para que a interrupção possa responder normalmente.

Deve-se observar que os métodos específicos de configuração e operação podem variar devido às diferentes plataformas de hardware, linguagens de programação ou ferramentas de desenvolvimento. De acordo com os documentos e programas de amostra da plataforma de hardware e ferramentas de desenvolvimento utilizadas, você pode conhecer os métodos específicos de configuração e configuração.

 

Acho que você gosta

Origin blog.csdn.net/one__leaf/article/details/132412957
Recomendado
Clasificación