Sei sulla pagina 1di 22

INTRODUO AO

CODEWARRIOR 10.5
PARA A DISCIPLINA EA871
Prof. Antonio A. F. Quevedo
FEEC / UNICAMP
Revisado em fevereiro de 2014

INTRODUO
O CodeWarrior 10 (CW10) o ambiente de desenvolvimento de software desenvolvido pela
Freescale para os microcontroladores e microprocessadores por ela desenvolvidos. Ao contrrio das
verses anteriores, desenvolvidas de maneira totalmente proprietria, a verso 10 foi desenvolvida a
partir do Eclipse.
Eclipse um ambiente de desenvolvimento multi-linguagem que contm um Integrated
Development Environment (IDE), e um sistema de plug-ins. Foi lanado nos termos da Eclipse
Public License, assim o ambiente Eclipse gratuito e de cdigo aberto. Vem se tornando um padro
cada vez mais utilizado em empresas que desenvolvem projetos de software.
Os plug-ins garantem funcionalidade expansvel ao sistema. Assim, pode-se adicionar novas
linguagens de programao, bem como ferramentas de teste e depurao de cdigo, integradas ao
ambiente. Pode-se ainda adicionar funcionalidades relativas a famlias especficas de
processadores / controladores. Por exemplo, quando a Freescale lana uma nova famlia de
processadores, tambm lana um plug-in para o CW10, para que este possa gerar cdigo objeto
corretamente para aquela nova famlia. Outro exemplo o plug-in de terminal serial, que permite a
implementao de um terminal para comunicao serial dentro do ambiente, no sendo mais
necessrio o uso de outro programa para esta finalidade no computador host. Assim, quando se
depura um programa que se comunica com um computador atravs de porta serial, antes era
necessrio ficar alternando entre as janelas de depurao do IDE e do terminal serial. Agora, as
janelas de depurao e a do terminal ficam integradas no mesmo ambiente.
Um conceito fundamental do Eclipse o workspace, que um conjunto de metadados sobre um
espao de arquivos. Na prtica, podemos ter workspaces diferentes no mesmo computador, e em
cada workspace podemos ter mltiplos projetos. O sistema permite importar e exportar projetos
individuais ou workspaces completos. Neste curso, podemos definir um workspace para cada dupla
de alunos, os quais podem colocar todos seus projetos dentro do mesmo. Assim, na mesma mquina
podem conviver espaos de trabalho distintos.
Outro conceito fundamental a perspectiva. Esta pode ser definida como um conjunto de janelas
que povoam seu ambiente de trabalho, conjunto este definido para melhor utilizao do sistema, de
acordo com o que est sendo feito naquele momento. Neste curso, vamos usar 2 perspectivas
bsicas: Programao e Depurao. Na perspectiva de programao, temos janelas para edio de
cdigo, rvore de arquivos do projeto, localizao de mdulos de cdigo, recepo de mensagens de
compilao, etc. Na perspectiva de depurao, temos janelas para visualizao de ponto de
execuo, controles para execuo passo-a-passo do cdigo, janelas para apresentao de variveis
em tempo real, cdigo assembly gerado a partir do cdigo fonte, janela do terminal serial, etc.
Estes conceitos se desenvolvero melhor com o uso da ferramenta. Seguindo o passo-a-passo das
prximas pginas, certamente os alunos estaro usando adequadamente a ferramenta em um curto
espao de tempo.
Obs: A aparncia de algumas janelas pode ser ligeiramente diferente em alguns computadores, mas
as diferenas no so suficientes para prejudicar este tutorial.

CRIANDO UM NOVO PROJETO


1. No Windows, v ao menu Iniciar - Programas - Freescale CodeWarrior - CW for MCU v10.5
CodeWarrior, ou chame o programa atravs do cone do CodeWarrior 10.5 na rea de trabalho.
2. Aparece o Workspace Launcher. Aqui voc determina qual workspace voc deseja utilizar. Clique
em Browse para escolher uma pasta para ser seu workspace ou selecione uma j existente na lista
drop-down. Clique em OK. Sugerimos que cada grupo crie seu prprio workspace.

3. O CodeWarrior 10 vai abrir na perspectiva de programao. Pode-se ver a esquerda um painel


com todos os projetos do workspace. Uma pasta aberta significa que aquele projeto est aberto.
Na primeira utilizao do workspace, ao invs da perspectiva de programao, pode aparecer um
menu geral. Neste caso, basta escolher a opo Go to Workspace.

4. Para evitar problemas, evite ter mais de um projeto aberto de cada vez. Se houver diversos
projetos abertos, feche os desnecessrios clicando com o boto direito sobre a pasta do projeto
aberto e escolhendo a opo "Close Project".

5. A janela Commander no canto inferior esquerdo da perspectiva agrupa os comandos mais


comuns. Para criar um novo projeto, basta clicar em New MCU project nesta janela.

Alternativamente, no menu superior selecione File - New - Bareboard Project.

6. Na janela que se abre, escolha um nome para o projeto. No exemplo, foi escolhido o nome
"Apostila". Se a caixa de seleo "Use default location" estiver selecionada, os arquivos sero
salvos na pasta do workspace, que pode ser vista logo abaixo da caixa. Desmarcando a caixa, podese escolher outra pasta para colocar os arquivos. Depois, clique no boto "Next".

7. Agora deve-se escolher o microcontrolador ou a placa de desenvolvimento a ser utilizada. Neste


curso usamos o controlador MKL25Z128, na placa FRDM-KL25. Na rvore de opes, abra o
grupo "Kinetis L Series", depois o grupo "KL2x Family", depois KL25Z (48MHz) Family e
selecione MKL25Z128" Clique "Next".
5

Alternativamente, pode-se digitar KL25 na caixa de pesquisa (intitulada Device or board to be


used). Neste caso, o programa filtra as opes, apresentando apenas a sub-rvore dos
processadores KL25, e assim pode-se selecionar mais facilmente o processador-alvo.

8. Agora, aparece uma lista de possveis conexes. A conexo estabelecida entre o computador e a
placa permite transferir os programas para a placa, bem como executar a depurao em tempo real.
Neste caso, selecione a opo "OpenSDA, que o hardware de conexo existente na placa de
desenvolvimento. Desmarque quaisquer outras opes selecionadas por padro, e depois clique em
"Next".
6

9. Na prxima janela, mantenha as opes no padro e clique em "Next". Estas opes se referem
linguagem utilizada, uso de ponto flutuante, suporte a uso de porta serial ou console de debug, e
compilador a ser usado.
Obs: Na opo I/O Support, a opo default (UART) e a opo Debugger Console
acrescentam cdigo para suporte a funes printf e scanf atravs da porta serial ou de uma janela de
console. Quando estas funes no so necessrias, pode-se marcar a opo No I/O para reduzir o
tamanho do cdigo final e se evitar inicializaes desnecessrias. Sugerimos usar a terceira opo, a
menos que o experimento use as funes acima citadas (no o caso no curso EA871).

10. Nesta prxima janela, definiremos se o CodeWarrior usar ou no uma ferramenta que facilita a
gerao de cdigos para a inicializao dos mdulos da MCU e funes em alto nvel para controlar
estes mdulos (Processor Expert). Neste curso, esta ferramenta no ser utilizada, e a mesma s
est disponvel se a linguagem utilizada for o C (quando se usa assembly, esta opo est
indisponvel). Mantenha a opo "None" selecionada e clique em "Finish".

11. Veja que agora na lista de projetos, temos o projeto "Apostila" criado e aberto. Clicando no
smbolo de "+" (ou no pequeno tringulo se estiver usando Windows 7/8) esquerda do folder,
podemos expandir o projeto e ver seus componentes pr-criados pelo CodeWarrior. Dentro do
folder "Sources", encontraremos o arquivo "main.c" (em projetos assembly, o arquivo ser o
main.s). Dando um duplo-clique neste arquivo, abrimos o editor e podemos ver uma estrutura
bsica de cdigo j feita pelo CodeWarrior, onde se inicializa uma varivel inteira com o valor 0 e a
incrementa a cada iterao de um loop infinito. neste arquivo onde colocaremos os programas dos
roteiros. Para este teste, manteremos o programa como est.

12. Agora precisamos compilar o projeto. Para isto, podemos clicar no boto da barra superior com
o cone do martelo, ou ainda no menu selecionar "Project - Build Project".

Entretanto, uma boa prtica garantir sempre que o projeto esteja limpo antes de compil-lo. Isto
significa apagar arquivos gerados por compilaes anteriores. Assim, pode-se selecionar no menu
principal a opo Project Clean.

13. Na janela que se abre, selecione a opo Clean projects selected below e verifique se seu projeto
est selecionado na lista. Marque a caixa Start a build immediately e selecione a opo Build only
the selected projects. Desta forma, o projeto ativo ser limpo e logo aps ser iniciado o build do
mesmo.

14. Teremos uma janela mostrando as etapas do clean, que costumam ser rpidas. Logo aps, uma
janela mostrando os passos do Build aparecer. Aguarde at que ela desaparea.

15. Agora vamos acessar a placa em modo debug (depurao), fazer a transferncia do programa e
passar para a perspectiva de depurao. Para isso, basta clicar no boto da barra superior com o
cone do besouro, ou no menu principal selecionar "Run - Debug", ou ainda pressionar a tecla F11.
Certifique-se que o projeto Apostila esteja selecionado na janela de projetos.

16. A perspectiva de projeto muda para Debug. Aguarde a carga do cdigo (isto pode ser visto no
canto inferior direito).

17. Ao acabar, veremos na janela superior esquerda (Debug), que a MCU est parada no incio do
"main" (selecionado na janela). Abaixo desta janela, aparece o cdigo fonte do "main". Ao lado
deste, o resultado da compilao em assembly.

10

18. Nesta mesma janela, clique no tringulo verde (Resume), ou pressione F8 para iniciar a
execuo.

19. Junto ao boto de "Resume", h ainda os botes "Reset" (crculo vermelho com seta preta),
"Suspend" (smbolo de pausa), "Terminate" (quadrado vermelho) e Disconnect (uma linha em
forma de N). Estes botes permitem respectivamente colocar a MCU em seu estado inicial
(aguardando o "Resume"), pausar a execuo (tambm aguardando o "Resume"), interromper
11

definitivamente a execuo, at que se faa um "Reset", e continuar executando o programa sem a


conexo ao IDE. Clicando no boto "Suspend", o programa interrompido e na aba "Variables",
pode-se visualizar o valor da varivel "counter". Se o programa voltar a ser executado, e novamente
pausado, pode-se ver outro valor para a varivel, mostrando que ela vai sendo incrementada a cada
iterao do "loop". O valor da varivel pode ser modificado durante a depurao, se a execuo
estiver pausada. Basta clicar sobre o valor da varivel e reescrev-lo. Clicando com o boto direito
sobre a varivel ou seu valor, pode-se escolher na opo Format o formato do dado: decimal,
hexadecimal, binrio, etc. Clicando com o boto direito em uma rea livre do quadro, podemos
adicionar variveis que eventualmente no estejam aparecendo.

20. Pode-se estabelecer breakpoints no cdigo, para que o mesmo seja interrompido toda vez que
sua execuo chegar a um determinado ponto. esquerda da linha "counter++;", sobre a rea
azulada, d um duplo-clique. Aparecer um pequeno crculo azul. Agora toda vez que o programa
chegar neste ponto, ser interrompido, podendo ser retomado atravs do boto "resume".

21. Continue a execuo do programa com o boto Resume. O mesmo ser interrompido, e
possvel ver uma seta azul esquerda da linha onde o breakpoint foi colocado, indicando o ponto no
qual o programa est parado. Prximo aos botes de "Resume", "Suspend" e os demais, existem
botes que permitem executar "steps", ou seja, instruo por instruo. Use o boto "step into" para
avanar uma instruo de cada vez. Pode-se ver o loop acontecendo, sendo que o programa passa
pelas instrues "for" e "counter++". O valor do contador vai sendo incrementado de um em um,
12

cada vez que a execuo passa por "counter++". Se o boto "Resume" for pressionado, a execuo
normal retomada, mas parada logo depois, quando a execuo novamente atinge o breakpoint.

22. H um recurso muito til em determinadas situaes, que o Debugger Shell. Este recurso
uma janela de texto, que permite usarmos comandos em linha de texto para modificar posies de
memria e registradores, alm de outras funes de depurao. Para que esta janela aparea, na
perspectiva Debug, v ao menu superior e clique em Window Show View Debugger Shell.

13

23. No canto inferior direito, a aba Debugger Shell ir aparecer.

24. Digitando help, pode-se ver a lista de comandos possveis. Digitando help <comando>,
pode-se ver a forma de utilizao para cada comando. Para cada janela, existem botes para
maximizar, minimizar, restaurar tamanho original e fechar. As divises entre janelas tambm podem
ser deslocadas, modificando-se assim os tamanhos das diversas janelas.
25. Outro recurso til o Instruction Stepping Mode. Neste modo de operao, cada step de
execuo avana uma instruo de mquina (estas instrues so visveis na janela Disassembly,
direita). Para entrar ou sair deste modo, clique no boto correspondente na janela de Debug.

26. Para retornar perspectiva de programao, clique no boto "C/C++" no canto superior direito
da janela.

14

EXPORTANDO / IMPORTANDO UM PROJETO


1. Na perspectiva de programao, feche todos os projetos abertos (conforme visto anteriormente),
exceto aquele que se deseja exportar. Se o projeto desejado est fechado, abra-o, clicando sobre a
pasta dele com o boto direito e selecionando a opo "Open Project".
2. Clique novamente na pasta do projeto e selecione "Export...". Alternativamente, pode-se usar o
menu "File", opo "Export...".

3. Uma janela se abrir. Abra o grupo "General" e selecione "Archive File". Depois, clique em
"Next".

15

4. Nesta janela, mantenha as opes padro, e clique no boto "Browse...". Selecione uma pasta
para guardar o arquivo de exportao, e o nome do arquivo. Clique em "Finish".

5. Um arquivo ZIP com o nome escolhido ser gravado no local selecionado. Para fazer a
importao, apague totalmente o projeto, inclusive os arquivos originais (conforme a seo
Apagando um projeto abaixo). Se um projeto com o mesmo nome de outro projeto no mesmo
workspace tentar ser importado, aparecer uma mensagem de erro.
6. Para importar, clique com o boto direito na rea dos projetos e selecione "Import...", ou
selecione Import Project na janela Commander, ou ainda use o menu "File - Import..."

16

7. Marque a opo "Select archive file" e clique no boto "Browse". Localize e selecione o arquivo
ZIP que contm o projeto exportado anteriormente. Confirme que o projeto est selecionado e
clique em "Finish".

17

8. Pronto, seu projeto aparece agora no workspace.

APAGANDO UM PROJETO
1. Clique com o boto direito no projeto e selecione a opo "Delete". Alternativamente, selecione o
projeto com um clique do boto esquerdo, e pressione a tecla Delete.

18

3. Uma nova janela se abrir para confirmar o apagamento ou cancel-lo. Por default, os arquivos
no sero apagados. O projeto apenas sair do workspace, mas continuar fisicamente na mesma
pasta. Se quiser realmente apagar os arquivos do projeto, marque a caixa "Delete project contents
on disk (cannot be undone)". Use esta opo com cuidado.

4. Clique em OK. Seu projeto foi apagado.

USANDO O TERMINAL SERIAL


1. Para acessar o terminal serial, na perspectiva de Debug v ao menu principal e selecione Window
Show View Other...

2. Na janela que se abre, expanda o grupo Terminal e selecione a opo Terminal. Clique OK.
19

3. Veja que na parte inferior direita da perspectiva, aparece uma nova aba chamada Terminal. Agora
s falta configurar este terminal. Clique no boto com o smbolo de uma planilha amarela
(Settings).

4. Na janela que se abre, temos as opes. Seleciona-se Connection Type para Serial, e se faz os
ajustes necessrios nos campos correspondentes.

20

5. Ao finalizar, o terminal ser automaticamente conectado. H botes na janela para se realizar


conexo e desconexo, bem como outras funes.

ADICIONANDO UM PLUGIN
1. Para se verificar atualizaes, patches e outros plugins, usa-se a opo do menu principal Help
Install New Software... Obs: necessrio que o computador esteja conectado Internet.

2. Na janela que se abre, podemos selecionar em Work With a opo All Available Sites. O boto
Add permite que se adicione pastas de arquivos ou websites que contenham outros plugins. No
CW10, o padro a pgina de atualizaes da Freescale. Pode-se marcar as opes desejadas.
21

interessante marcar a opo Hide items that are already installed. Aps esta seleo, clicando-se em
Next segue-se um procedimento similar instalao de um programa, que pode incluir leitura e
aceitao de termos, bem como confirmao de confiana no site de onde foi feito o download.

Revisado pelo Prof. Antonio Quevedo em 27/05/2013


As janelas apresentadas so de telas do CodeWarrior 10.4, executando em Windows XP. Pequenas
diferenas podem aparecer em futuras verses do programa, e em outros sistemas operacionais.

22

Potrebbero piacerti anche