Página 1 de 3

O que é HAL_

MensagemEnviado: 16 Dez 2020 00:53
por Guri
Eu estou querendo aprender mexer no trustudio da st. Andei notando que algumas instruções começam obrigatoriamente com um tal de HAL. Ex.: HAL_Delay(200);
Alguem pode me explicar como entender esse sistema. Literaturas e tal.
Obrigado

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 07:16
por eletroinf
Hardware Abstraction Layer
É o jeito enrolado de trabalhar.

O jeito direto e objetivo é fazendo as próprias configurações.

O debug vira uma bagunça, com um monte de funções pra setar ou restar cada bit.

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 07:26
por vtrx
eletroinf escreveu:Hardware Abstraction Layer
É o jeito enrolado de trabalhar.

O jeito direto e objetivo é fazendo as próprias configurações.

O debug vira uma bagunça, com um monte de funções pra setar ou restar cada bit.

KKK,eu ia falar algo parecido,tipo,é um jeito de 'Arduanizar' o negócio,tipo,faça o que eu quero e espalhe para todo mundo,se quiser refazer ou melhorar se vire,mas fiquei receoso de comentar.

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 08:46
por KrafT
Grande Guri Vonilmann. Sabia que não é pecado usar o Google? ;)
Mas também é bom manter o asm51 ativo, então tais perdoado :)

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 09:51
por Guri
KrafT escreveu:Grande Guri Vonilmann. Sabia que não é pecado usar o Google? ;)
Mas também é bom manter o asm51 ativo, então tais perdoado :)


Verdade :D
Eu até fui pesquisar, mas não ficou claro pra mim o conceito de programação.

Bom, então me corrijam se eu estiver errado (aliás, vendo os ANs da ST, notei que é mesmo algo pronto)! - Bom vamos lá, no mikroc eu tenho a opção de utilizar funções prontas, do tipo delay_ms(1000); porém eu tenho a liberdade de criar meus proprios delays. Então eu creio que é a mesma coisa no truestudio, eu poço ir direto, recorrendo as instruções em C ansi (aliás ele é ansi?) ou é mais ou menos? E posso também recorrer direto as informações do datasheet em seu set de configurações, ok...

Se for isso, posso cair fora desse tal de HAL_ :x

Obrigado pelas dicas....e pela paciência :D

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 09:54
por Rodrigo_P_A
Vale a pena usar uma camada PLT ou HAL chame como quiser.

Fica mais fácil quando precisa trocar de microcontrolador ou plataforma.

Resumindo: A ideia é que seu código nunca chame direto as rotinas para acesso a timers, ou IOs, ao invés disso ele chama rotinas padronizas assim quando vc precisar portar, fica mais fácil.

Uso em todos projetos, é muito melhor.

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 10:01
por Guri
Rodrigo_P_A escreveu:Vale a pena usar uma camada PLT ou HAL chame como quiser.

Fica mais fácil quando precisa trocar de microcontrolador ou plataforma.

Resumindo: A ideia é que seu código nunca chame direto as rotinas para acesso a timers, ou IOs, ao invés disso ele chama rotinas padronizas assim quando vc precisar portar, fica mais fácil.

Uso em todos projetos, é muito melhor.


Não entendi direito, a cabeça do véio anda meio zonza esses tempos. :D

Deixa eu ver se entendi! O caro amigo, indica que seja feito os acessos se assim dizer, aos periféricos através do HAL_? E demais instruções normalmente em C. Mas eu posso criar minha própria "lib", vamos por assim dizer para setapear os periféricos....ai creio cair no que você diz, quanto a migração :D Se bem que a linha ST é bem tolerante a compatibilidade mudando poucas coisas... :wink:

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 10:11
por tcpipchip
Por falar em
delay_ms(1000); no mikroc

Olhou a ZOEIRA do código assembly que o compilador gera ?

Nada optimizado para economizar memória FLASH :(

Uma droga!

Enfim, para casa delay_ms(1000); a rotina assembly de delay é REPLICADA! :) kkkk

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 10:28
por KrafT
Processador moderno sem usar HAL é um inferno trabalhar. Eu tenho o péssimo costume de burlar as HAL e assim nunca mais posso usar os RAD de configuração, pq eles sobreescrevem meu código que ofende a HAL.

Conselho de velho: Use HAL e respeite-as.

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 11:17
por tcpipchip
o que é RAD ?

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 11:33
por Guri
Agora lascou esse tal de RAD... :shock:

Mas e seu eu quiser optar por não utilizar o HAL_, terei problemas aonde? Seria na hora de gerar o código com o CUBE?

Bom eu fiz o meu primeiro helo word, kkk :D

while (1)
{
if(Counter1_Long == 500000)
{
Counter1_Long = 0;
GPIOC -> ODR ^= LED1_Pin;
}Counter1_Long ++;
}

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 11:50
por KrafT
Hehehe, usei "RAD" de Rapid Application Development na falta de um termo melhor para todos os infinitos nomes que os geradores de código de inicialização têm.

Mas no exemplo do Guri, vc deveria usar uma função que a IDE gera para acessar a I/O.

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 11:53
por Guri
KrafT escreveu:Hehehe, usei "RAD" de Rapid Application Development na falta de um termo melhor para todos os infinitos nomes que os geradores de código de inicialização têm.

Mas no exemplo do Guri, vc deveria usar uma função que a IDE gera para acessar a I/O.


Não vá me dizer que é o HAL_ :D

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 12:01
por Guri
Aí é que esta a meleca.

Eu detesto utilizar coisas prontas que outros fizeram, nada contra, mas é mais sadio utilizar sua própria concepção com base no datasheet nativo do componente. Assim fica mais transparente a programação, vai lá saber o que pensam os outros se nós, pelo menos eu sou doido :roll:

Re: O que é HAL_

MensagemEnviado: 16 Dez 2020 12:19
por Guri
Caramba, me deu um nó na cabeça...me ajudem.

Como eu calculo o tempo de processamento? O meu clock é de 72mhz no stm32f103, como eu faço a conta para saber exatamente o tempo de cada ciclo, para poder gerar meus delays com maior precisão.
Affi...deu branco :D