Micro sistemas operacionais em controladores avr. Microcontroladores desatualizados? Sistemas operacionais de tempo real

Golovna / Contatos

Eu fiz mais de 10 Trochs dispositivos eletrônicos e totalmente gerenciados em seus robôs de baixo nível sem sistema operacional. A situação mudou, se a funcionalidade do dispositivo ofensivo se expandiu drasticamente. Além disso, o vinil é necessário na tarefa, pois chama por definir intervalos hora, além disso, a precisão da semana é adicionada ao resultado. Então ficou claro que escrever todo o software para a visão da hora não é visto, e isso será feito mais tarde. Depois de pensar um pouco, percebi que o projeto precisava incluir um sistema operacional de tempo real (RTOS e RTOS).

Na frente do PC, de OS - há mais bola para robôs com recursos de sistema, para o microcontrolador RTOS - é a frente do agendador, que vence e desempenha o papel principal na "hora real". No momento, é importante para mim garantir o chamado vikonannya zavdan pseudo-paralelo. Tobto є kіlka zavdan tem a mesma prioridade e é importante chamar na ordem dada nos intervalos da hora.

Um claro alvo ofensivo: no projeto Eurobot 2011, o sistema tinha 18 edifícios periféricos. Dois pagamentos eletrônicos podem ser combinados funcionalmente em um. O número de componentes mudou, o número de componentes aumentou (o número de componentes no sistema foi alterado), o número de componentes aumentou espaço livre no casco. Os móveis facilitam para quem está crescendo proporcionalmente e não pode prescindir do sistema operacional. Além disso, o RTOS ajuda a eliminar possíveis tempos ociosos no processador robótico, por exemplo, na hora da conversão do ADC, você pode bloquear a tarefa e desativá-la e, da mesma forma, expandirei corretamente o robô. Também é importante que aqueles que agora não caem na armadilha da tarefa, possam economizar na prática privada (embora você possa trazê-la para resultados intransferíveis). Por causa do que nos preocupamos com o crescimento desses shows? Vlasne, michavlyuєmo s MK é todo-poderoso, efetivamente vikoristovuyuchi yogo contando viabilidade.

Após algumas pesquisas recentes, escolha uma liga no freeRTOS. O RTOS está se expandindo em C e portado para 27 arquiteturas. O resto do mobiliário para mim é virishal. É necessário reduzir os custos trabalhistas e a hora de trabalho do MC dos demais catadores. De cada vez, é menos clicar na porta do AVR.

A presença do freeRTOS RTOS no projeto requer que você tenha aproximadamente 9,8 KB de memória de programa e 1,8 KB de RAM. Por exemplo, para ATmega32 e compilador WinAVR 60% e 85% válidos. Já para este modelo, criar um aparelho a partir de uma ótima funcionalidade é fácil - não esqueça da memória. Ale tsia problema v_dpadaє pіd h vykoristannya novos modelos AVR. O preço não é absolutamente nada para o Mega2560 com її 256Kb de memória de programa e 8Kb de RAM. A tendência dos futuros MKs não é mais acompanhada pelo sucesso do RTOS.

Pobіzhshi probіgshis em RuNet, estou querendo saber vyvelyuv, scho nenhuma documentação sobre o meu sistema operacional russo. Esse iaque está aqui! A documentação original é expandida para a versão adicional. A situação foi esclarecida pelo artigo Andriy Kurnytsya ( [e-mail protegido]) da revista "Component and Technologists". Ao longo dos anos, com o autor, revisei o material do artigo na versão revisada. O artigo Yogo como um todo pode ser a documentação da mina russa. Mas o original é inacessível aos olhos de um amigo, o site da revista está mentindo, esse material pode ser um pouco retrabalhado. Em geral, o autor fez uma revisão minuciosa do artigo e não faz sentido repassar o teórico mais uma vez, ele será publicado novamente aqui. O original do artigo será um complemento da publicação. Também mencionei que havia poucas dificuldades na compilação do RTOS. Isso se deve ao fato de que o makefile atual está quebrado, de modo que o caminho para as pastas é gravado. A isso vou anexar um projeto pronto para um modelo semelhante para AVR Studio e AVR Eclipse. Infelizmente, o makefile original não exibe as informações estatutárias, como a RAM e os níveis de memória do programa, foi possível corrigi-lo adicionando um tweet padrão.

Então, brevemente sobre a necessidade, seu projeto precisa ganhar RTOS, o que é necessário:

Organize tarefas multitarefa e de escrita

Certifique-se de que a tarefa seja iniciada nos próximos intervalos de tempo

Transferir informações de uma tarefa para a próxima

Adicione um novo pedido, se necessário

Vantagens do RTOS antes do M Antes:

  1. Bagatozachnist. O RTOS dá ao programador um mecanismo pronto e recompensador para bagatalidade. A pele da cabeça do vipad pode ser programada okremo, todo o trabalho pode ser feito entre os membros da equipe. Você não precisa dbati sobre re-microfonar entre as cabeças, apenas para quebrar o planejador.
  2. Base Timchas. É necessário levar em conta os intervalos da hora. RTOS é a mãe da ferramenta. Vіn permitir diї vikonuvaty através de intervalos claramente vistos da hora.
  3. Troca de dados entre zavdannyami. Para quem em RTOS vikoristovuetsya cherga.
  4. Sincronização. Yakscho tarefas diferentes você pode ganhar o mesmo recurso, por exemplo, a última porta, você pode ganhar mutexes e seções críticas. É necessário vencer a tarefa na sequência suvoria, ou no som atual do canto, você pode ganhar o semáforo ou sinais para a sincronização da tarefa.

Nedoliki RTOS:

1. Maior memória de programa para implementação do kernel

2. Maior consumo de RAM para salvar a pilha de gerenciamento de skins, semáforos, cherg, mutexes e outros objetos do núcleo do sistema.

3. Truques para uma hora de alternar entre tarefas para salvar o contexto.

DescriçãofreeRTOS:

O FreeRTOS é um sistema operacional gratuito por um curto período de tempo real com um código válido. É importante escrito em C, mas existem inserções de montagem. Ele foi dividido pela Real Time Engineers ltd especificamente para sistemas que precisam ser considerados. Recentemente, o projeto "SafeRTOS" começou a se desenvolver - suporte adicional, documentação, protestos e certificação para conformidade com a norma de segurança IEC 61508 versão do FreeRTOS. Este projeto foi assumido por uma empresa alemã e agora a safeRTOS é líder em tecnologia aeroespacial e médica. Além disso, o projeto openRTOS é uma versão comercial com a garantia do construtor.

Principais características do freeRTOS:

1. O Planner suporta 3 tipos de tarefas avançadas:

Vitisnyuyuchy

cooperativo

híbrido

2. Altere o tamanho do kernel para 9,8 Kb na visualização compilada do AVR. (WINAVR)

3. A base do kernel - 4 arquivos por Z.

4. Apoiar a tarefa de programas spiv. Spivprograms especialmente criados para MK com pouca memória RAM.

5. Ricas oportunidades para rastreamento.

6. Você pode verificar o refluxo da pilha.

7. Não há taxas de programa por um número de dias, que são fixados de uma só vez.

8. Nenhuma quantidade de troca de tarefas prioritárias.

9. Dekіlkom zavdannyam pode ser nomeado, mas a mesma prioridade

10. Causas da sincronização de "zavdannya-zavdannya" e "zavdannya-pererivannya":

Chergi

Semáforo duplo

Semáforo de Rakhunkov

Semáforo recursivo

M'utexi

11. M'yuteksy com prioridade herdada.

12. Suporte do módulo de proteção de memória para Cortex-M3

13. Entregue em um projeto de demonstração novo para várias plataformas e compiladores.

14. Bezkoshtovna. Você pode ganhar projetos sem abrir o código, até a licença GPL estendida.

15. A documentação é paga, mas disponível online aqui.

16. A hora de contração de contexto para AVR com cristal de 16 MHz torna-se inferior a 20,8 µs. O próprio estilo é necessário para a preservação dos dados na pilha da tarefa e no rastro da ofensiva. (Devido ao mesmo respeito pelo PIC18xxx, então o controlador AVR deve funcionar 4 vezes mais rápido!

A tarefa rica de Vytіsnyuyuchi significa que a tarefa, que é vitoriosa com baixa prioridade, se sobrepõe à tarefa concluída com prioridade mais alta. Peremikannya mizh zavdannyami vіdbuvaєtsya por igual quanti hora. Portanto, a primeira tarefa de baixa prioridade é mais de alta prioridade, o quantum atual da hora pode terminar, se for de baixa prioridade.

Dessa forma, a hora de resposta do FreeRTOS às chamadas no modo multitarefa não passa de um quantum para uma hora do planejador, que pode ser definido nas configurações. Para umovchannyam vіn dorivnyuє 1 ms.

Se você estiver pronto para terminar a tarefa com a mesma prioridade, nesse momento o planejador vê a pele deles por um quantum de hora, após o qual o gerenciamento assume a próxima tarefa com a mesma prioridade e assim por diante.

A tarefa rica cooperativa está vibrando apesar do fato de que o planejador independentemente não pode interromper o agendamento da tarefa in-line, para se preparar para completar o agendamento com grande prioridade. O gerenciador de skins pode transferir o controle de forma independente para o planejador. Nesta classificação, zavdannya chekatime de alta prioridade, enquanto a de baixa prioridade completa seu trabalho e dá controle ao planejador. A hora de reação do sistema à chamada do dia torna-se insignificante e baixa para esperar muito tempo antes da transferência do controle. A riqueza cooperativa da tarefa foi alimentada na família Windows 3.x.

Vitisnyayucha e conceitos cooperativos de riqueza são unidos de uma vez em riqueza híbrida, se o ciclo do planejador é um quantum de tempo, ale, no vіdmіnu vіd de riqueza, é claro que o programador poderá trabalhar no futuro. Este modo é especialmente brega, se for necessário acelerar o tempo de reação do sistema para uma reinicialização. Digamos que uma tarefa de baixa prioridade seja vencida de uma só vez e uma de alta prioridade esteja pontuando a próxima tarefa. Então, após a conclusão do trabalho do processador, a interrupção é transformada em uma tarefa encadeada de baixa prioridade e uma janela de alta prioridade é ativada até que o quantum encadeado da hora termine. No entanto, após a conclusão do processo de reorganização, transfira o controle para o planejador, transfira o controle para uma tarefa de alta prioridade, o que permite que o sistema reaja rapidamente, devido à situação atual.

Por quênobate-papob?

É possível expandir a distribuição do add-on microcontrolador, que é utilizado para a implementação do FreeRTOS, a partir do interesse o resto da versão.

O kit de distribuição do FreeRTOS está disponível de uma maneira aparentemente ótima ou pode ser auto-extraído para um arquivo ZIP. Distribuição Limpe o código principal sem intermediários (para examinar arquivos de cabeçalho e arquivos com código de saída) e projetos de demonstração (um projeto por ambiente de desenvolvimento de skin para a porta de skin). Eles deram o seguinte desempacotamento de arquivos em qualquer lugar na estação de desempacotamento.

Independentemente de quantos arquivos estão no arquivo, a estrutura de diretórios é realmente simples. Se for planejado projetar uma extensão em 2-3 arquiteturas em 1-2 centros de distribuição, não serão necessários mais arquivos que possam ser vistos antes de projetos de demonstração e outros centros de distribuição.

A estrutura detalhada dos diretórios é apontada para o pequeno.

Todo o código do kernel de saída é movido do diretório /Source.

Vmist:

1.tarefas.c- implementação do mecanismo de planejamento, planejamento

2. fila.c- realização cherg

3. lista.c- necessidades internas do planejador, funções de proteção podem ser usadas em programas aplicativos.

4. croutina.c- implementação de spivprograms (pode ser usado diariamente às vezes, pois spivprograms não vencem).

Arquivos de cabeçalho que estão no diretório fonte/incluir

1. tasks.h, queue.h, tist.h, croutine.h- os arquivos de cabeçalho são válidos para arquivos de menu único com código.

2. FreeRTOS.h-replace as diretivas do pré-processador para corrigir a compilação.

3.mpu_wrappers.h- Remapeamento de névoa da interface do software FreeRTOS (funções API) para suportar o módulo de proteção de memória (MPU).

4.portátil.h-paisagismo depositado em plataforma.

5.projdefs.h- atos de nomeação sistêmica

6. semfr.h- Projetar funções de API para trabalhar com semáforos, como implementações baseadas em cherg.

7. StackMacros.h- Névoa macros para controlar o refluxo da pilha. A plataforma de hardware skin mantém uma pequena parte do código do kernel que implementa a interoperabilidade do FreeRTOS com esta plataforma. Todo o código de depósito da plataforma está localizado no subdiretório /Fonte/Portátil, de vіn sistematizações do meio de distribuição (IAR, GCC, etc.) e plataformas de hardware (por exemplo, AtmelSAM7S64, MSP430F449). Por exemplo, subdiretório /Fonte/Portátil/GCC/ATMega323 Migre os arquivos port.c e portmacro.h para implementar o salvamento/recuperação do contexto da tarefa, inicialização do timer para definir a base de tempo, inicialização da pilha de tarefas skin e outras funções de depósito de hardware do microcontrolador AVR no Winmega sistema.

Okremo ao lado de ver o subdiretório /Fonte/Portátil/MemMang, em que os arquivos devem ser colocados heap_l.c, heap_2.c, heap_3.c, que implementam 3 mecanismos diferentes de visualização de memória para as necessidades do FreeRTOS, como será relatado posteriormente.

O diretório /Demo está pronto para compilar e selecionar projetos de demonstração. A parte principal do código para todos os projetos de demonstração foi vista no subdiretório /Demo/Commo n.

Para apresentar o FreeRTOS em seu projeto, você precisa incluir os arquivos de código de saída principais e os arquivos de cabeçalho que o acompanham. Não há necessidade de modificá-los ou entender sua implementação.

Por exemplo, se for planejado alterar a porta dos microcontroladores MSP430 e do compilador GCC, para criar o projeto do zero, você precisará de um subdiretório /Fonte/ Portátil/GCC/MSP430_GCC ta / Fonte/Portátil/MemMang. Todos os outros subdiretórios do diretório /Source/Portable podem ser excluídos.

Se estiver planejado modificar o projeto de demonstração principal (que, bem, é recomendável começar a trabalhar na espiga do FreeRTOS), você também precisará de um subdiretório /Demo/msp430_GCCі /Demonstração/Comum. Outros subdiretórios encontrados em /Demo não são necessários e podem ser alterados.

Na hora da criação do programa, recomenda-se ganhar makefile(ou um arquivo para o meio do projeto de distribuição) como um ponto válido para o projeto de demonstração. Opcionalmente, desative os arquivos de compilação do diretório /Demo, substituindo-os pelos seus próprios e os arquivos do diretório /Source - subdimensionados. Slide também adivinhar sobre o arquivo de cabeçalho FreeRTOSConfig.h, que é conhecido pelo projeto de demonstração da pele. FreeRTOSConfig.h Defina um #define que permite a personalização do kernel do FreeRTOS:

1. Conjunto de funções do sistema.

2. Wikoristannya spіvprogram.

3. Número de prioridades para a tarefa e programa spiv

4. Expanda sua memória (compre uma pilha).

5. Frequência do relógio MK.

6. O período de trabalho do planejador é de uma hora, que é visto pela pele zavdannya vikonannya, que soa mais de 1 ms. Remoção de algumas funções sistêmicas e mudança no número de prioridades (mudança de memória).

Antes dos kits de distribuição do FreeRTOS, ele também incluía ferramentas para converter informações de rastreamento obtidas do planejador em formato de texto (diretório /TgaseCon) e o texto da licença (diretório /Licença).

Visnovki

Com o auxílio do primeiro artigo do ciclo, o leitor conheceu o sistema operacional dos microcontroladores FreeRTOS. As características do robô são mostradas. Descrição do kit de distribuição do FreeRTOS. Apresento os principais sketches, dos quais irei expandir o desenvolvimento, que serão utilizados para desenvolver o FreeRTOS.

Em publicações futuras, o respeito será atribuído ao mecanismo de rica atribuição de tarefas e aos gestores desse programa spiv. O planejador robótico será apresentado à aplicação dos microcontroladores Atmel AVR e do compilador WinAVR (GCC).

O que cai no pensamento se você ouvir sistema operacional? Chantly kvatirki, linux, makos .. caso contrário é assim. Isso mesmo, e é necessário para a comida, tudo será aconselhado: ouvir música, jogar um jogo (na Internet!), roaming com um amigo no Skype. Ao mesmo tempo, olhando, como uma luz brilhante, otrimavshi byte z yuarta \u003d).

E se você cavar mais fundo, ouvir música, transferir dados pela Internet - todos são processos únicos, e temos apenas um processador, então em uma hora você pode ganhar apenas uma tarefa. É por isso que as tarefas são batidas por causa de pequenas "porções", a essência do trabalho do sistema operacional é irreconhecível para o koristuvach: para que o som não seja chiado e os bytes sejam enviados e tudo funcione ao mesmo tempo. Se sim, um dos dias estava “pendurado”, então todo o resto continuou a funcionar.

Se você jogar fora todas as guloseimas e perder o gol, então o sistema operacional é apenas um cronômetro, uma espécie de respiração intervalos iguais de uma hora, e também, sem a participação do coristuvach, ele se mistura entre as tarefas, vikonu como parte e re-imita. Também é necessário vrahuvat, que a tarefa maior não pode ser alcançada em um quantum de uma hora, é necessário salvar a tarefa no momento de mudar para outra e na próxima hora de mudar de campo. O gerente do qual está envolvido no gerente de planejamento.

Existem dois tipos principais de sistema operacional: vitіsnyayucha e cooperativo. Ao primeiro acaso, a conversa entre os líderes será zhorstky, tobto. se o quantum de uma hora for 1ms, na próxima vez que a tarefa for contada exatamente 1ms, o outro tempo será igual a 1ms, etc. Esse relógio é chamado de hora real (RTH). Para as cooperativas é mais fácil, o próprio processo é culpado de dizer “estou aqui” e é impossível trazer isso ao RTOS.

Vgamuvati vytіsnyayuchu em drіbnі AVR não vide através de uma pequena quantidade de RAM. Das opções mais recentes para cooperativas, fui homenageado pelo mRTOS, você pode ler os detalhes do sistema no site do autor (fácil de pesquisar no google). A principal razão para a variação é a simplicidade, a disponibilidade de uma versão pronta da CAVR para compreensão princípios fundamentais você mesma.

Otzhe, a comida da cabeça foi perdida, é necessário se você parar tudo. Teoricamente, todos aqueles mesmos, que você shobi z vіssyu, você pode baixar sem ele, mais recursos sozinho você mesmo. Dependendo do que você se encaixa no projeto, não voe megahertz para o espaço, basta ir sozinho, é aí que estão os recursos.

Para aquele varto, coloque seu próprio tempero no poder:
1. Você pode gerenciar os recursos com sabedoria?
2. O Chi não é transferido durante o processo de escrita do firmware do vinho, e a mesma moto é parecida com a plaina?
3. Quão legível é o seu código? Como você pode ajudá-lo através do pіvroku-rіk vіdkriti yogo i vіdrazu razіbratisya?
4. Você está sozinho Você escreve em grupo?

No primeiro dia, é difícil dar um abastecimento, porque tudo fica em forma de mão torta do lojista. Com outros, tudo foi mais entendido, pois há muitos zavdans independentes e está planejado conquistá-los através de intervalos de uma hora, em vez de se maravilhar com o Bik OS. Em terceiro lugar, tornou-se mais claro, mais fácil de classificar na planta okremu, diminuir a terra em pousio no ciclo principal. Se você escrever mais de um, também há vantagens, pois você pode escrever bem sua própria tarefa, sem respeitar os outros.

De acordo com o que já foi dito, o escopo de stosuvannya para dosit é específico, assim como no dia anterior. Não varto phati її no projeto de couro. Para a maioria dos projetos de rádio amador, todo o projeto, mesmo que tenha sido anunciado antes, cantou alguns projetos.

Agora zazirnemo sob o capô. Para executar o mRTOS antes do projeto, você precisa incluir mrtos.c e corrigir mrtos.h. A estrutura da coda trocho parece uma

#incluir #include "mrtos.h" //aqui está o corpo da função de mi escreva seu super código void task1() ( while (1 ) //Iniciar em um sistema operacional be-yak_y com base em um ciclo ininterrupto { //aqui está o código da sua tarefa DESPACHO; //função de transferir o controle para o planejador } ; } // identificador de reset do temporizador 0 interrupção [ TIM0_OVF] void timer0_ovf_isr(void ) ( char ii; #asm("cli") TCNT0= 0x9C ; inc_systime() ; for (ii = 0 ; ii< init_tasks; ii++ ) if (tasks[ ii] .delay ) -- tasks[ ii] .delay ; #asm("sei") } void main(void ) { // inicialização da periferia init_mRTOS(); //inicialização do SO //aqui criamos tasks(tasks) 3 tasks são criadas aqui create_task(tarefa1, 1, Ativo); //cria uma tarefa (minha tarefa, prioridade, status) create_task(tarefa2, 1, Ativo); create_task(tarefa3, 1, Ativo); Agendador(); //lançamento do planejador enquanto(1); )

#incluir #include "mrtos.h" //aqui escrevemos nosso próprio supercódigo void task1() ( while(1)//a tarefa em qualquer SO é chamada com base em um loop não interrompido ( //aqui está o código do seu task DISPATCH; / /função para transferir o controle para o escalonador );) // rotina de interrupção do temporizador 0 interrupção void timer0_ovf_isr(void) ( char ii; #asm("cli") TCNT0=0x9C; inc_systime(); for(ii = 0; ii

Agora informe. o número da tarefa é especificado em mrtos.h para o padrão APPTASKS N. A tarefa é dublada no meio de task1()(), task2()() muito bem, no meio de while(1) não é necessário escrever nada, não é necessário chamar a função, não é necessário criar o planner para você. Como você pode ver, a tarefa é dobrada a partir de um ciclo inesgotável, mas é normal assim e pode ser, mas no meio da tarefa, o obov'yazkovo é necessário para controlar o planejador. Ou a função WAIT, ou DISPATCH. Tanto quanto possível, então a tarefa de vikonuvatimes inexoravelmente.

Como você trabalha? Vamos criar uma tarefa de blimannya com luz.

void task1() ( while (1 ) ( PORTB.0 = ! PORTB.0; WAIT(100 ) ; ) ; )

void task1() ( while(1) ( PORTB.0 = !PORTB.0; WAIT(100); ); )

WAIT não é apenas um análogo de delay(), por uma hora o microcontrolador não perde nada e realiza ciclos vazios. A gestão do WAIT por hora é transferida para outros trabalhadores. Tobto. você pode criar alguns impulsos de luzes diferentes piscando, com uma ESPERA diferente e todo o fedor brilhará com uma frequência diferente. Se você não precisa de zatrymki, então no kintsi vikoristovuemo DISPATCH.

Quando WAIT é diferente, é importante entender que todo o sistema tem um tick mínimo (quantidade de horas), então verificamos não WAIT (50) 50 milissegundos, mas 50 ticks do sistema. Definir o carrapato para deitar em primeiro lugar, como o temporizador 0 é frequentemente chamado, tobto. assim como ajustamos a interrupção para 1ms, podemos permitir que nossa ação dure 1ms. Até agora, mostramos que é possível alterar o tick do sistema em até ~20 µs a uma velocidade de clock de 16 MHz.

A configuração do temporizador não é considerada de forma alguma anterior, pois o temporizador só pode ser reordenado, todas as configurações estão vinculadas ao preço. Em outras versões do CAVR, você também pode escrever manualmente os requisitos de tempo, que são gerados automaticamente.

create_task(tarefa1, 1, Ativo);

create_task(tarefa1,1,Ativo);

Não é fácil conseguir tudo com prioridades. Mesmo que duas tarefas com prioridade diferente e uma tarefa com prioridade alta sejam constantemente disputadas, uma tarefa com prioridade baixa não será inserida de forma alguma. É por isso que é necessário organizar o robô de forma que os administradores neguem o acesso. Não poderemos mostrar respeito por ninguém, economizaremos um tempo ofensivo. Starter Mill, Active – running, StopTask zupinena.

Otzhe, para quem estiver disposto, apenas pisque com luz:

#incluir #include "mRTOS.h" void task1() ( while (1 ) ( WAIT(1000 ) ; PORTB.0=! PORTB.0; ) ) // Rotina de serviço de interrupção de estouro do temporizador 0 interromper [ TIM0_OVF] void timer0_ovf_isr(void ) ( char ii; #asm("cli") TCNT0= 0xb2 ; inc_systime() ; for (ii = 0 ; ii< init_tasks; ii++ ) if (tasks[ ii] .delay ) -- tasks[ ii] .delay ; #asm("sei") } void main(void ) { DDRB= (1 << DDB7) | (1 << DDB6) | (1 << DDB5) | (1 << DDB4) | (1 << DDB3) | (1 << DDB2) | (1 << DDB1) | (1 << DDB0) ; PORTB= (0 << PORTB7) | (0 << PORTB6) | (0 << PORTB5) | (0 << PORTB4) | (0 << PORTB3) | (0 << PORTB2) | (0 << PORTB1) | (0 << PORTB0) ; // Inicialização do temporizador/contador 0// Fonte do relógio: Relógio do sistema // Valor do relógio: 7,813 kHz TCCR0= (0<< CS02) | (1 << CS01) | (1 << CS00) ; TCNT0= 0x83 ; // Inicialização de interrupção(ões) de temporizador(es)/contador(es) TIMSK = (0<< OCIE2) | (0 << TOIE2) | (0 << TICIE1) | (0 << OCIE1A) | (0 << OCIE1B) | (0 << TOIE1) | (1 << TOIE0) ; Init_mRTOS() ; create_task(task1, 1 , Active) ; Sheduler() ; while (1 ) ; }

#incluir #include "mRTOS.h" void task1() ( while(1) ( WAIT(1000); PORTB.0=!PORTB.0; ) ) // estouro do temporizador 0 interrupção da rotina de serviço interrupção void timer0_ovf_isr(void) #asm( "cli") TCNT0=0xb2; inc_systime(); for(ii = 0;ii

Como bônus, experimentei a melodia polifônica (dupla) "Dr. Mario chill". A ideia é que a pele do controlador seja constantemente invertida em um desejo real, gerando assim a própria frequência. Ao alterar o patch, você pode alterar a altura da nota.

void task2(void ) ( while (1 ) ( if (mudo == 0 ) // como permitido grati( if (note_ch2[ n_n] == 0 ) // assim como uma pausa, então é verificada, nada é lido( PORTB.4 = 0 ; WAIT(5 ) ; ) else ( PORTB.4 = ! PORTB.4; // se não for uma pausa, então está se movendo com o pé na frequência necessária WAIT(nota_ch2[n_n]); ) ) ) )

void task2(void) ( while(1) ( if(mute == 0) //deve ser permitido tocar ( if(note_ch2 == 0) //se a pausa for marcada, nada pode ser mudo ( PORTB.4 = 0; WAIT( 5);) else ( PORTB.4 = !PORTB.4; //se não for uma pausa, então movemos o pé com a frequência necessária WAIT(note_ch2); ) ) ) )

Não estou brincando com a ideia, em 1 tarefa é gerado um meandro a partir da frequência da nota para a parte do solo, na outra para o baixo. A altura da nota de skin é tirada de arrays. Trivalidade, barbear e barbear em uma tarefa3.

void task3(void)(while(1)(WAIT(1500)); //graimo a trivialidade mínima da nota for (mudo = 0; mudo< 500 ; mute++ ) // raspa a nota para não ficar com raiva(PORTB.3 = 0; PORTB.4 = 0;); mudo=0; // montamos um sinalizador que você pode fazer um som n_n++; //vai para a próxima nota se (n_n == n_max) //yakscho jogou todas aquelas demos na estaca(n_n = 0;)))

void task3 (void) (while (1) (WAIT (1500); // mantém nota para (mute = 0; mute)< 500; mute++) //обрываем ноту, чтобы не сливались { PORTB.3 = 0; PORTB.4 = 0; }; mute = 0; //выставляем флаг, что можно воспроизводить звук n_n++; //переходим на следующую ноту if(n_n == n_max) //если сыграли все то идем по кругу { n_n = 0; } } }

Para mudar dois canais torcendo um circuito simples.

Um pequeno pedaço de uma só vez

Para firmware ruim

Estou constantemente me perguntando o que comer, por uma hora para ocupar meu hobby - um pequeno sistema de controle automático doméstico (cabine inteligente), baseado em um microcontrolador de 16 bits - qual é a ideia correta? No segundo mês atrás, já escrevi no meu blog sobre o tema “Microcontrollers vs. system-on-a-chip”. Então o eixo, estou me preparando para escrever sobre ele novamente.

Muitas vezes fiquei surpreso com o aparecimento da venda do Stellaris Launchpad e do Arduino Due. O fedor é ofendido com base em microcontroladores de 32 bits e, em muitos aspectos, eles são semelhantes. Estou em dia com as especificações (datasheet), e querendo cheirar mal a um preço, os fedores são cobrados para um público-alvo. Eu estava pensando naqueles que podem mudar minha mente do MSP430 para o Stellaris, e eu posso mudar para o meu sistema, mudar para o Raspberry Pi, substituir os microcontroladores.

Obidva, Stellaris Launchpad e Arduino Due, ainda mais difíceis, mas não reconhecidos para rodar Linux. O mau cheiro funciona tanto em um código personalizado escrito sem intermediários para eles, quanto no controle do sistema operacional em tempo real (RTOS) - um sistema operacional minimalista, com uma hora de reação às chamadas. Portanto, o fedor é obviamente dobrável, MSP430 inferior ou AVR de 8 bits.

Por outro lado, na vida real (além da Internet), a maioria das pessoas que conheço está executando o Raspberry Pi ou outros sistemas que rodam no Linux. Vykoristannya próprio microcontroladores, dosit vipadok raro entre os tranquilos, a quem aprendi. Navit Arduino, um pouco menos popular, no meu Linux mais apurado e inferior, o que me vem à mente. Pelo que entendi, vale a pena comprar um Arduino, se você pode obter um Raspberry Pi, qual pode ser mais rico e quais são menores? No Linux, não há software pronto, e nele você pode programar, usando scripts simples para mover.

Especialmente para mim, a razão é porque eu não me importo com o Linux vitorioso, porque estou fazendo ioga vicor em um robô hoje, e voltando para casa, não estou feliz com a necessidade de praticar novamente em sistemas semelhantes ao Linux . Não tenho muitos problemas com hacks de linux, mas é demais para sufocar, me apodreça. Estou mais confortável com dispositivos eletrônicos simples baseados em microchips de 8/16 bits.

Prote eu não me transformo em realidade. Como quero ficar sozinho com o mundo real, posso conquistar esses instrumentos, como conquistar o mundo real. Caso contrário, é como dirigir um carro com motor a vapor, nem tanto, porque o motor de combustão interna é soberbo, sou pós-guerreiro em tal categoria. Se é preciso mudar para uma tecnologia mais moderna, é preciso dominá-la, ser como eu. Especialmente, porque eu quero que meu blog seja relevante para as pessoas e se torne relevante.

No meu projeto de um estande inteligente, fiquei realmente preso a esse problema. Já construí um driver de rede local para o sistema de controle no MSP430 e tudo parece bem. Na verdade, posso fazer tudo o que você precisa para um sistema de automação no MSP430. Tim não é menor, estou me perguntando, quais estão corretas, como posso fazer isso? Eu não contrabando, o que é a sopa com serra, se é colher? Talvez, o Linux é um sistema mais semelhante? Deixe-me explicar.

Vale a pena olhar para a situação atual, para as conquistas tecnológicas para o outono de 2012 do rock. Eu me pergunto, para que servem os microcontroladores atuais, em comparação com sistemas em um chip, o que o Linux ganha?

Como revisar projetos no sistema, como me vem à mente, tse: drones, robôs, automação residencial, controladores de motores, sensores, anuário de pulso, impressoras 3D, etc. Algum desses tipos de Linux, scho vbudovuetsya, cabe mais microcontroladores inferiores? Por quê?

Eu realmente aprecio que existam três situações, se o microcontrolador for a melhor escolha: lá, o importante é a reação instantânea (em tempo real) ao submarino; lá, precisa de energia extremamente baixa; E lá, é necessário usar microcircuitos da menor var possível.

Para a espiga, o uso de microcircuitos baratos não é um momento tão importante para mim. Eu cuido do meu hobby por mim mesmo e não escolho se lançar produtos competitivos. Não preciso sucumbir à transferência da produção para a usina, que é uma espécie de trabalho escravo vitorioso, para oferecer um preço competitivo para esses outros projetos, como rozroblyaet. Estou feliz, yakby zmіg pagar mais de um pagamento por dia, zavdyak para o seu conforto!

Por exemplo, para um projeto de cabine inteligente, posso desenvolver o controle remoto do vimikach. Vіn pode ligar / desligar a luz ou então. Ao mesmo tempo, posso ir à minha loja elétrica local e comprá-los por US $ 20, fabricados na China. Chi posso se você matar o preço tentando vender vlasny vimikach? Eu não acho que seja possível.

Para ser mais ponderado, é preciso alcançar a riqueza de outros discursos necessários para a automação residencial. Sensores de temperatura, dima, ruhu, etc., posso construir um prédio de forma independente, mas é improvável que você possa obter um benefício financeiro. Quem se importa em comprar esses discursos de mim por US$ 75, se eles podem encontrá-los por US$ 20 na State Goods?

Se você pensa em cuidar de seus próprios hobbies, é melhor ganhar respeito por produtos mais caros e dobráveis. Por exemplo, um controlador de automação residencial ou um termostato, o som custa mais de US $ 100 e dá mais liberdade para a criatividade individual, você pode incentivar um, vender seu dinheiro e ganhar dinheiro por conta própria.

Ale bazhannya, atingindo o preço mais alto do acessório residual, não significa que seja necessário vencer o microcontrolador encontrado na Terra. Uma péssima ideia, porque a hora de rozrobki esses mesmos podem possuir a versatilidade, como detalhes vitoriosos. Possivelmente, o microcontrolador é barato, mas leva mais de uma hora para escrever o código para controlar. Uma hora é um centavo, e se você praticar de forma mais inteligente, alcançará um alcance maior.

Mesmo assim, pense em me levar a um visnovka, que é melhor para expandir o sistema de uma cabine inteligente no Linux, com microcontroladores mais baixos, independentemente das minhas habilidades especiais, não vença o Linux (preciso programar um nível baixo, mais scripts inferiores, o Linux precisa de menos scripts).

Se você se voltar para esses tópicos, o preço dos microcontroladores, pode ser um fator importante para grandes corporações que optam por lançar um novo produto, mas em nível individual, como se você quisesse fazer negócios no estilo Kickstarter, esse fator não é mais tão significativo, na verdade, sueco , Mais importante, menor variância de componentes.

Por outro lado, os microcontroladores podem ser uma escolha melhor, com menor sistema em um chip, se for necessária baixa energia. Tais sistemas possuem dois momentos: baixa auto-sustentação do próprio circuito para uma hora de trabalho e uma hora de partida curta. Uma maneira típica de economizar baterias para outras dependências é a autoconexão (desligamento). Se você imita um computador no Linux, precisará de uma hora decente para voltar ao trabalho, às vezes para dekilkoh hvilin. Tal hora não é aceitável para sistemas que precisam ser cortejados.

Se você usar esse microcontrolador, como o MSP430, às vezes poderá usar uma bateria. Stellaris Launchpad e Arduino Due, em princípio, iguais no mesmo prédio, cheiram mais energia inferior ao MSP430, mas ainda um pouco menos, igual ao Raspberry Pi. Ainda assim, MSP430, você pode iniciar instantaneamente, depois de desligá-lo.

Neste posto, estou absolutamente convencido de que em todas as situações em que são necessárias operações em baixa tensão, há uma sensação de vitória nos microcontroladores. Há um grande número de várias dependências que funcionam com baterias, o que é o motivo de tal necessidade.

Para o terceiro tipo, como disse antes, o uso de um microcontrolador é mais entendido do que o Linux, em operações que exigem uma resposta instantânea (resposta em tempo real). Posso usar esses acessórios, como impressoras 3D e tipografia CNC, sei do que estou falando, dedicando muito tempo ao meu casamento. Devido à sua natureza, o fedor exige alta precisão nos robôs, pois é menos provável que se deite na hora de reação aos comandos.

Por exemplo, se você tem um arquivo circular rodando, como se em um determinado momento os pedaços de madeira ou metal estivessem sendo cortados, você não pode iniciar o processo, por meio daqueles que o computador precisa ter uma pausa, para que os dados possam ser transferido da memória para o disco, caso contrário, no mesmo espírito. Seja alguém que ganha o PC, sabe sobre o podvisannya vipadkovy, que periodicamente culpa a hora do trabalho esplêndido. E agora deixe-me saber que você tem um ótimo fluxo de trabalho de perfuração, sob o título de um PC, que raptom começa a alterar a atualização para o Windows, trabalhar por uma hora e perfurar, perfurar o aço, em qual ficar, porque . o computador ganhou controle sobre ele.

PCs e system-on-a-chip não são projetados para trabalho em tempo real, seja no Windows ou no Linux, mas por si só o fedor está se aproximando de você. Como exemplo, utilizo um patch em tempo real para o kernel Linux e um software CNC especial, criações para robôs desse tipo. Não sei muito sobre o patch cim Linux, e não sei se é um pouco grudento, para melhor controle do tempo real. Mas eu estou querendo saber se há uma alternativa melhor, tk. Linux, mesmo que os patches não tenham travado nele, os microcontroladores não poderão quebrar seus sistemas nesta janela.
Nasamkinets, quero dizer que depois de muito tempo, tentando conhecer as áreas onde os microcontroladores estão instalados em meus projetos, posso vencer. E tudo parece que a era da dominação leve de Raspberry Pi e Beaglebones chegou. Esta é uma situação atual para travessas DIY. Tem mais opções, é mais rápido e fácil de desenvolver nestes sistemas, por isso é a melhor escolha para mais projetos.

Para microcontroladores, não há mais áreas para conexões de baixa tensão, operações em tempo real e conexões de baixa tensão.

Você não pode mentir sobre o fato de que os microcontroladores podem fazer PCs inferiores “engraçados”. Tse aqueles com quem você se reconcilia.

Traduzido do filme em inglês do post original

O sistema é movido, o sistema é movido(eng. sistema embarcado) - se o sistema do computador for especializado, o próprio computador soará como um anexo, que o controlará.

Características características:

  • Ainda menos economia de energia, perto de 0,5 a ~20 W
  • Pequenas rosas
  • Apresentação de grandes sistemas de fornecimento de calor (refrigeração). Na maioria das vezes, a CPU não esfria, mas sim um pequeno dissipador de calor aquece.
  • A CPU e a lógica do sistema, bem como outros ICs, são frequentemente combinados em um único chip (System On Crystal = SOC)

A base dos sistemas de brotamento pode ser de placa única ou chip único microcontroladores, CPU especializada ou universal, PLIS. É uma característica especial de certos tipos de sistemas superar processadores antigos da família x86 (por exemplo, i386, i486, Pentium) e seus clones através de uma pequena fonte de alimentação e baixo custo (cerca de 1-5 dólares americanos). Há também muitas visualizações em sistemas vitoriosos para a CPU da arquitetura ARM.

No momento, há um grande número de empresas (incluindo as da Rússia) usando computadores de placa única baseados em microcontroladores e CPUs com arquitetura RISC. Entre eles Advantech, AAEON, Advanced Micro Peripherals (AMP), Ampro Computers, Diamond Systems, iBASE, InnoDisk, Fastwel (Rússia), Lippert, Octagon Systems, RTD Embedded Technologies, Tri-M Systems - Engenharia, SanDisk, STEC. ATMs, aviônicos, PDAs, sistemas de telecomunicações podem ser alvos nos sistemas.

Sistemas Deyakі vbudovanі vikoristovuyutsya em grandes quantidades (por exemplo, RFID). Sistema Vbudovanie є método prioblyayuschey para os criadores do código shkіdlivogo através de sua amplitude e vіdnosnu bezakhisnіst. Código passo a passo winkіdly para sistemas vbudovanih (Cabir, RFID-vírus); Felizmente, este processo ainda é difícil devido à diversidade de dependências do edifício, incluindo o PZ dominante e subsidiando a funcionalidade desses tipos de dependências do edifício. Por outro lado, os líderes de empresas de antivírus e segurança de computadores antigos também são complicados por ambientes, bem como sistemas de baixa potência, que muitas vezes não permitem a disseminação de todos os softwares antivírus de segurança.

Os principais hacks de CPU para sistemas iniciantes є Tecnologias VIA, Transmeta Corporation, Infineon Technologies.

Sistemas operacionais para sistemas que precisam ser

Em sistemas que precisam ser construídos, para gerenciamento, eles conquistam tsіyni sistemas de tempo real (OS RT) .

O sistema operacional da hora real do SO é o SO que reage à transferência da hora à não transferência do aparecimento dos sonoros. Alguns RTOS são chamados de sistemas interativos de prontidão constante. Na categoria RTOS, eles estão incluídos em aplicativos de marketing de marketing e, como tal, um programa interativo é chamado de “trabalhar em tempo real”, o que significa que as bebidas são processadas de um local escuro e desconhecido para as pessoas. Algumas pessoas entendem o tempo real do sistema com o “sistema sueco”, mas não entendem direito, é importante que não seja a hora da reação do RTOS atrapalhando, mas aquelas que a hora foi suficiente para o adendo e foi garantido.

Diferentes sistemas são divididos hora real "dura" e "suave". O OS da hora real “hard” garante a mudança de horário para o último intervalo da hora, o OS da hora real “soft”, via de regra, pega a carga do dia para o intervalo da hora, mas novamente não garante isso. A maior parte do software é orientada para a hora real "soft".

Esses sistemas são caracterizados por:

  • garantias de uma hora de reação a ovnishnі podії (reassentamento devido a obladnannya);
  • apenas um subsistema de planejamento de processos (as tarefas de alta prioridade não devem ser responsabilizadas pelas de baixa prioridade, por algum tipo de culpa);
  • deslocamento até uma hora de resposta a chamadas ou reatividade (o atraso na interrupção do ciclo de recuperação não é superior a dezenas de microssegundos, o atraso na transição de tarefas não é superior a centenas de microssegundos)

A bunda clássica do gerente, a necessidade do RTOS, é o controle do robô, que tira o detalhe da linha do transportador. A peça está desmoronando, e o robô só pode demorar um pouco, se você conseguir. Se a falha for atrasada, a peça não estará mais no espaço necessário do transportador e, posteriormente, o robô não será quebrado, independentemente de o robô estar no lugar certo. Se os vinhos forem posicionados mais cedo, o detalhe ainda não foi capturado e os vinhos bloquearão o caminho.
Windows CE (ganhou WinCE)- tse variante do sistema operacional Microsoft Windows para computadores, telefones celulares e sistemas aprimorados que você precisa. O Windows CE não é uma versão "urbana" do Windows para PCs desktop e é baseado em um kernel diferente. Até as principais deficiências do sistema, você pode ver todos os programas de software necessários. As arquiteturas x86, MIPS, ARM e os processadores Hitachi SuperH são suportados.

Os principais concorrentes do WinCE são VxWorks, eCos, OSE, QNX, LynxOS, Symbian OS, OS-9 , bem como diferentes tipos de Linux (por exemplo, uClinux ) i, a maior vіdomia, Palm OS . Os construtores das dependências também estão preparando um sistema de energia.

O Windows CE é otimizado para complementos que exigem a menor quantidade de memória: o kernel do Windows CE pode ser executado em 32 KB de memória. Com uma interface gráfica (GWES) para robôs Windows CE, serão necessários 5 MB. Os anexos geralmente não desperdiçam memória de disco e podem ser projetados como anexos "fechados" sem a possibilidade de expansão com um estojo rígido (por exemplo, o sistema operacional pode ser "conectado" à ROM). O Windows CE está ciente do relógio em tempo real do sistema operacional.

Com base no Windows CE, uma plataforma anônima foi fundada, incluindo Handheld PC, Pocket PC, Pocket PC 2002, Pocket PC 2003, Pocket PC 2003 SE, Smartphone 2002, Smartphone 2003, Windows Mobile, bem como um add-on industrial impessoal. em e sistemas embutidos. O prefixo Sega Dreamcast com suporte para Windows CE. O próprio Windows CE em uma postagem pós-empacotada, mas pode ser executado em um console a partir de um CD. Deyakі іgri vikoristali tsyu mozhlivіst.

Muitas vezes chamam Windows CE, Windows Mobile, vicorist Pocket PC como mutuamente intercambiáveis. Não sabemos com certeza. O Windows CE 3.0 é um sistema operacional modular, como base para muitos anexos de classe. Quer haja um retalhista, pode adquirir uma ferramenta (Platform Builder), que pode substituir todos os componentes e programas que lhe permitem utilizar a plataforma. Se sim, os programas, como Word Mobile/Pocket Word, não fazem parte desta ferramenta.

O Windows Mobile é a melhor vitrine para plataformas baseadas no Windows CE. Neste momento, este conjunto inclui as plataformas: Pocket PC, SmartPhone e Portable Media Center. A plataforma de skin tem seu próprio conjunto de componentes do Windows CE, além de seu próprio conjunto de recursos e complementos relacionados.

Windows CE.– Este é o nome de código para Windows CE versão 4.2.

Windows Embedded CE 6.0(nome de código Yamazaki) é a sexta versão do sistema operacional Windows Embedded, voltado para empresas que fabricam controladores e eletrônicos complementares. No Windows Embedded CE 6.0, o kernel foi completamente reformulado para oferecer suporte a mais de 32.000 processos, acima dos 32 das versões anteriores. De 32 MB para 2 GB, foi adicionado um espaço de endereço virtual, que é visto para processos.

O Windows Embedded CE 6.0 foi lançado em 1º de outono de 2006.
O Windows CE 6.0 R2 foi lançado em 15 de outono de 2007.
O Windows Embedded CE 6.0 também é a base do Windows Mobile 7 (codinome "Photon").

QNX- sistema operacional comercial em tempo real POSIX-summ_sna, reconhecido como importante para sistemas que precisam ser construídos. Considere uma das melhores implementações do conceito de sistemas operacionais micronucleares.

Iaque sistema operacional micronuclear, a QNX se baseia na ideia de trabalhar a parte principal de seus componentes, como pequenas fábricas, como são chamados de serviços. Tse vidriznyaїs vid vid traditіynіh núcleos monolíticos, neste núcleo do sistema operacional - é qualquer grande programa, que se desdobra de um grande número de partes, pele é é svoіsbolivnosti. A subchave de microkernel do QNX permite que os núcleos (varejistas) ativem qualquer funcionalidade de que não precisem sem alterar o núcleo. Natomist, você simplesmente não pode iniciar o processo de canto.

O sistema é pequeno, de modo que a configuração mínima cabe em um disquete;

QNX Neutrino, Lançado em 2001, portado para uma grande variedade de plataformas e, ao mesmo tempo, prático para praticar em qualquer processador moderno que ganhe no mercado de sistemas, que será desenvolvido. Existem famílias entre essas plataformas x86, MIPS, PowerPC, bem como famílias especializadas de processadores, como SH-4, ARM, StrongARM e xScale.

Uma versão para o wiki não comercial está disponível para download no site do varejista.

LynxOS- Sistema operacional em tempo real tipo Unix, decomposto para sistemas que precisam ser combinados com padrões POSIX e, no restante da hora, com o sistema operacional GNU/Linux. O LynxOS ganha mais importante na aviação, sistemas de gerenciamento de processos industriais e em salas de telecomunicações.

ChorusOS- sistema operacional micronuclear em tempo real, discriminado para sistemas que precisam ser trabalhados. Em 1997, a Sun Microsystems comprou os sistemas Chorus, a empresa que fez o ChorusOS. No final de 2002, os fundadores da Chorus Systems organizaram uma nova empresa VirtualLogix e se dedicaram ao desenvolvimento de sistemas para desenvolver Linux e ChorusOS.

Núcleo- um sistema operativo em tempo real, criado pela Accelerated Systems, um seguimento dos sistemas da empresa Mentor Graphics, que se espera, para várias plataformas de processadores. A Nabula se expandiu em decodificadores de televisão, telefones celulares e outras dependências portáteis e intestinais. O Nucleus é concedido pela Garmin International a um módulo GPS reconhecido para a aviação civil.

OS-9- ricamente encarregado, rozrakhovan em um sistema operacional em tempo real ricamente koristuvachіv, rozroblen Microware Systems Corporation.
Vencendo para sistemas interativos e iniciantes. Hoje, o OS-9 é propriedade da RadiSys Corporation, uma varejista em Oregon (EUA).

VxWorks- Sistema operacional em tempo real (RTOS) desenvolvido pela Wind River Systems (EUA).
Como a maioria dos outros RTOS, o VxWorks inclui um núcleo multitarefa com um agendador inteligente e um guia de reconstrução rápida, suporte para interações e sincronização entre processos, bem como um sistema de arquivos e um subsistema em rede (pilha de protocolo TCP/IP). O pacote inclui ferramentas para compilação cruzada, monitoramento de produtividade (WindView), aprimoramento remoto de caracteres e emulação de diferentes processadores. Além disso, um grande número de diferentes pilhas de protocolos, subsistemas gráficos e outros são fornecidos. bem como da própria Wind River Systems, bem como de terceiros. O suporte impessoal das plataformas VxWorks é um dos maiores ambientes RTOS.

A versão restante do ambiente de desenvolvimento integrado Wind River Workbench (que vem com as versões 6.x e 5.x do VxWorks) é baseada no ambiente Eclipse. O meio frontal proprietário da roseta foi chamado de Tornado.

Vitória:

  • Mars Reconnaissance Orbiter em órbita de Marte (sistema VxWorks está competindo)
  • As sondas Spirit e Opportunity, bem como a Mars Reconnaissance Orbiter, estão usando o VxWorks na plataforma POWER. O sistema ganha em outras missões espaciais, por exemplo Deep Impact.
  • Está planejado para competir com novos aviões Boeing 787.
  • Comunicações de empresas ricas (por exemplo, Nortel, 3COM, Alcatel e outras).
  • Linksys WRT54G (ver.5,6,...), NetGear WGR614 (ver.5,6,7)
  • Impressoras PostScript ativas.
  • Medicamente propriedade da Siemens AG (creme para ressonância magnética).
  • Interfaces restantes do BMW iDrive

OS2000- O sistema operacional em tempo real (RTOS) foi desenvolvido pelo Instituto Nacional de Ciência e Tecnologia da Academia Russa de Ciências para o projeto do Ministério da Defesa de RF para microprocessadores MIPS e Intel.
Qia RV OS é reconhecido como um desenvolvimento de software para sistemas (complexos de software e hardware) que são usados ​​no modo de tempo real.
Dependências de apoio:

  • Anexos Ethernet (protocolos NFS, FTP, Telnet);
  • anexos de armazenamento - disquetes e discos rígidos (sistemas de arquivos vfat e tar)

Є suporte para o subsistema gráfico cliente-servidor do X Window System, que vence em sistemas Unix.

O computador ganha, primeiro por tudo, pela segurança da flexibilidade e pela simplicidade do desenho do sistema. Ao visualizar um PC, o código do programa deve ser salvo em ROM e não em um disco rígido. interromper kіntsevy koristuvach não expanda novo segurança de software para um anexo embutido. Com o desenvolvimento da tecnologia VLSI, os sistemas de piso tornaram-se baratos, o que pode ser encontrado na maioria dos aparelhos eletrônicos atuais.

Aplicar sistemas vbudovanih

Um robô, tão parecido com um marsohid, indicações para um pequeno sistema de 1,1 є vbudovanoy. Stilnikovy telefone, PDA ou reprodutor multimídia portátil, mostrado em um pequeno 1.2, ou em anexos embutidos. Instale uma escova de dentes elétrica, mostrada em um sistema pequeno de 1,2 є vbudovany. pequeno microcontrolador na escova de dentes, é seguro programar a manutenção do swidkist e a indicação se tornará uma carga de bateria. Carros de alto rendimento podem vingar perto de cem microcontroladores. Uma casa típica de classe média pode ter cerca de 50 dependências construídas. Para skin PC, o mundo tem mais de uma centena de anexos integrados. Zagalom, vbudovanі pristroї para estabelecer uma maior parte da produção de luz de microprocessadores.


Arroz. 1.1.

Como pode ser visto na Tabela 1.1, os aparelhos podem ser encontrados em vários produtos industriais, incluindo eletrônicos e sistemas militares, sistemas biomédicos, automóveis, comunicações, aparelhos de informática, ferramentas eletrônicas, eletrodomésticos, equipamentos industriais, robótica, máquinas de escritório, brinquedos intelectuais. Você pode saber onde estão as dependências.

Designers de sistemas de brotamento muitas vezes ficam presos com tarefas de design dobráveis. Os sistemas Vbudovani podem ser dignos. Muitas dependências embutidas não podem ser lamatizadas e não podem ser revalorizadas. Segurança de softwareé impossível se mudar para as riquezas das dependências. Muitas dependências podem ter uma simples troca construtiva para produtividade e economia de energia. Deyakі pristroї devido pratsyuvati vіd bateria hora trivaliy. Além disso, spozhivchі pristroї zazvichay mais rapidamente entrar no mercado com novos produtos e pode zhorst concorrência de preços. Em adições ricas, há uma troca de tempo real e muitas dependências, há uma troca de memória e há um cálculo da exaustão.




Arroz. 1.2.Tabela 1.1. Aplicar sistemas vbudovanih
Sistemas de aviação e militares Pilotos automáticos de aeronaves, sistemas aviônicos e de navegação, sistemas de pouso automático, sistemas de orientação, orientação de motores.
Sistemas biomédicos Sistemas de acompanhamento de tomografia computadorizada e ultrassonografia, monitoramento de pacientes, marcapassos.
Carros Gestão de motores, sistemas galvânicos antibloqueio, sistema galvânico antiderrapante, manutenção de airbags, controle de aquecimento e ar condicionado, navegação GPS, rádio por satélite, diagnóstico do sistema.
Comunicação Satélites de comunicação, roteadores mesh, switches, concentradores.
Eletrônica Spozhivcha televisores, fornos, lava-louças, DVD-players, aparelhos de som, sistemas de segurança, controle de irrigação de gramados, termostatos, câmeras, rádio-relógios, transmissões automáticas, decodificadores de TV a cabo e outros acessórios.
Anexos para um computador Teclados, mouses, impressoras, scanners, monitores, modems, anexos de disco rígido, DVDs, placas gráficas, anexos USB.
Instrumentos eletrônicos Sistemas de aquisição de dados, oscilografia, voltímetros, geradores de sinais, analisadores lógicos.
Promessa de posse Controle de elevadores, sistemas watchdog, robôs, tipografia CNC, programação de controladores lógicos, sistemas de automação industrial e controle.
Máquinas de escritório máquinas de fax, copiadoras, telefones, calculadoras, caixas eletrônicos.
Dependências pessoais telefones elegantes, MP3 players portáteis, players de vídeo, assistentes digitais pessoais (PDA), relógio de pulso eletrônico, videogames portáteis, câmeras digitais, sistemas GPS.
robô Promislovi roboti, serviços de transporte autônomo, robôs de exploração espacial (por exemplo, rovers robóticos)
brinquedos sistemas de vídeo, brinquedos de robôs como "Aibo", "Furby" e "Elmo".

Sistemas operacionais de tempo real

Sistemas em tempo real devo a parâmetros externos introdução e criação de novos resultados de observação por uma hora, conforme mostrado no pequeno 1.3. Hora vіdpovіdі mayє buti será obmezhenim. Mesmo a hora trivial do vіdpovіdі pode ser causada pelos sistemas do vіdm da hora real.

Bumbum ilustrativo sistema em tempo realє controlador do airbag do carro. Se os sensores de rotação do airbag (acelerômetro) reconhecerem a folga, o sistema precisa reagir, curvarei o airbag com um alongamento de 10 ms, caso contrário o sistema não funcionará corretamente. Em alta velocidade a partir de uma dobra acima de 10 ms, a água já fechará com a roda kermovy antes que o travesseiro se abra.


Arroz. 1.3.

Em um sistema soft de tempo real, a prioridade pode ser tarefas criticamente importantes. M'yaka sistema de tempo real chilrear para as trocas do tempo real. Bumbum típico macio sistema em tempo realє reprodutor multimídia. Às vezes, o player pode pular um quadro de vídeo ou uma amostra de áudio e não pode ser lembrado enquanto o player estiver funcionando corretamente por mais de uma parte da hora.

No mesmo sistema de tempo real, um novo resultado de visualização do tempo poderá ser cobrado nos intervalos de tempo, caso contrário o sistema não funcionará. Bunda de iaque zhorstkoy sistema em tempo real Vamos dar uma olhada no sistema de cura remota com kerms (a ser curado por um computador). No sistema de gestão do voo da aeronave, se o piloto movimentar o volante, o kerma da gestão do voo da aeronave mudará ainda mais rapidamente, ou então gastará a stamina na queda. Para garantir a segurança, a FAA revisa e certifica constantemente a resposta em tempo real dos simuladores de voo computadorizados.

Procedimentos para mudar os lados da memória virtual e memória dobrável, que são necessários para mov orientado a objetos, podem eliminar problemas em sistemas de tempo real rígidos. Navit keshuvannya inоdіє є problema, os fragmentos podem levar a alterar a hora do programa.

Muitos sistemas vbudovannyh є sistemas de tempo real com entradas e saídas kіlkom. Dekіlka podіy vіdbuvayutsya independentemente um em um. programação sproshchuєtsya pіd podіlu zavdan, ale tse vіmagає vіd tsp postіyny svіykannya mizh iznimi zavdannyami. Sistema operacional, como suporte para multitarefa, segurança hora do pod TsP mizh kіlkom zavdannyami. O sistema operacional também cuida dos elementos de sincronização, a coordenação necessária entre as diferentes tarefas e é executado em paralelo.

Os sistemas operacionais são frequentemente classificados de acordo com as características do tempo real. Sistema operacional O tempo real pode ser relativamente projetado para suportar os programas de tempo real. Recentemente, chegou-se ao ponto de que 95% dos programas em tempo real mantêm o tempo desligado na faixa de 0,5 a 10 ms. Apenas 10% de ventilação (resfriamento de 50 microssegundos a 1 ms) no momento do evento pode ser aceitável. Aparentemente, para um número tão grande de sistemas operacionais do reconhecimento críptico não são sistemas de tempo real. De acordo com esses critérios, foi criado um sistema operacional, como o Windows XP, que pode ser visto da maneira mais curta possível apenas como soft. SO em tempo real. Para o Windows XP, existem algumas ferramentas pós-trabalho de terceiros para melhorar a hora de recuperação.

Sistemas operacionais para sistemas de despertar

Mais novas dependências podem ser dobradas segurança de software, pois é necessário para multitarefa, sincronização de tarefas, suporte para uma ampla gama de dispositivos de entrada/saída, agendamento e buffer de operações de entrada/saída, gerenciamento de memória, suporte para displays gráficos, sistemas de arquivos, armazenamento, segurança e gerenciamento de live. Sistema operacional você pode dar todas as possibilidades para ajudar os varejistas dos programas. Programas aplicados serão produtivos, fragmentos de fedor funcionarão no mais alto nível de abstração, vicoristas o ajudarão a confiar no sistema operacional.

Recentemente, um modelo de telefone estilo foi lançado para substituir cinco milhões de linhas de código. Poucas pessoas que iniciaram esses projetos geralmente precisam dos fundos necessários para o desenvolvimento de todo o código de forma independente. Ao mesmo tempo, há um sentido econômico de conquistar o sistema operacional principal. O curto tempo de expansão e a diminuição do tempo total validam a variação da licença para o sistema operacional.

A renovação do licenciamento de um sistema operacional comercial típico custará menos do que alguns dólares para anexos. Deyakі adições mais simples podem fazer sem sistema operacional, mas novas adições tornam-se dobráveis.

Em zv'yazku z tsim mais vbudovanih dependências sistema operacional vikoristovuyut vbudovanu. Os sistemas operacionais são construídos para soar nativos em C/C++ e são fornecidos junto com um compilador C/C++, ferramentas de montagem e depuração para ajudar os varejistas a desenvolver programas de aplicativos e testar aplicativos. Ferramentas para sistemas rozrorobka vbudovanih defeituosos também programas pіdtrimuvat vykonannya para código de ajuda que é armazenado em memória independente, como ROM ou memória Flash.

© 2022 androidas.ru - Tudo sobre Android