Página 1 de 3

Iniciando com RTOS MQX

MensagemEnviado: 09 Fev 2010 13:43
por Ricardo_Franco
Senhores.
Estou entrando em uma aplicação onde preciso usar o MQX, pelo que eu entendi é um sistema em tempo real, ou seja, quase um sistema operacional, mas é dedicado e bem mais leve.
Bom preciso de uma ajuda no start-up.
* Programo em CodeWarrior mesmo?
* Qual? onde baixar isso? é pago?
* alguém tem algum programinha exemplo com inicialização?

Obrigado.

MensagemEnviado: 09 Fev 2010 13:56
por Sergio38br
Trabalha com o CW, Site da freescale e tem de fazer o registro do usuario para fazer o download gratuito.

[ ]'s
Sergio

MensagemEnviado: 10 Fev 2010 14:15
por Ricardo_Franco
Ola Senhores.
Pois é por enquanto o caminho das pedras é:

1 - Instalar o CW 6.3 (Avaliação para 30 dias)
http://www.freescale.com/webapp/sps/sit ... _Tools_Tab
Lembrete: A licença pode ser renovada indefinidamente, mas a Freescale não garante até quando ...

2 - Instalar o MQX RTOS 3.5 no mesmo endereço acima. (este é free).

Depois de instalado o CW, podemos abrir alguns arquivos exemplos dentro da pasta "C:\Arquivos de programas\Freescale\Freescale MQX 3.5\demo"

Os exemplos são bem interessantes.

MensagemEnviado: 10 Fev 2010 14:20
por Ricardo_Franco
Alguém conhece o caminho das pedras para escrever uma aplicação simples utilizando este RTOS. algo do genero: "Piscar um LED"?

1 - passo um ....

2 - passo dois ....

....

MensagemEnviado: 10 Fev 2010 14:35
por marcelo_asm
eu ouvi que era preciso ter uma cópia licenciada do CW para poder rodar aplicações com o MQX por que a memória requerida era maior do que as versões free do CW permitiriam.

Uma pessoa do suporte da Freescale me respondeu isso no fórum técnico deles.

MensagemEnviado: 10 Fev 2010 15:26
por Ricardo_Franco
Ola Senhores.
Marcelo pelo que pude entender isso é verdade. tanto que ele não roda no mesmo codewarrior que estou usando para minhas aplicações de 8 bits (HCS08).
O que eu fiz: Instalei uma Maquina Virtual (VMWare Workstation 6.5.2) e neste o codewarrior Evaluetion, sempre que vencer o tempo de desenvolvimento (30 dias) eu posso fazer duas coisas, Abrir uma nova VM, ou pedir uma atualização de licença para a Freescale.

Até agora parece funcionar.

MensagemEnviado: 10 Fev 2010 16:56
por Ricardo_Franco
Senhores.
Realmente a Freescale tem MUITA documentação, mas isso atrapalha um pouco quando estamos saindo do zero.
Consegui achar umas coisas interessantes. inclusive um exemplo para piscar um LED. Segue:

Escrevendo sua primeira aplicação para MQX.
http://www.freescale.com/files/32bit/do ... umentation

Como Desenvolver Driver de IO para o MQX.
http://www.freescale.com/files/32bit/do ... umentation

Usando Bibliotecas do MQX
http://www.freescale.com/files/32bit/do ... umentation

Além disso alguns documentos importantes:

Guia de usuario MQX.
http://www.freescale.com/files/32bit/do ... pdf?fpsp=1

MQX - Reference Manual
http://www.freescale.com/files/32bit/do ... umentation

MQX - IO Driver
http://www.freescale.com/files/32bit/do ... umentation

Pronto, creio com estes documentos seja capaz escrever coisas simples para começar a usar o RTOS da freescale.

MensagemEnviado: 10 Fev 2010 19:27
por msamsoniuk
hahaha eh primeira vez q vejo alguem reclamar pq tem MUITA documentacao! esse povo nunca esta contente! :D

MensagemEnviado: 11 Fev 2010 07:59
por Ricardo_Franco
Ola senhores

hahaha eh primeira vez q vejo alguem reclamar pq tem MUITA documentacao! esse povo nunca esta contente! Very Happy


É verdade né ... mas não estou reclamando não... só que este negócio de RTOS é muito "diferente" do que estou acostumado. Aquela extrutura basica onde você precisa do datasheet de 400 paginas para poder interagir com cada registrador do núcleo do microcontrolador.
Aqui é um pouco diferente, estou fazendo um exemplo em que eu não ligo um bit do port, eu "peço" para o sistema ligar o bit do port. :shock:

Mas uma coisa você tem que concordar comigo, pecar pelo execesso é menos ruim do que pecar pela falta ... mas ainda sim é pecado !!!!

Att.

Iniciando com RTOS MQX

MensagemEnviado: 11 Fev 2010 09:57
por Ricardo_Franco
Pessoal mudei um pouco o assunto do tópico para "Iniciando com RTOS MQX".

Consegui fazer o LED piscar. Realmente esse negócio de RTOS é "um mundo a parte", extremamente empolgante, mas muito diferente do que estou habituado. Agora com uma primeira aplicação, já me considero BURRO o suficiente para ter duvidas. Portanto gostaria de saber:

Alguém aqui já possui experiência com RTOS MQX? (estou usando a versão 3.5)

Alguém sabe me dizer o que é um BSP? Pelo que entendi é uma camada intermediaria entre a camada física (hardwares, IO, Timer), e a camada de aplicação (escrita pelo usuário). É isso mesmo? O que significa o acrônimo BSP?

Alguém possui programas muito simples para acessar os periféricos do microcontrolador (Timer, IO, ETc.)? No estilo passo a passo?

Re: Iniciando com RTOS MQX

MensagemEnviado: 11 Fev 2010 10:10
por Rodrigo_P_A
BSP = Board support packeg ( algo assim, meu ingles é péssimo )

Re: Iniciando com RTOS MQX

MensagemEnviado: 11 Fev 2010 11:55
por msamsoniuk
para piscar led vc nao precisa do MQX, pq eh matar um mosquito com armas termonucleares... eu recomendaria ele para aplicacoes que usam tcp/ip, por exemplo. nesse caso o custo para matar a manada inteira de elefantes (implementar a stack ip, udp, tcp, multitasking, etc) justificaria plenamente o uso de armas termonucleares.

e mesmo assim, soh tem nexo onde nao dah para usar um uclinux. no caso do MCF52236 ou MCF52259, por exemplo, vc tem ethernet, porem nao tem memoria sdram externa. como nao rola uclinux, a unica solucao eh o mqx. mas num MCF5235 ou MCF5270 com sdram e ethernet, eu acho que o negocio eh partir para um uclinux.

Ricardo_Franco escreveu:Pessoal mudei um pouco o assunto do tópico para "Iniciando com RTOS MQX".

Consegui fazer o LED piscar. Realmente esse negócio de RTOS é "um mundo a parte", extremamente empolgante, mas muito diferente do que estou habituado. Agora com uma primeira aplicação, já me considero BURRO o suficiente para ter duvidas. Portanto gostaria de saber:

Alguém aqui já possui experiência com RTOS MQX? (estou usando a versão 3.5)

Alguém sabe me dizer o que é um BSP? Pelo que entendi é uma camada intermediaria entre a camada física (hardwares, IO, Timer), e a camada de aplicação (escrita pelo usuário). É isso mesmo? O que significa o acrônimo BSP?

Alguém possui programas muito simples para acessar os periféricos do microcontrolador (Timer, IO, ETc.)? No estilo passo a passo?

Re: Iniciando com RTOS MQX

MensagemEnviado: 11 Fev 2010 11:59
por Rodrigo_P_A
Marcelo, eu acho que ele disse que queria fazer piscar o led só para começar a enteder como usar e como funciona o RtOs.

Sobre o uCLinux o que você disse é verdade, mas até dominar o uCLinux e conseguir fazer um port, leva um tempo, eu estou estudando isso e ainda num consegui fazer funcionar.

MensagemEnviado: 11 Fev 2010 13:33
por Ricardo_Franco
Ola Senhores.
para piscar led vc nao precisa do MQX, pq eh matar um mosquito com armas termonucleares... eu recomendaria ele para aplicacoes que usam tcp/ip, por exemplo. nesse caso o custo para matar a manada inteira de elefantes (implementar a stack ip, udp, tcp, multitasking, etc) justificaria plenamente o uso de armas termonucleares.

e mesmo assim, soh tem nexo onde nao dah para usar um uclinux. no caso do MCF52236 ou MCF52259, por exemplo, vc tem ethernet, porem nao tem memoria sdram externa. como nao rola uclinux, a unica solucao eh o mqx. mas num MCF5235 ou MCF5270 com sdram e ethernet, eu acho que o negocio eh partir para um uclinux.


Isso é fato, o Rodrigo expressou muito minha idéia "apenas de forma didatica".

Minha real necessidade não precisa embarcar linux (ainda), e vejo o RTOS como um passo mais proximo de um sistema tão complexo quanto o linux.

Em passo futuro preciso implementar a pilha TCP/IP (por isso o RTOS).
Mas preciso saber como funciona. Tem uma curva de aprendizado inevitavel neste caminho.
Mas estou na briga aqui.

MensagemEnviado: 11 Fev 2010 14:01
por Ricardo_Franco
Ola Senhores.
Vou destacar um trecho do inicio da minha aplicação para piscar LED
Código: Selecionar todos
TASK_TEMPLATE_STRUCT MQX_template_list[] =
{
/*  Task number, Entry point, Stack, Pri, String, Auto? */
   {INIT_TASK,   init_task,   1500,  9,   "init", MQX_AUTO_START_TASK, 0, 0},
   {LED1_TASK,   led1_task,   1500,  10,  "led1", 0, 0, 0},
   {LED2_TASK,   led2_task,   1500,  11,  "led2", 0, 0, 0},
   {LED3_TASK,   led3_task,   1500,  12,  "led3", 0, 0, 0},
   {LED4_TASK,   led4_task,   1500,  13,  "led4", 0, 0, 0},
   {0,           0,           0,     0,   0,      0,     }
};

Minha duvida:
O "Stack", corresponde a area de memória utilizada para rodar as "tasks". As tasks parecem rodar de forma sumultanea para mim. é com uma maquina de estado? ele multiplexa tudo no tempo? Sozinha, ou são sequenciais ?

O stack como funciona? eu aloco uma quantidade de memória, mas prevejo que ela será usada simultaneamente? por todas as tasks?

Para que serve esta "string" de cada task?